summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-08-11 14:44:44 +0100
committerBen Murdoch <benm@google.com>2010-08-12 19:15:41 +0100
commitdd8bb3de4f353a81954234999f1fea748aee2ea9 (patch)
tree729b52bf09294f0d6c67cd5ea80aee1b727b7bd8
parentf3d41ba51d86bf719c7a65ab5297aea3c17e2d98 (diff)
downloadexternal_webkit-dd8bb3de4f353a81954234999f1fea748aee2ea9.zip
external_webkit-dd8bb3de4f353a81954234999f1fea748aee2ea9.tar.gz
external_webkit-dd8bb3de4f353a81954234999f1fea748aee2ea9.tar.bz2
Merge WebKit at r65072 : Initial merge by git.
Change-Id: Ibcf418498376b2660aacb7f8d46ea7085ef91585
-rw-r--r--JavaScriptCore/API/JSValueRef.cpp6
-rw-r--r--JavaScriptCore/Android.mk1
-rw-r--r--JavaScriptCore/CMakeLists.txt2
-rw-r--r--JavaScriptCore/ChangeLog1286
-rw-r--r--JavaScriptCore/Configurations/FeatureDefines.xcconfig11
-rw-r--r--JavaScriptCore/Configurations/Version.xcconfig2
-rw-r--r--JavaScriptCore/DerivedSources.pro15
-rw-r--r--JavaScriptCore/GNUmakefile.am7
-rw-r--r--JavaScriptCore/JavaScriptCore.exp230
-rw-r--r--JavaScriptCore/JavaScriptCore.gypi7
-rw-r--r--JavaScriptCore/JavaScriptCore.pro3
-rw-r--r--JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def20
-rw-r--r--JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj16
-rw-r--r--JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj4
-rw-r--r--JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj48
-rw-r--r--JavaScriptCore/assembler/ARMAssembler.cpp2
-rw-r--r--JavaScriptCore/assembler/ARMv7Assembler.cpp (renamed from WebKit/mac/Storage/WebDatabaseSecurityOrigin.mm)19
-rw-r--r--JavaScriptCore/assembler/ARMv7Assembler.h217
-rw-r--r--JavaScriptCore/assembler/AbstractMacroAssembler.h9
-rw-r--r--JavaScriptCore/assembler/LinkBuffer.h149
-rw-r--r--JavaScriptCore/assembler/MIPSAssembler.h6
-rw-r--r--JavaScriptCore/assembler/MacroAssemblerARMv7.h55
-rw-r--r--JavaScriptCore/assembler/X86Assembler.h4
-rw-r--r--JavaScriptCore/bytecode/CodeBlock.cpp10
-rw-r--r--JavaScriptCore/bytecode/CodeBlock.h20
-rw-r--r--JavaScriptCore/bytecode/Opcode.h19
-rw-r--r--JavaScriptCore/bytecode/StructureStubInfo.h24
-rw-r--r--JavaScriptCore/bytecompiler/BytecodeGenerator.cpp14
-rw-r--r--JavaScriptCore/bytecompiler/BytecodeGenerator.h3
-rw-r--r--JavaScriptCore/create_jit_stubs13
-rw-r--r--JavaScriptCore/interpreter/Interpreter.cpp48
-rw-r--r--JavaScriptCore/interpreter/RegisterFile.cpp19
-rw-r--r--JavaScriptCore/interpreter/RegisterFile.h97
-rw-r--r--JavaScriptCore/jit/ExecutableAllocator.cpp4
-rw-r--r--JavaScriptCore/jit/ExecutableAllocator.h67
-rw-r--r--JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp32
-rw-r--r--JavaScriptCore/jit/JIT.cpp10
-rw-r--r--JavaScriptCore/jit/JIT.h65
-rw-r--r--JavaScriptCore/jit/JITArithmetic32_64.cpp2
-rw-r--r--JavaScriptCore/jit/JITInlineMethods.h2
-rw-r--r--JavaScriptCore/jit/JITOpcodes.cpp54
-rw-r--r--JavaScriptCore/jit/JITOpcodes32_64.cpp51
-rw-r--r--JavaScriptCore/jit/JITPropertyAccess.cpp149
-rw-r--r--JavaScriptCore/jit/JITPropertyAccess32_64.cpp165
-rw-r--r--JavaScriptCore/jit/JITStubs.cpp410
-rw-r--r--JavaScriptCore/jit/JITStubs.h4
-rw-r--r--JavaScriptCore/jit/JSInterfaceJIT.h2
-rw-r--r--JavaScriptCore/jit/SpecializedThunkJIT.h5
-rw-r--r--JavaScriptCore/jsc.pro6
-rw-r--r--JavaScriptCore/parser/Lexer.cpp129
-rw-r--r--JavaScriptCore/parser/Lexer.h1
-rw-r--r--JavaScriptCore/profiler/ProfilerServer.mm6
-rw-r--r--JavaScriptCore/runtime/AlignedMemoryAllocator.h239
-rw-r--r--JavaScriptCore/runtime/Collector.cpp148
-rw-r--r--JavaScriptCore/runtime/Collector.h52
-rw-r--r--JavaScriptCore/runtime/CollectorHeapIterator.h6
-rw-r--r--JavaScriptCore/runtime/ExceptionHelpers.cpp5
-rw-r--r--JavaScriptCore/runtime/ExceptionHelpers.h1
-rw-r--r--JavaScriptCore/runtime/Executable.cpp35
-rw-r--r--JavaScriptCore/runtime/GCActivityCallback.cpp50
-rw-r--r--JavaScriptCore/runtime/GCActivityCallback.h70
-rw-r--r--JavaScriptCore/runtime/GCActivityCallbackCF.cpp83
-rw-r--r--JavaScriptCore/runtime/GCHandle.cpp91
-rw-r--r--JavaScriptCore/runtime/GCHandle.h120
-rw-r--r--JavaScriptCore/runtime/JSArray.cpp260
-rw-r--r--JavaScriptCore/runtime/JSArray.h30
-rw-r--r--JavaScriptCore/runtime/JSGlobalData.cpp2
-rw-r--r--JavaScriptCore/runtime/JSGlobalData.h2
-rw-r--r--JavaScriptCore/runtime/JSLock.cpp6
-rw-r--r--JavaScriptCore/runtime/JSLock.h2
-rw-r--r--JavaScriptCore/runtime/UStringImpl.h2
-rw-r--r--JavaScriptCore/runtime/WeakGCPtr.h46
-rw-r--r--JavaScriptCore/wscript4
-rw-r--r--JavaScriptCore/wtf/Bitmap.h131
-rw-r--r--JavaScriptCore/wtf/FastMalloc.cpp4
-rw-r--r--JavaScriptCore/wtf/Forward.h12
-rw-r--r--JavaScriptCore/wtf/PageAllocation.cpp197
-rw-r--r--JavaScriptCore/wtf/PageAllocation.h298
-rw-r--r--JavaScriptCore/wtf/PageReservation.h258
-rw-r--r--JavaScriptCore/wtf/Platform.h85
-rw-r--r--JavaScriptCore/wtf/WTFThreadData.cpp2
-rw-r--r--JavaScriptCore/wtf/WTFThreadData.h19
-rw-r--r--JavaScriptCore/wtf/dtoa.cpp1
-rw-r--r--JavaScriptCore/wtf/gobject/GOwnPtr.h2
-rw-r--r--JavaScriptCore/wtf/qt/StringQt.cpp2
-rw-r--r--JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp132
-rw-r--r--JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h120
-rw-r--r--JavaScriptCore/wtf/text/AtomicString.cpp6
-rw-r--r--JavaScriptCore/wtf/text/AtomicString.h28
-rw-r--r--JavaScriptCore/wtf/text/AtomicStringImpl.h6
-rw-r--r--JavaScriptCore/wtf/text/StringBuffer.h4
-rw-r--r--JavaScriptCore/wtf/text/StringHash.h19
-rw-r--r--JavaScriptCore/wtf/text/StringImpl.cpp13
-rw-r--r--JavaScriptCore/wtf/text/StringImpl.h44
-rw-r--r--JavaScriptCore/wtf/text/StringStatics.cpp2
-rw-r--r--JavaScriptCore/wtf/text/WTFString.cpp13
-rw-r--r--JavaScriptCore/wtf/text/WTFString.h40
-rw-r--r--JavaScriptCore/wtf/unicode/icu/CollatorICU.cpp2
-rw-r--r--JavaScriptCore/yarr/RegexJIT.cpp12
-rw-r--r--JavaScriptGlue/ChangeLog41
-rw-r--r--JavaScriptGlue/Configurations/Version.xcconfig2
-rw-r--r--JavaScriptGlue/ForwardingHeaders/wtf/Bitmap.h1
-rw-r--r--JavaScriptGlue/ForwardingHeaders/wtf/PageReservation.h1
-rw-r--r--LayoutTests/dom/html/level2/html/HTMLIsIndexElement01-expected.txt5
-rw-r--r--LayoutTests/dom/html/level2/html/HTMLIsIndexElement02-expected.txt5
-rw-r--r--LayoutTests/dom/html/level2/html/HTMLIsIndexElement03-expected.txt5
-rw-r--r--LayoutTests/fast/dom/Geolocation/delayed-permission-allowed-expected.txt10
-rw-r--r--LayoutTests/fast/dom/Geolocation/delayed-permission-allowed.html13
-rw-r--r--LayoutTests/fast/dom/Geolocation/delayed-permission-denied-expected.txt11
-rw-r--r--LayoutTests/fast/dom/Geolocation/delayed-permission-denied.html13
-rw-r--r--LayoutTests/fast/dom/Geolocation/script-tests/delayed-permission-allowed.js27
-rw-r--r--LayoutTests/fast/dom/Geolocation/script-tests/delayed-permission-denied.js30
-rw-r--r--LayoutTests/fast/js/resources/js-test-pre.js2
-rw-r--r--LayoutTests/http/tests/appcache/origin-quota-expected.txt9
-rw-r--r--LayoutTests/http/tests/appcache/origin-quota.html77
-rw-r--r--LayoutTests/http/tests/appcache/resources/quota-origin-iframe-1.html8
-rw-r--r--LayoutTests/http/tests/appcache/resources/quota-origin-iframe-1.manifest7
-rw-r--r--LayoutTests/http/tests/appcache/resources/quota-origin-iframe-2.html8
-rw-r--r--LayoutTests/http/tests/appcache/resources/quota-origin-iframe-2.manifest8
-rw-r--r--LayoutTests/http/tests/appcache/resources/quota-origin-iframe-3.html8
-rw-r--r--LayoutTests/http/tests/appcache/resources/quota-origin-iframe-3.manifest8
-rw-r--r--LayoutTests/platform/android-v8/fast/dom/DeviceMotion/window-property-expected.txt18
-rw-r--r--LayoutTests/storage/domstorage/complex-values-expected.txt36
-rw-r--r--LayoutTests/storage/indexeddb/open-cursor-expected.txt102
-rw-r--r--LayoutTests/storage/indexeddb/open-cursor.html13
-rw-r--r--LayoutTests/storage/indexeddb/script-tests/open-cursor.js79
-rw-r--r--WebCore/Android.derived.jscbindings.mk12
-rw-r--r--WebCore/Android.derived.v8bindings.mk11
-rw-r--r--WebCore/Android.jscbindings.mk5
-rw-r--r--WebCore/Android.mk34
-rw-r--r--WebCore/Android.v8bindings.mk5
-rw-r--r--WebCore/CMakeLists.txt41
-rw-r--r--WebCore/ChangeLog6501
-rw-r--r--WebCore/Configurations/FeatureDefines.xcconfig11
-rw-r--r--WebCore/Configurations/Version.xcconfig2
-rw-r--r--WebCore/DerivedSources.cpp6
-rw-r--r--WebCore/DerivedSources.make16
-rw-r--r--WebCore/ForwardingHeaders/wtf/Bitmap.h4
-rw-r--r--WebCore/ForwardingHeaders/wtf/PageReservation.h4
-rw-r--r--WebCore/GNUmakefile.am115
-rw-r--r--WebCore/WebCore.exp.in261
-rw-r--r--WebCore/WebCore.gyp/WebCore.gyp4
-rw-r--r--WebCore/WebCore.gypi83
-rw-r--r--WebCore/WebCore.order6
-rw-r--r--WebCore/WebCore.pri203
-rw-r--r--WebCore/WebCore.pro275
-rw-r--r--WebCore/WebCore.vcproj/WebCore.vcproj754
-rw-r--r--WebCore/WebCore.vcproj/WebCoreCommon.vsprops2
-rw-r--r--WebCore/WebCore.xcodeproj/project.pbxproj385
-rw-r--r--WebCore/accessibility/AXObjectCache.cpp126
-rw-r--r--WebCore/accessibility/AXObjectCache.h6
-rw-r--r--WebCore/accessibility/AccessibilityARIAGrid.h2
-rw-r--r--WebCore/accessibility/AccessibilityImageMapLink.cpp9
-rw-r--r--WebCore/accessibility/AccessibilityListBoxOption.h2
-rw-r--r--WebCore/accessibility/AccessibilityMenuList.cpp8
-rw-r--r--WebCore/accessibility/AccessibilityMenuList.h7
-rw-r--r--WebCore/accessibility/AccessibilityMenuListPopup.cpp2
-rw-r--r--WebCore/accessibility/AccessibilityObject.cpp37
-rw-r--r--WebCore/accessibility/AccessibilityObject.h3
-rw-r--r--WebCore/accessibility/AccessibilityRenderObject.cpp142
-rw-r--r--WebCore/accessibility/AccessibilityRenderObject.h5
-rw-r--r--WebCore/accessibility/AccessibilityTable.cpp6
-rw-r--r--WebCore/accessibility/AccessibilityTable.h14
-rw-r--r--WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp5
-rw-r--r--WebCore/accessibility/mac/AccessibilityObjectWrapper.mm8
-rw-r--r--WebCore/bindings/cpp/WebDOMCString.h5
-rw-r--r--WebCore/bindings/cpp/WebDOMHTMLDocumentCustom.cpp2
-rw-r--r--WebCore/bindings/cpp/WebDOMString.cpp24
-rw-r--r--WebCore/bindings/cpp/WebDOMString.h18
-rw-r--r--WebCore/bindings/cpp/WebNativeEventListener.cpp2
-rw-r--r--WebCore/bindings/cpp/WebNativeEventListener.h2
-rw-r--r--WebCore/bindings/generic/ActiveDOMCallback.cpp144
-rw-r--r--WebCore/bindings/generic/ActiveDOMCallback.h (renamed from WebKit/chromium/src/ProfilerAgentImpl.h)35
-rw-r--r--WebCore/bindings/generic/BindingDOMWindow.h177
-rw-r--r--WebCore/bindings/generic/BindingSecurity.h25
-rw-r--r--WebCore/bindings/generic/RuntimeEnabledFeatures.cpp1
-rw-r--r--WebCore/bindings/generic/RuntimeEnabledFeatures.h6
-rw-r--r--WebCore/bindings/gobject/ConvertToUTF8String.cpp2
-rw-r--r--WebCore/bindings/gobject/ConvertToUTF8String.h5
-rw-r--r--WebCore/bindings/gobject/WebKitDOMBinding.cpp28
-rw-r--r--WebCore/bindings/gobject/WebKitDOMBinding.h2
-rw-r--r--WebCore/bindings/gobject/WebKitDOMEventTarget.cpp16
-rw-r--r--WebCore/bindings/gobject/WebKitDOMEventTargetPrivate.h32
-rw-r--r--WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.cpp2
-rw-r--r--WebCore/bindings/js/DOMWrapperWorld.h2
-rw-r--r--WebCore/bindings/js/IDBBindingUtilities.h2
-rw-r--r--WebCore/bindings/js/JSBindingsAllInOne.cpp3
-rw-r--r--WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp16
-rw-r--r--WebCore/bindings/js/JSDOMBinding.h2
-rw-r--r--WebCore/bindings/js/JSDOMWindowBase.h2
-rw-r--r--WebCore/bindings/js/JSDOMWindowCustom.cpp48
-rw-r--r--WebCore/bindings/js/JSDatabaseCustom.cpp146
-rw-r--r--WebCore/bindings/js/JSDatabaseSyncCustom.cpp102
-rw-r--r--WebCore/bindings/js/JSDesktopNotificationsCustom.cpp9
-rw-r--r--WebCore/bindings/js/JSDeviceMotionEventCustom.cpp129
-rw-r--r--WebCore/bindings/js/JSEventCustom.cpp4
-rw-r--r--WebCore/bindings/js/JSEventTarget.cpp4
-rw-r--r--WebCore/bindings/js/JSHTMLDocumentCustom.cpp2
-rw-r--r--WebCore/bindings/js/JSIDBAnyCustom.cpp20
-rw-r--r--WebCore/bindings/js/JSInjectedScriptHostCustom.cpp37
-rw-r--r--WebCore/bindings/js/JSMessagePortCustom.h3
-rw-r--r--WebCore/bindings/js/JSSQLTransactionCustom.cpp4
-rw-r--r--WebCore/bindings/js/JSWorkerContextCustom.cpp90
-rw-r--r--WebCore/bindings/js/JavaScriptCallFrame.h3
-rw-r--r--WebCore/bindings/js/ScheduledAction.cpp1
-rw-r--r--WebCore/bindings/js/ScriptArray.cpp127
-rw-r--r--WebCore/bindings/js/ScriptArray.h61
-rw-r--r--WebCore/bindings/js/ScriptCallStack.h1
-rw-r--r--WebCore/bindings/js/ScriptController.h2
-rw-r--r--WebCore/bindings/js/ScriptControllerEfl.cpp4
-rw-r--r--WebCore/bindings/js/ScriptObject.cpp90
-rw-r--r--WebCore/bindings/js/ScriptObject.h13
-rw-r--r--WebCore/bindings/js/ScriptProfile.cpp100
-rw-r--r--WebCore/bindings/js/ScriptProfile.h30
-rw-r--r--WebCore/bindings/js/ScriptProfiler.cpp3
-rw-r--r--WebCore/bindings/js/ScriptProfiler.h1
-rw-r--r--WebCore/bindings/js/ScriptSourceProvider.h3
-rw-r--r--WebCore/bindings/js/ScriptString.h3
-rw-r--r--WebCore/bindings/js/ScriptValue.cpp1
-rw-r--r--WebCore/bindings/js/WorkerScriptController.h2
-rw-r--r--WebCore/bindings/objc/DOMHTML.mm2
-rw-r--r--WebCore/bindings/objc/DOMImplementationFront.h1
-rw-r--r--WebCore/bindings/scripts/CodeGeneratorCPP.pm19
-rw-r--r--WebCore/bindings/scripts/CodeGeneratorGObject.pm22
-rw-r--r--WebCore/bindings/scripts/CodeGeneratorJS.pm96
-rw-r--r--WebCore/bindings/scripts/CodeGeneratorObjC.pm6
-rw-r--r--WebCore/bindings/scripts/CodeGeneratorV8.pm154
-rw-r--r--WebCore/bindings/scripts/test/CPP/WebDOMTestObj.cpp26
-rw-r--r--WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp2
-rw-r--r--WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp46
-rw-r--r--WebCore/bindings/scripts/test/JS/JSTestCallback.cpp36
-rw-r--r--WebCore/bindings/scripts/test/JS/JSTestCallback.h13
-rw-r--r--WebCore/bindings/scripts/test/JS/JSTestObj.cpp105
-rw-r--r--WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm2
-rw-r--r--WebCore/bindings/scripts/test/V8/V8TestCallback.cpp23
-rw-r--r--WebCore/bindings/scripts/test/V8/V8TestCallback.h20
-rw-r--r--WebCore/bindings/scripts/test/V8/V8TestObj.cpp98
-rw-r--r--WebCore/bindings/v8/ScheduledAction.cpp1
-rw-r--r--WebCore/bindings/v8/ScheduledAction.h4
-rw-r--r--WebCore/bindings/v8/ScriptArray.cpp120
-rw-r--r--WebCore/bindings/v8/ScriptArray.h61
-rw-r--r--WebCore/bindings/v8/ScriptCallStack.h1
-rw-r--r--WebCore/bindings/v8/ScriptController.h2
-rw-r--r--WebCore/bindings/v8/ScriptObject.cpp80
-rw-r--r--WebCore/bindings/v8/ScriptObject.h13
-rw-r--r--WebCore/bindings/v8/ScriptProfile.cpp33
-rw-r--r--WebCore/bindings/v8/ScriptProfile.h7
-rw-r--r--WebCore/bindings/v8/ScriptProfiler.cpp10
-rw-r--r--WebCore/bindings/v8/ScriptProfiler.h1
-rw-r--r--WebCore/bindings/v8/ScriptStringImpl.h2
-rwxr-xr-xWebCore/bindings/v8/ScriptValue.cpp4
-rw-r--r--WebCore/bindings/v8/V8Binding.h38
-rw-r--r--WebCore/bindings/v8/V8DOMWindowShell.cpp6
-rw-r--r--WebCore/bindings/v8/V8DOMWindowShell.h2
-rw-r--r--WebCore/bindings/v8/V8DOMWrapper.cpp2
-rw-r--r--WebCore/bindings/v8/V8DOMWrapper.h2
-rw-r--r--WebCore/bindings/v8/V8Proxy.h2
-rw-r--r--WebCore/bindings/v8/V8Utilities.cpp26
-rw-r--r--WebCore/bindings/v8/V8Utilities.h2
-rw-r--r--WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp1
-rw-r--r--WebCore/bindings/v8/custom/V8BindingMacros.h17
-rw-r--r--WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp12
-rw-r--r--WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h1
-rw-r--r--WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp180
-rw-r--r--WebCore/bindings/v8/custom/V8DatabaseCustom.cpp141
-rw-r--r--WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp105
-rw-r--r--WebCore/bindings/v8/custom/V8DeviceMotionEventCustom.cpp139
-rw-r--r--WebCore/bindings/v8/custom/V8EventCustom.cpp3
-rw-r--r--WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp15
-rw-r--r--WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp28
-rw-r--r--WebCore/bindings/v8/custom/V8NotificationCenterCustom.cpp4
-rw-r--r--WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp12
-rw-r--r--WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp4
-rwxr-xr-xWebCore/bindings/v8/custom/V8WorkerContextCustom.cpp66
-rw-r--r--WebCore/bindings/v8/specialization/V8BindingState.cpp33
-rw-r--r--WebCore/bindings/v8/specialization/V8BindingState.h20
-rw-r--r--WebCore/bridge/c/c_utility.cpp7
-rw-r--r--WebCore/bridge/c/c_utility.h7
-rw-r--r--WebCore/bridge/jni/v8/JavaClassV8.h4
-rw-r--r--WebCore/config.h12
-rw-r--r--WebCore/css/CSSComputedStyleDeclaration.cpp8
-rw-r--r--WebCore/css/CSSFontFaceSource.cpp13
-rw-r--r--WebCore/css/CSSFontSelector.h3
-rw-r--r--WebCore/css/CSSHelper.h4
-rw-r--r--WebCore/css/CSSOMUtils.h3
-rw-r--r--WebCore/css/CSSParser.cpp5
-rw-r--r--WebCore/css/CSSPrimitiveValue.h2
-rw-r--r--WebCore/css/CSSPropertyNames.in1
-rw-r--r--WebCore/css/CSSSelector.cpp15
-rw-r--r--WebCore/css/CSSStyleSelector.cpp16
-rw-r--r--WebCore/css/MediaList.h2
-rw-r--r--WebCore/css/SVGCSSComputedStyleDeclaration.cpp23
-rw-r--r--WebCore/css/SVGCSSStyleSelector.cpp26
-rw-r--r--WebCore/css/StyleBase.h2
-rw-r--r--WebCore/css/StyleMedia.cpp3
-rw-r--r--WebCore/css/StyleSheetList.h2
-rw-r--r--WebCore/css/WebKitCSSKeyframesRule.h2
-rw-r--r--WebCore/css/mathml.css46
-rw-r--r--WebCore/dom/ActiveDOMObject.cpp12
-rw-r--r--WebCore/dom/AsyncScriptRunner.cpp84
-rw-r--r--WebCore/dom/AsyncScriptRunner.h61
-rw-r--r--WebCore/dom/CheckedRadioButtons.h3
-rw-r--r--WebCore/dom/DOMImplementation.h2
-rw-r--r--WebCore/dom/DeviceMotionClient.h45
-rw-r--r--WebCore/dom/DeviceMotionController.cpp104
-rw-r--r--WebCore/dom/DeviceMotionController.h61
-rw-r--r--WebCore/dom/DeviceMotionData.cpp88
-rw-r--r--WebCore/dom/DeviceMotionData.h90
-rw-r--r--WebCore/dom/DeviceMotionEvent.cpp57
-rw-r--r--WebCore/dom/DeviceMotionEvent.h62
-rw-r--r--WebCore/dom/DeviceMotionEvent.idl41
-rw-r--r--WebCore/dom/Document.cpp410
-rw-r--r--WebCore/dom/Document.h187
-rw-r--r--WebCore/dom/DocumentFragment.cpp8
-rw-r--r--WebCore/dom/DocumentFragment.h4
-rw-r--r--WebCore/dom/DocumentMarker.h2
-rw-r--r--WebCore/dom/DynamicNodeList.h1
-rw-r--r--WebCore/dom/Element.cpp2
-rw-r--r--WebCore/dom/Event.cpp5
-rw-r--r--WebCore/dom/Event.h1
-rw-r--r--WebCore/dom/EventNames.h4
-rw-r--r--WebCore/dom/EventTarget.cpp2
-rw-r--r--WebCore/dom/EventTarget.h3
-rw-r--r--WebCore/dom/ExceptionCode.h2
-rw-r--r--WebCore/dom/MessagePort.h3
-rw-r--r--WebCore/dom/MessagePortChannel.h2
-rw-r--r--WebCore/dom/NameNodeList.h3
-rw-r--r--WebCore/dom/Node.h8
-rw-r--r--WebCore/dom/NodeList.h2
-rw-r--r--WebCore/dom/OptionGroupElement.h3
-rw-r--r--WebCore/dom/PendingScript.cpp68
-rw-r--r--WebCore/dom/PendingScript.h79
-rw-r--r--WebCore/dom/Position.cpp17
-rw-r--r--WebCore/dom/Position.h1
-rw-r--r--WebCore/dom/QualifiedName.cpp8
-rw-r--r--WebCore/dom/QualifiedName.h2
-rw-r--r--WebCore/dom/ScriptElement.cpp3
-rw-r--r--WebCore/dom/ScriptExecutionContext.cpp6
-rw-r--r--WebCore/dom/ScriptExecutionContext.h8
-rw-r--r--WebCore/dom/SelectElement.h2
-rw-r--r--WebCore/dom/TextEvent.cpp30
-rw-r--r--WebCore/dom/TextEvent.h27
-rw-r--r--WebCore/dom/ViewportArguments.cpp24
-rw-r--r--WebCore/dom/ViewportArguments.h10
-rw-r--r--WebCore/dom/XMLDocumentParser.h8
-rw-r--r--WebCore/dom/XMLDocumentParserQt.cpp3
-rwxr-xr-xWebCore/dom/make_names.pl8
-rw-r--r--WebCore/editing/ApplyStyleCommand.cpp297
-rw-r--r--WebCore/editing/ApplyStyleCommand.h8
-rw-r--r--WebCore/editing/CompositeEditCommand.cpp4
-rw-r--r--WebCore/editing/CompositeEditCommand.h3
-rw-r--r--WebCore/editing/Editor.cpp60
-rw-r--r--WebCore/editing/Editor.h7
-rw-r--r--WebCore/editing/HTMLInterchange.h3
-rw-r--r--WebCore/editing/RemoveCSSPropertyCommand.cpp16
-rw-r--r--WebCore/editing/RemoveCSSPropertyCommand.h9
-rw-r--r--WebCore/editing/TextIterator.cpp155
-rw-r--r--WebCore/editing/TextIterator.h25
-rw-r--r--WebCore/editing/htmlediting.h1
-rw-r--r--WebCore/editing/markup.cpp167
-rw-r--r--WebCore/editing/markup.h1
-rw-r--r--WebCore/editing/visible_units.cpp32
-rw-r--r--WebCore/features.pri194
-rw-r--r--WebCore/history/qt/HistoryItemQt.cpp20
-rw-r--r--WebCore/html/Blob.cpp4
-rw-r--r--WebCore/html/Blob.h2
-rw-r--r--WebCore/html/Blob.idl2
-rw-r--r--WebCore/html/CollectionCache.h2
-rw-r--r--WebCore/html/DOMFormData.h2
-rw-r--r--WebCore/html/DataGridColumnList.h2
-rw-r--r--WebCore/html/DateComponents.h3
-rw-r--r--WebCore/html/FileError.h4
-rw-r--r--WebCore/html/FileError.idl2
-rw-r--r--WebCore/html/FileReader.cpp4
-rw-r--r--WebCore/html/FileReader.h6
-rw-r--r--WebCore/html/FileReader.idl2
-rw-r--r--WebCore/html/FileStream.cpp6
-rw-r--r--WebCore/html/FileStream.h6
-rw-r--r--WebCore/html/FileStreamClient.h4
-rw-r--r--WebCore/html/FileStreamProxy.cpp4
-rw-r--r--WebCore/html/FileStreamProxy.h6
-rw-r--r--WebCore/html/FileThread.cpp4
-rw-r--r--WebCore/html/FileThread.h4
-rw-r--r--WebCore/html/FormDataList.h5
-rw-r--r--WebCore/html/HTMLAnchorElement.cpp3
-rw-r--r--WebCore/html/HTMLCanvasElement.cpp16
-rw-r--r--WebCore/html/HTMLCollection.h3
-rw-r--r--WebCore/html/HTMLConstructionSite.cpp8
-rw-r--r--WebCore/html/HTMLConstructionSite.h1
-rw-r--r--WebCore/html/HTMLDocumentParser.cpp45
-rw-r--r--WebCore/html/HTMLDocumentParser.h4
-rw-r--r--WebCore/html/HTMLElement.cpp15
-rw-r--r--WebCore/html/HTMLElementStack.cpp17
-rw-r--r--WebCore/html/HTMLElementStack.h5
-rw-r--r--WebCore/html/HTMLEntityNames.json8552
-rw-r--r--WebCore/html/HTMLFormattingElementList.h1
-rw-r--r--WebCore/html/HTMLInputElement.cpp36
-rw-r--r--WebCore/html/HTMLMediaElement.cpp58
-rw-r--r--WebCore/html/HTMLMediaElement.h16
-rw-r--r--WebCore/html/HTMLParserQuirks.h2
-rw-r--r--WebCore/html/HTMLQuoteElement.h3
-rw-r--r--WebCore/html/HTMLScriptRunner.cpp38
-rw-r--r--WebCore/html/HTMLScriptRunner.h44
-rw-r--r--WebCore/html/HTMLScriptRunnerHost.h3
-rw-r--r--WebCore/html/HTMLToken.h2
-rw-r--r--WebCore/html/HTMLTokenizer.cpp2
-rw-r--r--WebCore/html/HTMLTokenizer.h33
-rw-r--r--WebCore/html/HTMLTreeBuilder.cpp252
-rw-r--r--WebCore/html/HTMLTreeBuilder.h39
-rw-r--r--WebCore/html/HTMLVideoElement.cpp60
-rw-r--r--WebCore/html/HTMLVideoElement.h11
-rw-r--r--WebCore/html/HTMLViewSourceDocument.cpp40
-rw-r--r--WebCore/html/LegacyHTMLDocumentParser.cpp6
-rw-r--r--WebCore/html/StepRange.h2
-rw-r--r--WebCore/html/ValidityState.cpp6
-rw-r--r--WebCore/html/ValidityState.h2
-rw-r--r--WebCore/html/canvas/ArrayBuffer.cpp18
-rw-r--r--WebCore/html/canvas/ArrayBufferView.cpp7
-rw-r--r--WebCore/html/canvas/ArrayBufferView.h5
-rw-r--r--WebCore/html/canvas/CanvasGradient.h3
-rw-r--r--WebCore/html/canvas/CanvasNumberArray.h3
-rw-r--r--WebCore/html/canvas/CanvasObject.h79
-rw-r--r--WebCore/html/canvas/CanvasPattern.h2
-rw-r--r--WebCore/html/canvas/CanvasRenderingContext.h9
-rw-r--r--WebCore/html/canvas/CanvasRenderingContext2D.cpp79
-rw-r--r--WebCore/html/canvas/CanvasRenderingContext2D.h19
-rw-r--r--WebCore/html/canvas/CanvasStyle.cpp20
-rw-r--r--WebCore/html/canvas/CanvasStyle.h2
-rw-r--r--WebCore/html/canvas/TypedArrayBase.h2
-rw-r--r--WebCore/html/canvas/WebGLBuffer.cpp179
-rw-r--r--WebCore/html/canvas/WebGLBuffer.h123
-rw-r--r--WebCore/html/canvas/WebGLFramebuffer.cpp15
-rw-r--r--WebCore/html/canvas/WebGLFramebuffer.h94
-rw-r--r--WebCore/html/canvas/WebGLGetInfo.cpp7
-rw-r--r--WebCore/html/canvas/WebGLGetInfo.h18
-rw-r--r--WebCore/html/canvas/WebGLObject.cpp (renamed from WebCore/html/canvas/CanvasObject.cpp)13
-rw-r--r--WebCore/html/canvas/WebGLObject.h79
-rw-r--r--WebCore/html/canvas/WebGLProgram.cpp13
-rw-r--r--WebCore/html/canvas/WebGLProgram.h70
-rw-r--r--WebCore/html/canvas/WebGLRenderbuffer.cpp5
-rw-r--r--WebCore/html/canvas/WebGLRenderbuffer.h52
-rw-r--r--WebCore/html/canvas/WebGLRenderingContext.cpp222
-rw-r--r--WebCore/html/canvas/WebGLRenderingContext.h942
-rw-r--r--WebCore/html/canvas/WebGLRenderingContext.idl5
-rw-r--r--WebCore/html/canvas/WebGLShader.cpp5
-rw-r--r--WebCore/html/canvas/WebGLShader.h30
-rw-r--r--WebCore/html/canvas/WebGLTexture.cpp5
-rw-r--r--WebCore/html/canvas/WebGLTexture.h140
-rw-r--r--WebCore/html/canvas/WebGLUniformLocation.h2
-rw-r--r--WebCore/inspector/CodeGeneratorInspector.pm267
-rw-r--r--WebCore/inspector/ConsoleMessage.cpp3
-rw-r--r--WebCore/inspector/ConsoleMessage.h3
-rw-r--r--WebCore/inspector/InjectedScript.cpp11
-rw-r--r--WebCore/inspector/InjectedScript.h7
-rw-r--r--WebCore/inspector/InjectedScriptHost.cpp14
-rw-r--r--WebCore/inspector/InjectedScriptHost.h7
-rw-r--r--WebCore/inspector/InjectedScriptHost.idl2
-rw-r--r--WebCore/inspector/Inspector.idl228
-rw-r--r--WebCore/inspector/InspectorApplicationCacheAgent.cpp59
-rw-r--r--WebCore/inspector/InspectorApplicationCacheAgent.h20
-rw-r--r--WebCore/inspector/InspectorBackend.cpp533
-rw-r--r--WebCore/inspector/InspectorBackend.h120
-rw-r--r--WebCore/inspector/InspectorCSSStore.cpp10
-rw-r--r--WebCore/inspector/InspectorCSSStore.h5
-rw-r--r--WebCore/inspector/InspectorClient.h2
-rw-r--r--WebCore/inspector/InspectorController.cpp685
-rw-r--r--WebCore/inspector/InspectorController.h108
-rw-r--r--WebCore/inspector/InspectorDOMAgent.cpp256
-rw-r--r--WebCore/inspector/InspectorDOMAgent.h44
-rw-r--r--WebCore/inspector/InspectorDOMStorageResource.cpp15
-rw-r--r--WebCore/inspector/InspectorDOMStorageResource.h8
-rw-r--r--WebCore/inspector/InspectorDatabaseResource.cpp34
-rw-r--r--WebCore/inspector/InspectorDatabaseResource.h48
-rw-r--r--WebCore/inspector/InspectorDebuggerAgent.cpp296
-rw-r--r--WebCore/inspector/InspectorDebuggerAgent.h102
-rw-r--r--WebCore/inspector/InspectorFrontend.cpp625
-rw-r--r--WebCore/inspector/InspectorFrontend.h172
-rw-r--r--WebCore/inspector/InspectorFrontendClient.h2
-rw-r--r--WebCore/inspector/InspectorFrontendClientLocal.cpp10
-rw-r--r--WebCore/inspector/InspectorFrontendHost.cpp4
-rw-r--r--WebCore/inspector/InspectorResource.cpp132
-rw-r--r--WebCore/inspector/InspectorResource.h10
-rw-r--r--WebCore/inspector/InspectorStorageAgent.cpp229
-rw-r--r--WebCore/inspector/InspectorStorageAgent.h62
-rw-r--r--WebCore/inspector/InspectorValues.cpp12
-rw-r--r--WebCore/inspector/InspectorValues.h4
-rw-r--r--WebCore/inspector/ScriptDebugListener.h3
-rw-r--r--WebCore/inspector/TimelineRecordFactory.cpp2
-rw-r--r--WebCore/inspector/front-end/ApplicationCacheItemsView.js45
-rw-r--r--WebCore/inspector/front-end/BreakpointManager.js1
-rw-r--r--WebCore/inspector/front-end/Callback.js10
-rw-r--r--WebCore/inspector/front-end/ConsoleView.js1
-rw-r--r--WebCore/inspector/front-end/DOMAgent.js26
-rw-r--r--WebCore/inspector/front-end/DOMStorage.js3
-rw-r--r--WebCore/inspector/front-end/Database.js33
-rw-r--r--WebCore/inspector/front-end/DatabaseQueryView.js6
-rw-r--r--WebCore/inspector/front-end/DatabaseTableView.js4
-rw-r--r--WebCore/inspector/front-end/ElementsPanel.js2
-rw-r--r--WebCore/inspector/front-end/ElementsTreeOutline.js2
-rw-r--r--WebCore/inspector/front-end/ExtensionServer.js4
-rw-r--r--WebCore/inspector/front-end/InjectedScript.js39
-rw-r--r--WebCore/inspector/front-end/InjectedScriptAccess.js8
-rw-r--r--WebCore/inspector/front-end/InspectorBackendStub.js8
-rw-r--r--WebCore/inspector/front-end/ProfilesPanel.js2
-rw-r--r--WebCore/inspector/front-end/ResourcesPanel.js2
-rw-r--r--WebCore/inspector/front-end/ScriptView.js1
-rw-r--r--WebCore/inspector/front-end/ScriptsPanel.js7
-rw-r--r--WebCore/inspector/front-end/Settings.js1
-rw-r--r--WebCore/inspector/front-end/StoragePanel.js24
-rw-r--r--WebCore/inspector/front-end/inspector.js63
-rw-r--r--WebCore/inspector/front-end/utilities.js3
-rw-r--r--WebCore/loader/CachedResourceClient.h2
-rw-r--r--WebCore/loader/CrossOriginAccessControl.h3
-rw-r--r--WebCore/loader/CrossOriginPreflightResultCache.cpp2
-rw-r--r--WebCore/loader/DocumentLoadTiming.h4
-rw-r--r--WebCore/loader/DocumentLoader.h1
-rw-r--r--WebCore/loader/DocumentThreadableLoader.h2
-rw-r--r--WebCore/loader/FrameLoader.cpp10
-rw-r--r--WebCore/loader/FrameLoaderClient.h1
-rw-r--r--WebCore/loader/RedirectScheduler.h2
-rw-r--r--WebCore/loader/SubframeLoader.h1
-rw-r--r--WebCore/loader/TextResourceDecoder.cpp2
-rw-r--r--WebCore/loader/appcache/ApplicationCacheGroup.cpp26
-rw-r--r--WebCore/loader/appcache/ApplicationCacheStorage.cpp2
-rw-r--r--WebCore/loader/appcache/DOMApplicationCache.h3
-rw-r--r--WebCore/loader/archive/ArchiveFactory.h2
-rw-r--r--WebCore/loader/icon/IconDatabaseClient.h3
-rw-r--r--WebCore/manual-tests/css3-background-layer-count.html38
-rw-r--r--WebCore/manual-tests/system-color-change.html7
-rw-r--r--WebCore/mathml/MathMLElement.cpp27
-rw-r--r--WebCore/mathml/MathMLInlineContainerElement.cpp30
-rw-r--r--WebCore/mathml/MathMLMathElement.cpp6
-rw-r--r--WebCore/mathml/MathMLTextElement.cpp7
-rw-r--r--WebCore/mathml/RenderMathMLFenced.cpp164
-rw-r--r--WebCore/mathml/RenderMathMLFenced.h56
-rw-r--r--WebCore/mathml/RenderMathMLFraction.cpp13
-rw-r--r--WebCore/mathml/RenderMathMLOperator.cpp116
-rw-r--r--WebCore/mathml/RenderMathMLRoot.cpp26
-rw-r--r--WebCore/mathml/RenderMathMLSquareRoot.cpp20
-rw-r--r--WebCore/mathml/RenderMathMLSubSup.cpp2
-rw-r--r--WebCore/mathml/mathattrs.in7
-rw-r--r--WebCore/notifications/NotificationCenter.cpp1
-rw-r--r--WebCore/notifications/NotificationPresenter.h1
-rw-r--r--WebCore/page/Chrome.h1
-rw-r--r--WebCore/page/ChromeClient.h2
-rw-r--r--WebCore/page/Console.h2
-rw-r--r--WebCore/page/ContextMenuClient.h2
-rw-r--r--WebCore/page/DOMSelection.h1
-rw-r--r--WebCore/page/DOMWindow.cpp7
-rw-r--r--WebCore/page/DOMWindow.h1
-rw-r--r--WebCore/page/DOMWindow.idl14
-rw-r--r--WebCore/page/EditorClient.h1
-rw-r--r--WebCore/page/EventHandler.cpp15
-rw-r--r--WebCore/page/EventHandler.h2
-rw-r--r--WebCore/page/FocusController.cpp7
-rw-r--r--WebCore/page/Frame.cpp1
-rw-r--r--WebCore/page/FrameView.cpp2
-rw-r--r--WebCore/page/FrameView.h1
-rw-r--r--WebCore/page/GeolocationPositionCache.h2
-rw-r--r--WebCore/page/History.h2
-rw-r--r--WebCore/page/Location.h2
-rw-r--r--WebCore/page/Navigator.h7
-rw-r--r--WebCore/page/NavigatorBase.h4
-rw-r--r--WebCore/page/Page.cpp2
-rw-r--r--WebCore/page/Page.h6
-rw-r--r--WebCore/page/PageGroup.cpp3
-rw-r--r--WebCore/page/PageGroupLoadDeferrer.cpp5
-rw-r--r--WebCore/page/PluginHalterClient.h3
-rw-r--r--WebCore/page/PrintContext.h2
-rw-r--r--WebCore/page/Settings.h11
-rw-r--r--WebCore/page/SpeechInput.h2
-rw-r--r--WebCore/page/SpeechInputListener.h4
-rw-r--r--WebCore/page/animation/AnimationController.h2
-rw-r--r--WebCore/platform/BlobItem.cpp16
-rw-r--r--WebCore/platform/BlobItem.h16
-rw-r--r--WebCore/platform/CookieJar.h2
-rw-r--r--WebCore/platform/CrossThreadCopier.h2
-rw-r--r--WebCore/platform/Cursor.h6
-rw-r--r--WebCore/platform/DragImage.h4
-rw-r--r--WebCore/platform/FileSystem.h10
-rw-r--r--WebCore/platform/KURLHash.h2
-rw-r--r--WebCore/platform/Language.h4
-rw-r--r--WebCore/platform/Length.h3
-rw-r--r--WebCore/platform/LinkHash.h2
-rw-r--r--WebCore/platform/LocalizationStrategy.h9
-rw-r--r--WebCore/platform/LocalizedStrings.cpp (renamed from WebCore/platform/mac/LocalizedStringsMac.mm)42
-rw-r--r--WebCore/platform/LocalizedStrings.h10
-rw-r--r--WebCore/platform/Logging.h3
-rw-r--r--WebCore/platform/Pasteboard.h6
-rw-r--r--WebCore/platform/PopupMenuClient.h2
-rw-r--r--WebCore/platform/SearchPopupMenu.h3
-rw-r--r--WebCore/platform/Widget.h4
-rw-r--r--WebCore/platform/WindowsKeyboardCodes.h30
-rw-r--r--WebCore/platform/android/TemporaryLinkStubs.cpp10
-rw-r--r--WebCore/platform/cf/BinaryPropertyList.h3
-rw-r--r--WebCore/platform/chromium/ChromiumBridge.h3
-rw-r--r--WebCore/platform/chromium/ClipboardUtilitiesChromium.h3
-rw-r--r--WebCore/platform/chromium/WidgetChromium.cpp2
-rw-r--r--WebCore/platform/cocoa/KeyEventCocoa.h4
-rw-r--r--WebCore/platform/cocoa/KeyEventCocoa.mm2
-rw-r--r--WebCore/platform/efl/ClipboardEfl.cpp2
-rw-r--r--WebCore/platform/efl/ClipboardEfl.h2
-rw-r--r--WebCore/platform/efl/RenderThemeEfl.cpp64
-rw-r--r--WebCore/platform/efl/RenderThemeEfl.h7
-rw-r--r--WebCore/platform/graphics/Color.h2
-rw-r--r--WebCore/platform/graphics/FontCache.h2
-rw-r--r--WebCore/platform/graphics/FontData.h2
-rw-r--r--WebCore/platform/graphics/FontSelector.h2
-rw-r--r--WebCore/platform/graphics/GraphicsContext.h13
-rw-r--r--WebCore/platform/graphics/GraphicsContext3D.h1464
-rw-r--r--WebCore/platform/graphics/GraphicsLayer.cpp2
-rw-r--r--WebCore/platform/graphics/GraphicsLayer.h4
-rw-r--r--WebCore/platform/graphics/GraphicsTypes.h4
-rw-r--r--WebCore/platform/graphics/Icon.h1
-rw-r--r--WebCore/platform/graphics/Image.h4
-rw-r--r--WebCore/platform/graphics/ImageBuffer.h2
-rw-r--r--WebCore/platform/graphics/ImageSource.h13
-rw-r--r--WebCore/platform/graphics/MediaPlayer.cpp5
-rw-r--r--WebCore/platform/graphics/MediaPlayer.h3
-rw-r--r--WebCore/platform/graphics/MediaPlayerPrivate.h4
-rw-r--r--WebCore/platform/graphics/Path.h2
-rw-r--r--WebCore/platform/graphics/SimpleFontData.cpp88
-rw-r--r--WebCore/platform/graphics/SimpleFontData.h12
-rw-r--r--WebCore/platform/graphics/StringTruncator.h3
-rw-r--r--WebCore/platform/graphics/WOFFFileFormat.cpp7
-rw-r--r--WebCore/platform/graphics/cairo/FontCustomPlatformData.h2
-rw-r--r--WebCore/platform/graphics/cairo/FontPlatformData.h3
-rw-r--r--WebCore/platform/graphics/cg/ColorCG.cpp1
-rw-r--r--WebCore/platform/graphics/cg/FontPlatformData.h2
-rw-r--r--WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp30
-rw-r--r--WebCore/platform/graphics/cg/ImageSourceCG.h3
-rw-r--r--WebCore/platform/graphics/chromium/CanvasLayerChromium.cpp (renamed from WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp)18
-rw-r--r--WebCore/platform/graphics/chromium/CanvasLayerChromium.h (renamed from WebCore/platform/graphics/chromium/WebGLLayerChromium.h)19
-rw-r--r--WebCore/platform/graphics/chromium/FontCacheChromiumWin.cpp2
-rw-r--r--WebCore/platform/graphics/chromium/FontCustomPlatformData.h2
-rw-r--r--WebCore/platform/graphics/chromium/FontPlatformDataChromiumMac.mm11
-rw-r--r--WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h2
-rw-r--r--WebCore/platform/graphics/chromium/FontPlatformDataLinux.h2
-rw-r--r--WebCore/platform/graphics/chromium/GLES2Canvas.cpp281
-rw-r--r--WebCore/platform/graphics/chromium/GLES2Canvas.h10
-rw-r--r--WebCore/platform/graphics/chromium/GLES2Texture.cpp58
-rw-r--r--WebCore/platform/graphics/chromium/GLES2Texture.h8
-rw-r--r--WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp26
-rw-r--r--WebCore/platform/graphics/chromium/GraphicsLayerChromium.h5
-rw-r--r--WebCore/platform/graphics/chromium/ImageLayerChromium.cpp44
-rw-r--r--WebCore/platform/graphics/chromium/LayerChromium.cpp64
-rw-r--r--WebCore/platform/graphics/chromium/LayerRendererChromium.cpp117
-rw-r--r--WebCore/platform/graphics/chromium/LayerRendererChromium.h12
-rw-r--r--WebCore/platform/graphics/chromium/VideoLayerChromium.cpp143
-rw-r--r--WebCore/platform/graphics/chromium/VideoLayerChromium.h12
-rw-r--r--WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h2
-rw-r--r--WebCore/platform/graphics/haiku/FontCustomPlatformData.h2
-rw-r--r--WebCore/platform/graphics/mac/ComplexTextController.h2
-rw-r--r--WebCore/platform/graphics/mac/ComplexTextControllerCoreText.cpp30
-rw-r--r--WebCore/platform/graphics/mac/FontCustomPlatformData.h2
-rw-r--r--WebCore/platform/graphics/mac/FontMac.mm2
-rw-r--r--WebCore/platform/graphics/mac/FontPlatformData.h14
-rw-r--r--WebCore/platform/graphics/mac/FontPlatformDataMac.mm20
-rw-r--r--WebCore/platform/graphics/mac/GraphicsContext3DMac.mm168
-rw-r--r--WebCore/platform/graphics/mac/GraphicsLayerCA.h19
-rw-r--r--WebCore/platform/graphics/mac/GraphicsLayerCA.mm26
-rw-r--r--WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h6
-rw-r--r--WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm30
-rw-r--r--WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp13
-rw-r--r--WebCore/platform/graphics/qt/FontCustomPlatformData.h2
-rw-r--r--WebCore/platform/graphics/qt/FontPlatformData.h2
-rw-r--r--WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp159
-rw-r--r--WebCore/platform/graphics/qt/GraphicsContextQt.cpp10
-rw-r--r--WebCore/platform/graphics/qt/ImageBufferQt.cpp2
-rw-r--r--WebCore/platform/graphics/qt/PathQt.cpp6
-rw-r--r--WebCore/platform/graphics/skia/GraphicsContextSkia.cpp21
-rw-r--r--WebCore/platform/graphics/skia/ImageBufferSkia.cpp2
-rw-r--r--WebCore/platform/graphics/skia/ImageSkia.cpp1
-rw-r--r--WebCore/platform/graphics/skia/NativeImageSkia.cpp8
-rw-r--r--WebCore/platform/graphics/skia/NativeImageSkia.h5
-rw-r--r--WebCore/platform/graphics/skia/PlatformContextSkia.cpp125
-rw-r--r--WebCore/platform/graphics/skia/PlatformContextSkia.h40
-rw-r--r--WebCore/platform/graphics/skia/SkiaFontWin.cpp4
-rw-r--r--WebCore/platform/graphics/skia/SkiaFontWin.h5
-rw-r--r--WebCore/platform/graphics/win/FontCustomPlatformData.h2
-rw-r--r--WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h2
-rw-r--r--WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h2
-rw-r--r--WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h2
-rw-r--r--WebCore/platform/graphics/wince/FontPlatformData.h2
-rw-r--r--WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h2
-rw-r--r--WebCore/platform/graphics/wince/MediaPlayerProxy.h2
-rw-r--r--WebCore/platform/graphics/wx/FontCustomPlatformData.cpp49
-rw-r--r--WebCore/platform/graphics/wx/FontCustomPlatformData.h47
-rw-r--r--WebCore/platform/graphics/wx/FontPlatformData.h4
-rw-r--r--WebCore/platform/gtk/ClipboardGtk.cpp60
-rw-r--r--WebCore/platform/gtk/ClipboardGtk.h9
-rw-r--r--WebCore/platform/gtk/CursorGtk.cpp431
-rw-r--r--WebCore/platform/gtk/KeyEventGtk.cpp1
-rw-r--r--WebCore/platform/gtk/WidgetGtk.cpp2
-rw-r--r--WebCore/platform/image-decoders/ImageDecoder.cpp21
-rw-r--r--WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp3
-rw-r--r--WebCore/platform/iphone/KeyEventIPhone.mm4
-rw-r--r--WebCore/platform/mac/PasteboardHelper.h1
-rw-r--r--WebCore/platform/network/Credential.h2
-rw-r--r--WebCore/platform/network/DNS.h4
-rw-r--r--WebCore/platform/network/FormData.cpp12
-rw-r--r--WebCore/platform/network/FormData.h13
-rw-r--r--WebCore/platform/network/FormDataBuilder.h16
-rw-r--r--WebCore/platform/network/HTTPParsers.h3
-rw-r--r--WebCore/platform/network/mac/FormDataStreamMac.mm16
-rw-r--r--WebCore/platform/network/qt/NetworkStateNotifierPrivate.h4
-rw-r--r--WebCore/platform/network/qt/NetworkStateNotifierQt.cpp2
-rw-r--r--WebCore/platform/network/qt/QNetworkReplyHandler.cpp14
-rw-r--r--WebCore/platform/qt/FileSystemQt.cpp2
-rw-r--r--WebCore/platform/qt/PopupMenuQt.cpp88
-rw-r--r--WebCore/platform/qt/QWebPageClient.h2
-rw-r--r--WebCore/platform/qt/QtAbstractWebPopup.cpp82
-rw-r--r--WebCore/platform/qt/QtAbstractWebPopup.h75
-rw-r--r--WebCore/platform/qt/RenderThemeQt.cpp2
-rw-r--r--WebCore/platform/text/AtomicStringHash.h6
-rw-r--r--WebCore/platform/text/AtomicStringKeyedMRUCache.h71
-rw-r--r--WebCore/platform/text/Hyphenation.cpp9
-rw-r--r--WebCore/platform/text/Hyphenation.h4
-rw-r--r--WebCore/platform/text/LineEnding.h2
-rw-r--r--WebCore/platform/text/SegmentedString.h4
-rw-r--r--WebCore/platform/text/StringBuffer.h52
-rw-r--r--WebCore/platform/text/StringBuilder.cpp39
-rw-r--r--WebCore/platform/text/StringBuilder.h41
-rw-r--r--WebCore/platform/text/TextCodec.h3
-rw-r--r--WebCore/platform/text/TextCodecICU.cpp59
-rw-r--r--WebCore/platform/text/TextCodecLatin1.cpp1
-rw-r--r--WebCore/platform/text/TextEncoding.cpp2
-rw-r--r--WebCore/platform/text/TextEncoding.h10
-rw-r--r--WebCore/platform/text/TextEncodingRegistry.cpp57
-rw-r--r--WebCore/platform/text/TextStream.h3
-rw-r--r--WebCore/platform/text/android/HyphenationAndroid.cpp8
-rw-r--r--WebCore/platform/text/cf/HyphenationCF.cpp31
-rw-r--r--WebCore/platform/text/cf/StringCF.cpp2
-rw-r--r--WebCore/platform/text/cf/StringImplCF.cpp4
-rw-r--r--WebCore/platform/text/haiku/StringHaiku.cpp2
-rw-r--r--WebCore/platform/text/mac/HyphenationMac.mm30
-rw-r--r--WebCore/platform/text/mac/StringImplMac.mm2
-rw-r--r--WebCore/platform/text/mac/StringMac.mm2
-rw-r--r--WebCore/platform/text/wx/StringWx.cpp2
-rw-r--r--WebCore/platform/win/BString.h4
-rw-r--r--WebCore/platform/win/ClipboardUtilitiesWin.h2
-rw-r--r--WebCore/platform/win/SearchPopupMenuWin.cpp13
-rw-r--r--WebCore/platform/win/WCDataObject.h3
-rw-r--r--WebCore/platform/win/WebCoreTextRenderer.h3
-rw-r--r--WebCore/platform/wx/ClipboardWx.cpp2
-rw-r--r--WebCore/platform/wx/ClipboardWx.h2
-rw-r--r--WebCore/plugins/DOMMimeType.h2
-rw-r--r--WebCore/plugins/DOMMimeTypeArray.h2
-rw-r--r--WebCore/plugins/DOMPlugin.h3
-rw-r--r--WebCore/plugins/DOMPluginArray.h2
-rw-r--r--WebCore/plugins/PluginViewNone.cpp13
-rw-r--r--WebCore/plugins/gtk/PluginViewGtk.cpp2
-rw-r--r--WebCore/plugins/mac/PluginViewMac.mm5
-rw-r--r--WebCore/plugins/win/PluginDataWin.cpp64
-rw-r--r--WebCore/plugins/win/PluginMessageThrottlerWin.cpp2
-rw-r--r--WebCore/rendering/CounterNode.h2
-rw-r--r--WebCore/rendering/HitTestResult.h6
-rw-r--r--WebCore/rendering/RenderBlockLineLayout.cpp12
-rw-r--r--WebCore/rendering/RenderBoxModelObject.cpp2
-rw-r--r--WebCore/rendering/RenderLayer.cpp2
-rw-r--r--WebCore/rendering/RenderLayerBacking.cpp39
-rw-r--r--WebCore/rendering/RenderLayerCompositor.cpp2
-rw-r--r--WebCore/rendering/RenderObject.h2
-rw-r--r--WebCore/rendering/RenderObjectChildList.h2
-rw-r--r--WebCore/rendering/RenderPath.cpp3
-rw-r--r--WebCore/rendering/RenderSVGImage.cpp3
-rw-r--r--WebCore/rendering/RenderSVGResourceClipper.h2
-rw-r--r--WebCore/rendering/RenderSVGText.cpp7
-rw-r--r--WebCore/rendering/RenderScrollbar.cpp24
-rw-r--r--WebCore/rendering/RenderScrollbar.h8
-rw-r--r--WebCore/rendering/RenderScrollbarPart.cpp4
-rw-r--r--WebCore/rendering/RenderText.h2
-rw-r--r--WebCore/rendering/RenderTextControlSingleLine.cpp99
-rw-r--r--WebCore/rendering/RenderTextControlSingleLine.h2
-rw-r--r--WebCore/rendering/RenderTheme.cpp2
-rw-r--r--WebCore/rendering/RenderTreeAsText.h3
-rw-r--r--WebCore/rendering/RenderVideo.cpp99
-rw-r--r--WebCore/rendering/RenderVideo.h8
-rw-r--r--WebCore/rendering/SVGCharacterLayoutInfo.cpp15
-rw-r--r--WebCore/rendering/SVGInlineTextBox.cpp8
-rw-r--r--WebCore/rendering/SVGRenderSupport.cpp54
-rw-r--r--WebCore/rendering/SVGRenderSupport.h2
-rw-r--r--WebCore/rendering/SVGRenderTreeAsText.cpp14
-rw-r--r--WebCore/rendering/SVGTextLayoutUtilities.cpp14
-rw-r--r--WebCore/rendering/SVGTextLayoutUtilities.h3
-rw-r--r--WebCore/rendering/TextControlInnerElements.cpp19
-rw-r--r--WebCore/rendering/TextControlInnerElements.h8
-rw-r--r--WebCore/rendering/style/ContentData.h2
-rw-r--r--WebCore/rendering/style/FillLayer.cpp35
-rw-r--r--WebCore/rendering/style/RenderStyle.cpp12
-rw-r--r--WebCore/rendering/style/RenderStyle.h15
-rw-r--r--WebCore/rendering/style/SVGRenderStyle.cpp20
-rw-r--r--WebCore/rendering/style/SVGRenderStyle.h77
-rw-r--r--WebCore/rendering/style/SVGRenderStyleDefs.cpp4
-rw-r--r--WebCore/rendering/style/SVGRenderStyleDefs.h12
-rw-r--r--WebCore/rendering/style/StyleRareInheritedData.cpp6
-rw-r--r--WebCore/rendering/style/StyleRareInheritedData.h3
-rw-r--r--WebCore/storage/Database.cpp20
-rw-r--r--WebCore/storage/Database.h6
-rw-r--r--WebCore/storage/Database.idl6
-rw-r--r--WebCore/storage/DatabaseAuthorizer.h2
-rw-r--r--WebCore/storage/DatabaseCallback.h5
-rw-r--r--WebCore/storage/DatabaseSync.cpp14
-rw-r--r--WebCore/storage/DatabaseSync.h4
-rw-r--r--WebCore/storage/DatabaseSync.idl6
-rw-r--r--WebCore/storage/DatabaseTrackerClient.h3
-rw-r--r--WebCore/storage/EntryCallback.h2
-rw-r--r--WebCore/storage/ErrorCallback.h2
-rw-r--r--WebCore/storage/FileSystemCallback.h2
-rw-r--r--WebCore/storage/IDBAny.cpp44
-rw-r--r--WebCore/storage/IDBAny.h25
-rw-r--r--WebCore/storage/IDBCallbacks.h10
-rw-r--r--WebCore/storage/IDBCursor.cpp (renamed from WebCore/storage/IDBDatabaseRequest.cpp)55
-rw-r--r--WebCore/storage/IDBCursor.h (renamed from WebCore/storage/IDBDatabaseRequest.h)50
-rw-r--r--WebCore/storage/IDBCursor.idl44
-rw-r--r--WebCore/storage/IDBCursorBackendImpl.cpp88
-rw-r--r--WebCore/storage/IDBCursorBackendImpl.h71
-rw-r--r--WebCore/storage/IDBCursorBackendInterface.h (renamed from WebCore/storage/IDBObjectStoreRequest.h)50
-rw-r--r--WebCore/storage/IDBDatabase.cpp84
-rw-r--r--WebCore/storage/IDBDatabase.h46
-rw-r--r--WebCore/storage/IDBDatabase.idl (renamed from WebCore/storage/IDBDatabaseRequest.idl)6
-rw-r--r--WebCore/storage/IDBDatabaseBackendImpl.cpp (renamed from WebCore/storage/IDBDatabaseImpl.cpp)25
-rw-r--r--WebCore/storage/IDBDatabaseBackendImpl.h (renamed from WebCore/storage/IDBDatabaseImpl.h)22
-rw-r--r--WebCore/storage/IDBDatabaseBackendInterface.h68
-rw-r--r--WebCore/storage/IDBFactoryBackendImpl.cpp16
-rw-r--r--WebCore/storage/IDBFactoryBackendImpl.h4
-rw-r--r--WebCore/storage/IDBObjectStore.cpp (renamed from WebCore/storage/IDBObjectStoreRequest.cpp)32
-rw-r--r--WebCore/storage/IDBObjectStore.h46
-rw-r--r--WebCore/storage/IDBObjectStore.idl (renamed from WebCore/storage/IDBObjectStoreRequest.idl)4
-rwxr-xr-xWebCore/storage/IDBObjectStoreBackendImpl.cpp (renamed from WebCore/storage/IDBObjectStoreImpl.cpp)32
-rw-r--r--WebCore/storage/IDBObjectStoreBackendImpl.h (renamed from WebCore/storage/IDBObjectStoreImpl.h)20
-rw-r--r--WebCore/storage/IDBObjectStoreBackendInterface.h67
-rw-r--r--WebCore/storage/IDBRequest.cpp47
-rw-r--r--WebCore/storage/IDBRequest.h12
-rw-r--r--WebCore/storage/IDBTransaction.cpp72
-rw-r--r--WebCore/storage/IDBTransaction.h91
-rw-r--r--WebCore/storage/IDBTransaction.idl57
-rw-r--r--WebCore/storage/IDBTransactionBackendInterface.h62
-rw-r--r--WebCore/storage/MetadataCallback.h2
-rw-r--r--WebCore/storage/OriginUsageRecord.cpp6
-rw-r--r--WebCore/storage/SQLStatement.cpp4
-rw-r--r--WebCore/storage/SQLStatementCallback.h3
-rw-r--r--WebCore/storage/SQLStatementErrorCallback.h3
-rw-r--r--WebCore/storage/SQLTransaction.cpp4
-rw-r--r--WebCore/storage/SQLTransaction.h1
-rw-r--r--WebCore/storage/SQLTransactionCallback.h3
-rw-r--r--WebCore/storage/SQLTransactionErrorCallback.h3
-rw-r--r--WebCore/storage/SQLTransactionSync.cpp2
-rw-r--r--WebCore/storage/SQLTransactionSync.h1
-rw-r--r--WebCore/storage/SQLTransactionSyncCallback.h3
-rw-r--r--WebCore/storage/Storage.h1
-rw-r--r--WebCore/storage/chromium/DatabaseObserver.h3
-rw-r--r--WebCore/svg/ColorDistance.cpp34
-rw-r--r--WebCore/svg/ColorDistance.h34
-rw-r--r--WebCore/svg/ElementTimeControl.h2
-rw-r--r--WebCore/svg/ElementTimeControl.idl2
-rw-r--r--WebCore/svg/GradientAttributes.h34
-rw-r--r--WebCore/svg/LinearGradientAttributes.h34
-rw-r--r--WebCore/svg/PatternAttributes.h34
-rw-r--r--WebCore/svg/RadialGradientAttributes.h34
-rw-r--r--WebCore/svg/SVGAElement.cpp38
-rw-r--r--WebCore/svg/SVGAElement.h38
-rw-r--r--WebCore/svg/SVGAElement.idl6
-rw-r--r--WebCore/svg/SVGAllInOne.cpp9
-rw-r--r--WebCore/svg/SVGAltGlyphElement.cpp38
-rw-r--r--WebCore/svg/SVGAltGlyphElement.h38
-rw-r--r--WebCore/svg/SVGAltGlyphElement.idl6
-rw-r--r--WebCore/svg/SVGAngle.cpp36
-rw-r--r--WebCore/svg/SVGAngle.h37
-rw-r--r--WebCore/svg/SVGAngle.idl40
-rw-r--r--WebCore/svg/SVGAnimateColorElement.cpp38
-rw-r--r--WebCore/svg/SVGAnimateColorElement.h38
-rw-r--r--WebCore/svg/SVGAnimateColorElement.idl6
-rw-r--r--WebCore/svg/SVGAnimateElement.cpp55
-rw-r--r--WebCore/svg/SVGAnimateElement.h38
-rw-r--r--WebCore/svg/SVGAnimateElement.idl6
-rw-r--r--WebCore/svg/SVGAnimateMotionElement.cpp47
-rw-r--r--WebCore/svg/SVGAnimateMotionElement.h36
-rw-r--r--WebCore/svg/SVGAnimateTransformElement.cpp42
-rw-r--r--WebCore/svg/SVGAnimateTransformElement.h40
-rw-r--r--WebCore/svg/SVGAnimateTransformElement.idl6
-rw-r--r--WebCore/svg/SVGAnimatedAngle.idl6
-rw-r--r--WebCore/svg/SVGAnimatedBoolean.idl6
-rw-r--r--WebCore/svg/SVGAnimatedEnumeration.idl6
-rw-r--r--WebCore/svg/SVGAnimatedInteger.idl6
-rw-r--r--WebCore/svg/SVGAnimatedLength.idl6
-rw-r--r--WebCore/svg/SVGAnimatedLengthList.idl6
-rw-r--r--WebCore/svg/SVGAnimatedNumber.idl6
-rw-r--r--WebCore/svg/SVGAnimatedNumberList.idl6
-rw-r--r--WebCore/svg/SVGAnimatedPathData.cpp36
-rw-r--r--WebCore/svg/SVGAnimatedPathData.h36
-rw-r--r--WebCore/svg/SVGAnimatedPathData.idl6
-rw-r--r--WebCore/svg/SVGAnimatedPoints.cpp36
-rw-r--r--WebCore/svg/SVGAnimatedPoints.h36
-rw-r--r--WebCore/svg/SVGAnimatedPoints.idl6
-rw-r--r--WebCore/svg/SVGAnimatedPreserveAspectRatio.idl6
-rw-r--r--WebCore/svg/SVGAnimatedProperty.h36
-rw-r--r--WebCore/svg/SVGAnimatedPropertySynchronizer.h34
-rw-r--r--WebCore/svg/SVGAnimatedPropertyTraits.h36
-rw-r--r--WebCore/svg/SVGAnimatedRect.idl6
-rw-r--r--WebCore/svg/SVGAnimatedString.idl6
-rw-r--r--WebCore/svg/SVGAnimatedTemplate.h38
-rw-r--r--WebCore/svg/SVGAnimatedTransformList.idl6
-rw-r--r--WebCore/svg/SVGAnimationElement.cpp44
-rw-r--r--WebCore/svg/SVGAnimationElement.h42
-rw-r--r--WebCore/svg/SVGAnimationElement.idl6
-rw-r--r--WebCore/svg/SVGCircleElement.cpp36
-rw-r--r--WebCore/svg/SVGCircleElement.h36
-rw-r--r--WebCore/svg/SVGCircleElement.idl6
-rw-r--r--WebCore/svg/SVGClipPathElement.cpp38
-rw-r--r--WebCore/svg/SVGClipPathElement.h36
-rw-r--r--WebCore/svg/SVGClipPathElement.idl6
-rw-r--r--WebCore/svg/SVGColor.cpp36
-rw-r--r--WebCore/svg/SVGColor.h36
-rw-r--r--WebCore/svg/SVGColor.idl38
-rw-r--r--WebCore/svg/SVGComponentTransferFunctionElement.cpp36
-rw-r--r--WebCore/svg/SVGComponentTransferFunctionElement.h36
-rw-r--r--WebCore/svg/SVGComponentTransferFunctionElement.idl6
-rw-r--r--WebCore/svg/SVGCursorElement.cpp36
-rw-r--r--WebCore/svg/SVGCursorElement.h36
-rw-r--r--WebCore/svg/SVGCursorElement.idl6
-rw-r--r--WebCore/svg/SVGDefsElement.cpp36
-rw-r--r--WebCore/svg/SVGDefsElement.h36
-rw-r--r--WebCore/svg/SVGDefsElement.idl6
-rw-r--r--WebCore/svg/SVGDescElement.cpp36
-rw-r--r--WebCore/svg/SVGDescElement.h36
-rw-r--r--WebCore/svg/SVGDescElement.idl6
-rw-r--r--WebCore/svg/SVGDocument.cpp36
-rw-r--r--WebCore/svg/SVGDocument.h36
-rw-r--r--WebCore/svg/SVGDocument.idl38
-rw-r--r--WebCore/svg/SVGDocumentExtensions.cpp40
-rw-r--r--WebCore/svg/SVGDocumentExtensions.h40
-rw-r--r--WebCore/svg/SVGElement.cpp42
-rw-r--r--WebCore/svg/SVGElement.h38
-rw-r--r--WebCore/svg/SVGElement.idl40
-rw-r--r--WebCore/svg/SVGElementInstance.cpp36
-rw-r--r--WebCore/svg/SVGElementInstance.h34
-rw-r--r--WebCore/svg/SVGElementInstance.idl4
-rw-r--r--WebCore/svg/SVGElementInstanceList.cpp34
-rw-r--r--WebCore/svg/SVGElementInstanceList.h34
-rw-r--r--WebCore/svg/SVGElementInstanceList.idl4
-rw-r--r--WebCore/svg/SVGElementRareData.h1
-rw-r--r--WebCore/svg/SVGEllipseElement.cpp36
-rw-r--r--WebCore/svg/SVGEllipseElement.h36
-rw-r--r--WebCore/svg/SVGEllipseElement.idl6
-rw-r--r--WebCore/svg/SVGException.h1
-rw-r--r--WebCore/svg/SVGExternalResourcesRequired.cpp36
-rw-r--r--WebCore/svg/SVGExternalResourcesRequired.h36
-rw-r--r--WebCore/svg/SVGExternalResourcesRequired.idl6
-rw-r--r--WebCore/svg/SVGFEBlendElement.cpp36
-rw-r--r--WebCore/svg/SVGFEBlendElement.h36
-rw-r--r--WebCore/svg/SVGFEBlendElement.idl6
-rw-r--r--WebCore/svg/SVGFEColorMatrixElement.cpp36
-rw-r--r--WebCore/svg/SVGFEColorMatrixElement.h36
-rw-r--r--WebCore/svg/SVGFEColorMatrixElement.idl6
-rw-r--r--WebCore/svg/SVGFEComponentTransferElement.cpp36
-rw-r--r--WebCore/svg/SVGFEComponentTransferElement.h36
-rw-r--r--WebCore/svg/SVGFEComponentTransferElement.idl6
-rw-r--r--WebCore/svg/SVGFECompositeElement.cpp36
-rw-r--r--WebCore/svg/SVGFECompositeElement.h36
-rw-r--r--WebCore/svg/SVGFECompositeElement.idl6
-rw-r--r--WebCore/svg/SVGFEConvolveMatrixElement.cpp34
-rw-r--r--WebCore/svg/SVGFEConvolveMatrixElement.h34
-rw-r--r--WebCore/svg/SVGFEConvolveMatrixElement.idl6
-rw-r--r--WebCore/svg/SVGFEDiffuseLightingElement.cpp35
-rw-r--r--WebCore/svg/SVGFEDiffuseLightingElement.h36
-rw-r--r--WebCore/svg/SVGFEDiffuseLightingElement.idl6
-rw-r--r--WebCore/svg/SVGFEDisplacementMapElement.cpp32
-rw-r--r--WebCore/svg/SVGFEDisplacementMapElement.h32
-rw-r--r--WebCore/svg/SVGFEDisplacementMapElement.idl6
-rw-r--r--WebCore/svg/SVGFEDistantLightElement.cpp32
-rw-r--r--WebCore/svg/SVGFEDistantLightElement.h32
-rw-r--r--WebCore/svg/SVGFEDistantLightElement.idl6
-rw-r--r--WebCore/svg/SVGFEFloodElement.cpp36
-rw-r--r--WebCore/svg/SVGFEFloodElement.h36
-rw-r--r--WebCore/svg/SVGFEFloodElement.idl6
-rw-r--r--WebCore/svg/SVGFEFuncAElement.cpp36
-rw-r--r--WebCore/svg/SVGFEFuncAElement.h36
-rw-r--r--WebCore/svg/SVGFEFuncAElement.idl6
-rw-r--r--WebCore/svg/SVGFEFuncBElement.cpp36
-rw-r--r--WebCore/svg/SVGFEFuncBElement.h36
-rw-r--r--WebCore/svg/SVGFEFuncBElement.idl6
-rw-r--r--WebCore/svg/SVGFEFuncGElement.cpp36
-rw-r--r--WebCore/svg/SVGFEFuncGElement.h36
-rw-r--r--WebCore/svg/SVGFEFuncGElement.idl6
-rw-r--r--WebCore/svg/SVGFEFuncRElement.cpp36
-rw-r--r--WebCore/svg/SVGFEFuncRElement.h36
-rw-r--r--WebCore/svg/SVGFEFuncRElement.idl6
-rw-r--r--WebCore/svg/SVGFEGaussianBlurElement.cpp36
-rw-r--r--WebCore/svg/SVGFEGaussianBlurElement.h36
-rw-r--r--WebCore/svg/SVGFEGaussianBlurElement.idl6
-rw-r--r--WebCore/svg/SVGFEImageElement.cpp38
-rw-r--r--WebCore/svg/SVGFEImageElement.h36
-rw-r--r--WebCore/svg/SVGFEImageElement.idl6
-rw-r--r--WebCore/svg/SVGFELightElement.cpp64
-rw-r--r--WebCore/svg/SVGFELightElement.h78
-rw-r--r--WebCore/svg/SVGFEMergeElement.cpp36
-rw-r--r--WebCore/svg/SVGFEMergeElement.h36
-rw-r--r--WebCore/svg/SVGFEMergeElement.idl6
-rw-r--r--WebCore/svg/SVGFEMergeNodeElement.cpp36
-rw-r--r--WebCore/svg/SVGFEMergeNodeElement.h36
-rw-r--r--WebCore/svg/SVGFEMergeNodeElement.idl6
-rw-r--r--WebCore/svg/SVGFEMorphologyElement.cpp34
-rw-r--r--WebCore/svg/SVGFEMorphologyElement.h34
-rw-r--r--WebCore/svg/SVGFEMorphologyElement.idl4
-rw-r--r--WebCore/svg/SVGFEOffsetElement.cpp38
-rw-r--r--WebCore/svg/SVGFEOffsetElement.h36
-rw-r--r--WebCore/svg/SVGFEOffsetElement.idl6
-rw-r--r--WebCore/svg/SVGFEPointLightElement.cpp32
-rw-r--r--WebCore/svg/SVGFEPointLightElement.h32
-rw-r--r--WebCore/svg/SVGFEPointLightElement.idl6
-rw-r--r--WebCore/svg/SVGFESpecularLightingElement.cpp39
-rw-r--r--WebCore/svg/SVGFESpecularLightingElement.h36
-rw-r--r--WebCore/svg/SVGFESpecularLightingElement.idl6
-rw-r--r--WebCore/svg/SVGFESpotLightElement.cpp32
-rw-r--r--WebCore/svg/SVGFESpotLightElement.h32
-rw-r--r--WebCore/svg/SVGFESpotLightElement.idl6
-rw-r--r--WebCore/svg/SVGFETileElement.cpp36
-rw-r--r--WebCore/svg/SVGFETileElement.h36
-rw-r--r--WebCore/svg/SVGFETileElement.idl6
-rw-r--r--WebCore/svg/SVGFETurbulenceElement.cpp36
-rw-r--r--WebCore/svg/SVGFETurbulenceElement.h36
-rw-r--r--WebCore/svg/SVGFETurbulenceElement.idl6
-rw-r--r--WebCore/svg/SVGFilterElement.cpp42
-rw-r--r--WebCore/svg/SVGFilterElement.h56
-rw-r--r--WebCore/svg/SVGFilterElement.idl6
-rw-r--r--WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp42
-rw-r--r--WebCore/svg/SVGFilterPrimitiveStandardAttributes.h45
-rw-r--r--WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl6
-rw-r--r--WebCore/svg/SVGFitToViewBox.cpp36
-rw-r--r--WebCore/svg/SVGFitToViewBox.h36
-rw-r--r--WebCore/svg/SVGFitToViewBox.idl6
-rw-r--r--WebCore/svg/SVGFont.cpp3
-rw-r--r--WebCore/svg/SVGFontData.cpp2
-rw-r--r--WebCore/svg/SVGFontData.h1
-rw-r--r--WebCore/svg/SVGFontElement.cpp38
-rw-r--r--WebCore/svg/SVGFontElement.h36
-rw-r--r--WebCore/svg/SVGFontElement.idl4
-rw-r--r--WebCore/svg/SVGFontFaceElement.cpp38
-rw-r--r--WebCore/svg/SVGFontFaceElement.h38
-rw-r--r--WebCore/svg/SVGFontFaceElement.idl4
-rw-r--r--WebCore/svg/SVGFontFaceFormatElement.cpp32
-rw-r--r--WebCore/svg/SVGFontFaceFormatElement.h32
-rw-r--r--WebCore/svg/SVGFontFaceFormatElement.idl4
-rw-r--r--WebCore/svg/SVGFontFaceNameElement.cpp32
-rw-r--r--WebCore/svg/SVGFontFaceNameElement.h32
-rw-r--r--WebCore/svg/SVGFontFaceNameElement.idl4
-rw-r--r--WebCore/svg/SVGFontFaceSrcElement.cpp32
-rw-r--r--WebCore/svg/SVGFontFaceSrcElement.h32
-rw-r--r--WebCore/svg/SVGFontFaceSrcElement.idl4
-rw-r--r--WebCore/svg/SVGFontFaceUriElement.cpp34
-rw-r--r--WebCore/svg/SVGFontFaceUriElement.h32
-rw-r--r--WebCore/svg/SVGFontFaceUriElement.idl4
-rw-r--r--WebCore/svg/SVGForeignObjectElement.cpp38
-rw-r--r--WebCore/svg/SVGForeignObjectElement.h34
-rw-r--r--WebCore/svg/SVGForeignObjectElement.idl6
-rw-r--r--WebCore/svg/SVGGElement.cpp36
-rw-r--r--WebCore/svg/SVGGElement.h36
-rw-r--r--WebCore/svg/SVGGElement.idl6
-rw-r--r--WebCore/svg/SVGGlyphElement.cpp46
-rw-r--r--WebCore/svg/SVGGlyphElement.h38
-rw-r--r--WebCore/svg/SVGGlyphElement.idl4
-rw-r--r--WebCore/svg/SVGGlyphMap.h32
-rw-r--r--WebCore/svg/SVGGradientElement.cpp38
-rw-r--r--WebCore/svg/SVGGradientElement.h36
-rw-r--r--WebCore/svg/SVGGradientElement.idl6
-rw-r--r--WebCore/svg/SVGHKernElement.cpp38
-rw-r--r--WebCore/svg/SVGHKernElement.h38
-rw-r--r--WebCore/svg/SVGHKernElement.idl34
-rw-r--r--WebCore/svg/SVGImageElement.cpp38
-rw-r--r--WebCore/svg/SVGImageElement.h36
-rw-r--r--WebCore/svg/SVGImageElement.idl6
-rw-r--r--WebCore/svg/SVGImageLoader.cpp38
-rw-r--r--WebCore/svg/SVGImageLoader.h36
-rw-r--r--WebCore/svg/SVGLangSpace.cpp36
-rw-r--r--WebCore/svg/SVGLangSpace.h36
-rw-r--r--WebCore/svg/SVGLangSpace.idl6
-rw-r--r--WebCore/svg/SVGLength.cpp154
-rw-r--r--WebCore/svg/SVGLength.h179
-rw-r--r--WebCore/svg/SVGLength.idl40
-rw-r--r--WebCore/svg/SVGLengthList.cpp36
-rw-r--r--WebCore/svg/SVGLengthList.h36
-rw-r--r--WebCore/svg/SVGLengthList.idl6
-rw-r--r--WebCore/svg/SVGLineElement.cpp36
-rw-r--r--WebCore/svg/SVGLineElement.h36
-rw-r--r--WebCore/svg/SVGLineElement.idl6
-rw-r--r--WebCore/svg/SVGLinearGradientElement.cpp42
-rw-r--r--WebCore/svg/SVGLinearGradientElement.h36
-rw-r--r--WebCore/svg/SVGLinearGradientElement.idl6
-rw-r--r--WebCore/svg/SVGList.h36
-rw-r--r--WebCore/svg/SVGListTraits.h36
-rw-r--r--WebCore/svg/SVGLocatable.cpp40
-rw-r--r--WebCore/svg/SVGLocatable.h38
-rw-r--r--WebCore/svg/SVGLocatable.idl6
-rw-r--r--WebCore/svg/SVGMPathElement.cpp34
-rw-r--r--WebCore/svg/SVGMPathElement.h34
-rw-r--r--WebCore/svg/SVGMarkerElement.cpp38
-rw-r--r--WebCore/svg/SVGMarkerElement.h36
-rw-r--r--WebCore/svg/SVGMarkerElement.idl6
-rw-r--r--WebCore/svg/SVGMaskElement.cpp42
-rw-r--r--WebCore/svg/SVGMaskElement.h34
-rw-r--r--WebCore/svg/SVGMaskElement.idl6
-rw-r--r--WebCore/svg/SVGMatrix.idl40
-rw-r--r--WebCore/svg/SVGMetadataElement.cpp36
-rw-r--r--WebCore/svg/SVGMetadataElement.h36
-rw-r--r--WebCore/svg/SVGMetadataElement.idl38
-rw-r--r--WebCore/svg/SVGMissingGlyphElement.cpp34
-rw-r--r--WebCore/svg/SVGMissingGlyphElement.h32
-rw-r--r--WebCore/svg/SVGMissingGlyphElement.idl4
-rw-r--r--WebCore/svg/SVGNumber.idl40
-rw-r--r--WebCore/svg/SVGNumberList.cpp36
-rw-r--r--WebCore/svg/SVGNumberList.h39
-rw-r--r--WebCore/svg/SVGNumberList.idl6
-rw-r--r--WebCore/svg/SVGPaint.cpp38
-rw-r--r--WebCore/svg/SVGPaint.h38
-rw-r--r--WebCore/svg/SVGPaint.idl6
-rw-r--r--WebCore/svg/SVGParserUtilities.cpp40
-rw-r--r--WebCore/svg/SVGParserUtilities.h36
-rw-r--r--WebCore/svg/SVGPathBuilder.cpp49
-rw-r--r--WebCore/svg/SVGPathBuilder.h19
-rw-r--r--WebCore/svg/SVGPathByteStream.h70
-rw-r--r--WebCore/svg/SVGPathByteStreamBuilder.cpp117
-rw-r--r--WebCore/svg/SVGPathByteStreamBuilder.h97
-rw-r--r--WebCore/svg/SVGPathByteStreamSource.cpp120
-rw-r--r--WebCore/svg/SVGPathByteStreamSource.h106
-rw-r--r--WebCore/svg/SVGPathConsumer.h15
-rw-r--r--WebCore/svg/SVGPathElement.cpp46
-rw-r--r--WebCore/svg/SVGPathElement.h36
-rw-r--r--WebCore/svg/SVGPathElement.idl6
-rw-r--r--WebCore/svg/SVGPathParser.cpp322
-rw-r--r--WebCore/svg/SVGPathParser.h29
-rw-r--r--WebCore/svg/SVGPathParserFactory.cpp229
-rw-r--r--WebCore/svg/SVGPathParserFactory.h57
-rw-r--r--WebCore/svg/SVGPathSeg.cpp54
-rw-r--r--WebCore/svg/SVGPathSeg.h168
-rw-r--r--WebCore/svg/SVGPathSeg.idl4
-rw-r--r--WebCore/svg/SVGPathSegArc.cpp36
-rw-r--r--WebCore/svg/SVGPathSegArc.h49
-rw-r--r--WebCore/svg/SVGPathSegArcAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegArcRel.idl6
-rw-r--r--WebCore/svg/SVGPathSegClosePath.cpp36
-rw-r--r--WebCore/svg/SVGPathSegClosePath.h63
-rw-r--r--WebCore/svg/SVGPathSegClosePath.idl6
-rw-r--r--WebCore/svg/SVGPathSegCurvetoCubic.cpp36
-rw-r--r--WebCore/svg/SVGPathSegCurvetoCubic.h39
-rw-r--r--WebCore/svg/SVGPathSegCurvetoCubicAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegCurvetoCubicRel.idl6
-rw-r--r--WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp36
-rw-r--r--WebCore/svg/SVGPathSegCurvetoCubicSmooth.h41
-rw-r--r--WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl6
-rw-r--r--WebCore/svg/SVGPathSegCurvetoQuadratic.cpp36
-rw-r--r--WebCore/svg/SVGPathSegCurvetoQuadratic.h39
-rw-r--r--WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl6
-rw-r--r--WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp36
-rw-r--r--WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h37
-rw-r--r--WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl6
-rw-r--r--WebCore/svg/SVGPathSegLineto.cpp36
-rw-r--r--WebCore/svg/SVGPathSegLineto.h37
-rw-r--r--WebCore/svg/SVGPathSegLinetoAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegLinetoHorizontal.cpp36
-rw-r--r--WebCore/svg/SVGPathSegLinetoHorizontal.h39
-rw-r--r--WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegLinetoHorizontalRel.idl6
-rw-r--r--WebCore/svg/SVGPathSegLinetoRel.idl6
-rw-r--r--WebCore/svg/SVGPathSegLinetoVertical.cpp36
-rw-r--r--WebCore/svg/SVGPathSegLinetoVertical.h39
-rw-r--r--WebCore/svg/SVGPathSegLinetoVerticalAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegLinetoVerticalRel.idl6
-rw-r--r--WebCore/svg/SVGPathSegList.cpp152
-rw-r--r--WebCore/svg/SVGPathSegList.h37
-rw-r--r--WebCore/svg/SVGPathSegList.idl6
-rw-r--r--WebCore/svg/SVGPathSegListBuilder.cpp73
-rw-r--r--WebCore/svg/SVGPathSegListBuilder.h17
-rw-r--r--WebCore/svg/SVGPathSegListSource.cpp167
-rw-r--r--WebCore/svg/SVGPathSegListSource.h69
-rw-r--r--WebCore/svg/SVGPathSegMoveto.cpp36
-rw-r--r--WebCore/svg/SVGPathSegMoveto.h37
-rw-r--r--WebCore/svg/SVGPathSegMovetoAbs.idl6
-rw-r--r--WebCore/svg/SVGPathSegMovetoRel.idl6
-rw-r--r--WebCore/svg/SVGPathSource.h54
-rw-r--r--WebCore/svg/SVGPathStringBuilder.cpp110
-rw-r--r--WebCore/svg/SVGPathStringBuilder.h59
-rw-r--r--WebCore/svg/SVGPathStringSource.cpp247
-rw-r--r--WebCore/svg/SVGPathStringSource.h66
-rw-r--r--WebCore/svg/SVGPatternElement.cpp38
-rw-r--r--WebCore/svg/SVGPatternElement.h36
-rw-r--r--WebCore/svg/SVGPatternElement.idl6
-rw-r--r--WebCore/svg/SVGPoint.idl40
-rw-r--r--WebCore/svg/SVGPointList.cpp36
-rw-r--r--WebCore/svg/SVGPointList.h39
-rw-r--r--WebCore/svg/SVGPointList.idl6
-rw-r--r--WebCore/svg/SVGPolyElement.cpp36
-rw-r--r--WebCore/svg/SVGPolyElement.h36
-rw-r--r--WebCore/svg/SVGPolygonElement.cpp36
-rw-r--r--WebCore/svg/SVGPolygonElement.h36
-rw-r--r--WebCore/svg/SVGPolygonElement.idl6
-rw-r--r--WebCore/svg/SVGPolylineElement.cpp36
-rw-r--r--WebCore/svg/SVGPolylineElement.h36
-rw-r--r--WebCore/svg/SVGPolylineElement.idl6
-rw-r--r--WebCore/svg/SVGPreserveAspectRatio.cpp38
-rw-r--r--WebCore/svg/SVGPreserveAspectRatio.h38
-rw-r--r--WebCore/svg/SVGPreserveAspectRatio.idl6
-rw-r--r--WebCore/svg/SVGRadialGradientElement.cpp42
-rw-r--r--WebCore/svg/SVGRadialGradientElement.h36
-rw-r--r--WebCore/svg/SVGRadialGradientElement.idl6
-rw-r--r--WebCore/svg/SVGRect.idl40
-rw-r--r--WebCore/svg/SVGRectElement.cpp36
-rw-r--r--WebCore/svg/SVGRectElement.h36
-rw-r--r--WebCore/svg/SVGRectElement.idl6
-rw-r--r--WebCore/svg/SVGRenderingIntent.h34
-rw-r--r--WebCore/svg/SVGRenderingIntent.idl6
-rw-r--r--WebCore/svg/SVGSVGElement.cpp38
-rw-r--r--WebCore/svg/SVGSVGElement.h36
-rw-r--r--WebCore/svg/SVGSVGElement.idl40
-rw-r--r--WebCore/svg/SVGScriptElement.cpp36
-rw-r--r--WebCore/svg/SVGScriptElement.h36
-rw-r--r--WebCore/svg/SVGScriptElement.idl6
-rw-r--r--WebCore/svg/SVGSetElement.cpp36
-rw-r--r--WebCore/svg/SVGSetElement.h36
-rw-r--r--WebCore/svg/SVGSetElement.idl6
-rw-r--r--WebCore/svg/SVGStopElement.cpp36
-rw-r--r--WebCore/svg/SVGStopElement.h36
-rw-r--r--WebCore/svg/SVGStopElement.idl6
-rw-r--r--WebCore/svg/SVGStringList.cpp36
-rw-r--r--WebCore/svg/SVGStringList.h36
-rw-r--r--WebCore/svg/SVGStringList.idl6
-rw-r--r--WebCore/svg/SVGStylable.cpp36
-rw-r--r--WebCore/svg/SVGStylable.h38
-rw-r--r--WebCore/svg/SVGStylable.idl6
-rw-r--r--WebCore/svg/SVGStyleElement.cpp40
-rw-r--r--WebCore/svg/SVGStyleElement.h36
-rw-r--r--WebCore/svg/SVGStyleElement.idl6
-rw-r--r--WebCore/svg/SVGStyledElement.cpp36
-rw-r--r--WebCore/svg/SVGStyledElement.h36
-rw-r--r--WebCore/svg/SVGStyledLocatableElement.cpp36
-rw-r--r--WebCore/svg/SVGStyledLocatableElement.h36
-rw-r--r--WebCore/svg/SVGStyledTransformableElement.cpp36
-rw-r--r--WebCore/svg/SVGStyledTransformableElement.h36
-rw-r--r--WebCore/svg/SVGSwitchElement.cpp36
-rw-r--r--WebCore/svg/SVGSwitchElement.h36
-rw-r--r--WebCore/svg/SVGSwitchElement.idl6
-rw-r--r--WebCore/svg/SVGSymbolElement.cpp36
-rw-r--r--WebCore/svg/SVGSymbolElement.h36
-rw-r--r--WebCore/svg/SVGSymbolElement.idl6
-rw-r--r--WebCore/svg/SVGTRefElement.cpp36
-rw-r--r--WebCore/svg/SVGTRefElement.h36
-rw-r--r--WebCore/svg/SVGTRefElement.idl6
-rw-r--r--WebCore/svg/SVGTSpanElement.cpp36
-rw-r--r--WebCore/svg/SVGTSpanElement.h36
-rw-r--r--WebCore/svg/SVGTSpanElement.idl6
-rw-r--r--WebCore/svg/SVGTests.cpp36
-rw-r--r--WebCore/svg/SVGTests.h38
-rw-r--r--WebCore/svg/SVGTests.idl6
-rw-r--r--WebCore/svg/SVGTextContentElement.cpp36
-rw-r--r--WebCore/svg/SVGTextContentElement.h36
-rw-r--r--WebCore/svg/SVGTextContentElement.idl6
-rw-r--r--WebCore/svg/SVGTextElement.cpp36
-rw-r--r--WebCore/svg/SVGTextElement.h36
-rw-r--r--WebCore/svg/SVGTextElement.idl6
-rw-r--r--WebCore/svg/SVGTextPathElement.cpp34
-rw-r--r--WebCore/svg/SVGTextPathElement.h34
-rw-r--r--WebCore/svg/SVGTextPathElement.idl4
-rw-r--r--WebCore/svg/SVGTextPositioningElement.cpp36
-rw-r--r--WebCore/svg/SVGTextPositioningElement.h36
-rw-r--r--WebCore/svg/SVGTextPositioningElement.idl6
-rw-r--r--WebCore/svg/SVGTitleElement.cpp36
-rw-r--r--WebCore/svg/SVGTitleElement.h36
-rw-r--r--WebCore/svg/SVGTitleElement.idl6
-rw-r--r--WebCore/svg/SVGTransform.cpp36
-rw-r--r--WebCore/svg/SVGTransform.h37
-rw-r--r--WebCore/svg/SVGTransform.idl38
-rw-r--r--WebCore/svg/SVGTransformDistance.cpp34
-rw-r--r--WebCore/svg/SVGTransformDistance.h34
-rw-r--r--WebCore/svg/SVGTransformList.cpp36
-rw-r--r--WebCore/svg/SVGTransformList.h39
-rw-r--r--WebCore/svg/SVGTransformList.idl6
-rw-r--r--WebCore/svg/SVGTransformable.cpp40
-rw-r--r--WebCore/svg/SVGTransformable.h38
-rw-r--r--WebCore/svg/SVGTransformable.idl6
-rw-r--r--WebCore/svg/SVGURIReference.cpp36
-rw-r--r--WebCore/svg/SVGURIReference.h36
-rw-r--r--WebCore/svg/SVGURIReference.idl6
-rw-r--r--WebCore/svg/SVGUnitTypes.h34
-rw-r--r--WebCore/svg/SVGUnitTypes.idl6
-rw-r--r--WebCore/svg/SVGUseElement.cpp38
-rw-r--r--WebCore/svg/SVGUseElement.h36
-rw-r--r--WebCore/svg/SVGUseElement.idl6
-rw-r--r--WebCore/svg/SVGVKernElement.cpp34
-rw-r--r--WebCore/svg/SVGVKernElement.h34
-rw-r--r--WebCore/svg/SVGVKernElement.idl34
-rw-r--r--WebCore/svg/SVGViewElement.cpp36
-rw-r--r--WebCore/svg/SVGViewElement.h36
-rw-r--r--WebCore/svg/SVGViewElement.idl6
-rw-r--r--WebCore/svg/SVGViewSpec.cpp34
-rw-r--r--WebCore/svg/SVGViewSpec.h34
-rw-r--r--WebCore/svg/SVGViewSpec.idl4
-rw-r--r--WebCore/svg/SVGZoomAndPan.cpp36
-rw-r--r--WebCore/svg/SVGZoomAndPan.h36
-rw-r--r--WebCore/svg/SVGZoomAndPan.idl6
-rw-r--r--WebCore/svg/SVGZoomEvent.cpp38
-rw-r--r--WebCore/svg/SVGZoomEvent.h38
-rw-r--r--WebCore/svg/SVGZoomEvent.idl6
-rw-r--r--WebCore/svg/animation/SMILTime.cpp2
-rw-r--r--WebCore/svg/animation/SMILTime.h2
-rw-r--r--WebCore/svg/animation/SMILTimeContainer.cpp2
-rw-r--r--WebCore/svg/animation/SMILTimeContainer.h2
-rw-r--r--WebCore/svg/animation/SVGSMILElement.cpp2
-rw-r--r--WebCore/svg/animation/SVGSMILElement.h2
-rw-r--r--WebCore/svg/graphics/SVGImage.cpp6
-rw-r--r--WebCore/svg/graphics/SVGImage.h6
-rw-r--r--WebCore/svg/graphics/filters/SVGDistantLightSource.h40
-rw-r--r--WebCore/svg/graphics/filters/SVGFEConvolveMatrix.cpp42
-rw-r--r--WebCore/svg/graphics/filters/SVGFEConvolveMatrix.h40
-rw-r--r--WebCore/svg/graphics/filters/SVGFEDiffuseLighting.cpp38
-rw-r--r--WebCore/svg/graphics/filters/SVGFEDiffuseLighting.h38
-rw-r--r--WebCore/svg/graphics/filters/SVGFEDisplacementMap.cpp40
-rw-r--r--WebCore/svg/graphics/filters/SVGFEDisplacementMap.h38
-rw-r--r--WebCore/svg/graphics/filters/SVGFEFlood.cpp40
-rw-r--r--WebCore/svg/graphics/filters/SVGFEFlood.h38
-rw-r--r--WebCore/svg/graphics/filters/SVGFEImage.cpp40
-rw-r--r--WebCore/svg/graphics/filters/SVGFEImage.h40
-rw-r--r--WebCore/svg/graphics/filters/SVGFELighting.cpp3
-rw-r--r--WebCore/svg/graphics/filters/SVGFELighting.h3
-rw-r--r--WebCore/svg/graphics/filters/SVGFEMerge.cpp38
-rw-r--r--WebCore/svg/graphics/filters/SVGFEMerge.h38
-rw-r--r--WebCore/svg/graphics/filters/SVGFEMorphology.cpp40
-rw-r--r--WebCore/svg/graphics/filters/SVGFEMorphology.h38
-rw-r--r--WebCore/svg/graphics/filters/SVGFEOffset.cpp40
-rw-r--r--WebCore/svg/graphics/filters/SVGFEOffset.h38
-rw-r--r--WebCore/svg/graphics/filters/SVGFESpecularLighting.cpp38
-rw-r--r--WebCore/svg/graphics/filters/SVGFESpecularLighting.h38
-rw-r--r--WebCore/svg/graphics/filters/SVGFETile.cpp36
-rw-r--r--WebCore/svg/graphics/filters/SVGFETile.h38
-rw-r--r--WebCore/svg/graphics/filters/SVGFETurbulence.cpp42
-rw-r--r--WebCore/svg/graphics/filters/SVGFETurbulence.h42
-rw-r--r--WebCore/svg/graphics/filters/SVGFilter.cpp26
-rw-r--r--WebCore/svg/graphics/filters/SVGFilter.h26
-rw-r--r--WebCore/svg/graphics/filters/SVGFilterBuilder.cpp27
-rw-r--r--WebCore/svg/graphics/filters/SVGFilterBuilder.h34
-rw-r--r--WebCore/svg/graphics/filters/SVGLightSource.cpp40
-rw-r--r--WebCore/svg/graphics/filters/SVGLightSource.h42
-rw-r--r--WebCore/svg/graphics/filters/SVGPointLightSource.h40
-rw-r--r--WebCore/svg/graphics/filters/SVGSpotLightSource.h40
-rw-r--r--WebCore/websockets/ThreadableWebSocketChannel.h2
-rw-r--r--WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h3
-rw-r--r--WebCore/websockets/WebSocket.h2
-rw-r--r--WebCore/websockets/WebSocketChannel.h2
-rw-r--r--WebCore/websockets/WebSocketHandshakeResponse.h3
-rw-r--r--WebCore/wml/WMLCardElement.cpp2
-rw-r--r--WebCore/wml/WMLDocument.cpp8
-rw-r--r--WebCore/wml/WMLDocument.h6
-rw-r--r--WebCore/wml/WMLErrorHandling.h3
-rw-r--r--WebCore/wml/WMLGoElement.cpp1
-rw-r--r--WebCore/wml/WMLPageState.h2
-rw-r--r--WebCore/wml/WMLSelectElement.cpp2
-rw-r--r--WebCore/wml/WMLVariables.h3
-rw-r--r--WebCore/workers/DefaultSharedWorkerRepository.h2
-rw-r--r--WebCore/workers/SharedWorkerRepository.h2
-rw-r--r--WebCore/workers/Worker.h2
-rw-r--r--WebCore/workers/WorkerContext.idl5
-rw-r--r--WebCore/workers/WorkerContextProxy.h2
-rw-r--r--WebCore/workers/WorkerLoaderProxy.h3
-rw-r--r--WebCore/workers/WorkerLocation.h3
-rw-r--r--WebCore/workers/WorkerMessagingProxy.h2
-rw-r--r--WebCore/workers/WorkerReportingProxy.h4
-rw-r--r--WebCore/workers/WorkerThread.h2
-rw-r--r--WebCore/wscript22
-rw-r--r--WebCore/xml/DOMParser.h3
-rw-r--r--WebCore/xml/XMLHttpRequest.h2
-rw-r--r--WebCore/xml/XMLHttpRequestUpload.h2
-rw-r--r--WebCore/xml/XPathEvaluator.h2
-rw-r--r--WebCore/xml/XPathExpression.h2
-rw-r--r--WebCore/xml/XPathNSResolver.h3
-rw-r--r--WebCore/xml/XPathResult.h2
-rw-r--r--WebCore/xml/XPathUtil.h2
-rw-r--r--WebCore/xml/XSLTProcessor.cpp2
-rw-r--r--WebKit/ChangeLog28
-rw-r--r--WebKit/WebKit.xcodeproj/project.pbxproj37
-rw-r--r--WebKit/chromium/ChangeLog697
-rw-r--r--WebKit/chromium/DEPS2
-rw-r--r--WebKit/chromium/WebKit.gyp30
-rw-r--r--WebKit/chromium/features.gypi3
-rw-r--r--WebKit/chromium/public/WebCString.h6
-rw-r--r--WebKit/chromium/public/WebDevToolsAgent.h5
-rw-r--r--WebKit/chromium/public/WebDevToolsAgentClient.h5
-rw-r--r--WebKit/chromium/public/WebDevToolsFrontend.h3
-rw-r--r--WebKit/chromium/public/WebDevToolsFrontendClient.h3
-rw-r--r--WebKit/chromium/public/WebDevToolsMessageData.h48
-rw-r--r--WebKit/chromium/public/WebDeviceOrientation.h88
-rw-r--r--WebKit/chromium/public/WebDeviceOrientationClient.h47
-rw-r--r--WebKit/chromium/public/WebDeviceOrientationClientMock.h57
-rw-r--r--WebKit/chromium/public/WebDeviceOrientationController.h56
-rw-r--r--WebKit/chromium/public/WebFileChooserParams.h6
-rw-r--r--WebKit/chromium/public/WebGLES2Context.h6
-rw-r--r--WebKit/chromium/public/WebIDBCallbacks.h2
-rw-r--r--WebKit/chromium/public/WebIDBCursor.h78
-rw-r--r--WebKit/chromium/public/WebIDBKeyRange.h66
-rwxr-xr-xWebKit/chromium/public/WebIDBObjectStore.h6
-rw-r--r--WebKit/chromium/public/WebRuntimeFeatures.h3
-rw-r--r--WebKit/chromium/public/WebSpeechInputControllerMock.h (renamed from WebKit/chromium/public/WebDevToolsMessageTransport.h)20
-rw-r--r--WebKit/chromium/public/WebString.h17
-rw-r--r--WebKit/chromium/public/WebViewClient.h6
-rw-r--r--WebKit/chromium/src/APUAgentDelegate.h46
-rw-r--r--WebKit/chromium/src/AssertMatchingEnums.cpp6
-rw-r--r--WebKit/chromium/src/AutoFillPopupMenuClient.h16
-rw-r--r--WebKit/chromium/src/ChromeClientImpl.cpp2
-rw-r--r--WebKit/chromium/src/ChromeClientImpl.h22
-rw-r--r--WebKit/chromium/src/ChromiumBridge.cpp7
-rw-r--r--WebKit/chromium/src/ContextMenuClientImpl.h2
-rw-r--r--WebKit/chromium/src/DOMUtilitiesPrivate.h5
-rw-r--r--WebKit/chromium/src/DebuggerAgent.h57
-rw-r--r--WebKit/chromium/src/DebuggerAgentImpl.cpp86
-rw-r--r--WebKit/chromium/src/DebuggerAgentImpl.h38
-rw-r--r--WebKit/chromium/src/DebuggerAgentManager.cpp10
-rw-r--r--WebKit/chromium/src/DebuggerAgentManager.h6
-rw-r--r--WebKit/chromium/src/DevToolsRPC.h396
-rw-r--r--WebKit/chromium/src/DevToolsRPCJS.h147
-rw-r--r--WebKit/chromium/src/DeviceOrientationClientProxy.cpp74
-rw-r--r--WebKit/chromium/src/DeviceOrientationClientProxy.h59
-rw-r--r--WebKit/chromium/src/DragClientImpl.h2
-rw-r--r--WebKit/chromium/src/EditorClientImpl.h16
-rw-r--r--WebKit/chromium/src/FrameLoaderClientImpl.h32
-rw-r--r--WebKit/chromium/src/GraphicsContext3D.cpp343
-rw-r--r--WebKit/chromium/src/IDBCallbacksProxy.cpp15
-rw-r--r--WebKit/chromium/src/IDBCallbacksProxy.h5
-rw-r--r--WebKit/chromium/src/IDBCursorBackendProxy.cpp86
-rw-r--r--WebKit/chromium/src/IDBCursorBackendProxy.h62
-rw-r--r--WebKit/chromium/src/IDBDatabaseProxy.cpp12
-rw-r--r--WebKit/chromium/src/IDBDatabaseProxy.h9
-rwxr-xr-xWebKit/chromium/src/IDBObjectStoreProxy.cpp9
-rwxr-xr-xWebKit/chromium/src/IDBObjectStoreProxy.h8
-rw-r--r--WebKit/chromium/src/InspectorClientImpl.cpp3
-rw-r--r--WebKit/chromium/src/InspectorClientImpl.h6
-rw-r--r--WebKit/chromium/src/InspectorFrontendClientImpl.cpp9
-rw-r--r--WebKit/chromium/src/InspectorFrontendClientImpl.h8
-rw-r--r--WebKit/chromium/src/ToolsAgent.h57
-rw-r--r--WebKit/chromium/src/WebDevToolsAgentImpl.cpp222
-rw-r--r--WebKit/chromium/src/WebDevToolsAgentImpl.h37
-rw-r--r--WebKit/chromium/src/WebDevToolsFrontendImpl.cpp58
-rw-r--r--WebKit/chromium/src/WebDevToolsFrontendImpl.h22
-rw-r--r--WebKit/chromium/src/WebDeviceOrientation.cpp86
-rw-r--r--WebKit/chromium/src/WebDeviceOrientationClientMock.cpp71
-rw-r--r--WebKit/chromium/src/WebDeviceOrientationController.cpp47
-rw-r--r--WebKit/chromium/src/WebEntities.cpp2
-rw-r--r--WebKit/chromium/src/WebEntities.h6
-rw-r--r--WebKit/chromium/src/WebFileChooserCompletionImpl.cpp2
-rw-r--r--WebKit/chromium/src/WebFrameImpl.h4
-rw-r--r--WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp2
-rw-r--r--WebKit/chromium/src/WebGeolocationServiceMock.cpp2
-rw-r--r--WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp6
-rw-r--r--WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h4
-rw-r--r--WebKit/chromium/src/WebHTTPBody.cpp6
-rw-r--r--WebKit/chromium/src/WebIDBCallbacksImpl.cpp7
-rw-r--r--WebKit/chromium/src/WebIDBCallbacksImpl.h1
-rw-r--r--WebKit/chromium/src/WebIDBCursorImpl.cpp78
-rw-r--r--WebKit/chromium/src/WebIDBCursorImpl.h57
-rw-r--r--WebKit/chromium/src/WebIDBDatabaseImpl.cpp20
-rw-r--r--WebKit/chromium/src/WebIDBDatabaseImpl.h6
-rw-r--r--WebKit/chromium/src/WebIDBKeyRange.cpp83
-rwxr-xr-xWebKit/chromium/src/WebIDBObjectStoreImpl.cpp11
-rwxr-xr-xWebKit/chromium/src/WebIDBObjectStoreImpl.h8
-rw-r--r--WebKit/chromium/src/WebInputEventConversion.cpp2
-rw-r--r--WebKit/chromium/src/WebKit.cpp2
-rw-r--r--WebKit/chromium/src/WebMediaPlayerClientImpl.cpp4
-rw-r--r--WebKit/chromium/src/WebMediaPlayerClientImpl.h6
-rw-r--r--WebKit/chromium/src/WebPageSerializerImpl.h22
-rw-r--r--WebKit/chromium/src/WebRuntimeFeatures.cpp10
-rw-r--r--WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp (renamed from WebKit/chromium/src/ProfilerAgentImpl.cpp)54
-rw-r--r--WebKit/chromium/src/WebSpeechInputControllerMockImpl.h (renamed from WebKit/chromium/src/ProfilerAgent.h)53
-rw-r--r--WebKit/chromium/src/WebStorageNamespaceImpl.cpp2
-rw-r--r--WebKit/chromium/src/WebString.cpp24
-rw-r--r--WebKit/chromium/src/WebViewImpl.cpp38
-rw-r--r--WebKit/chromium/src/WebViewImpl.h5
-rw-r--r--WebKit/chromium/src/WebWorkerBase.cpp8
-rw-r--r--WebKit/chromium/src/WebWorkerBase.h16
-rw-r--r--WebKit/chromium/src/WebWorkerClientImpl.h22
-rw-r--r--WebKit/chromium/src/WebWorkerImpl.h2
-rw-r--r--WebKit/chromium/src/js/DevTools.js71
-rw-r--r--WebKit/chromium/src/js/DevToolsHostStub.js4
-rw-r--r--WebKit/chromium/src/js/ProfilerAgent.js28
-rw-r--r--WebKit/chromium/src/js/ProfilerProcessor.js2
-rw-r--r--WebKit/chromium/src/js/Tests.js47
-rw-r--r--WebKit/chromium/tests/KURLTest.cpp48
-rw-r--r--WebKit/efl/CMakeListsEfl.txt1
-rw-r--r--WebKit/efl/ChangeLog43
-rw-r--r--WebKit/efl/DefaultTheme/default.edc1
-rw-r--r--WebKit/efl/DefaultTheme/widget/slider/slider.edc221
-rw-r--r--WebKit/efl/DefaultTheme/widget/slider/slider_h.pngbin0 -> 2995 bytes
-rw-r--r--WebKit/efl/DefaultTheme/widget/slider/slider_hilight.pngbin0 -> 266 bytes
-rw-r--r--WebKit/efl/DefaultTheme/widget/slider/slider_knob_h.pngbin0 -> 2946 bytes
-rw-r--r--WebKit/efl/DefaultTheme/widget/slider/slider_knob_v.pngbin0 -> 2939 bytes
-rw-r--r--WebKit/efl/DefaultTheme/widget/slider/slider_v.pngbin0 -> 2992 bytes
-rw-r--r--WebKit/efl/WebCoreSupport/DragClientEfl.h2
-rw-r--r--WebKit/efl/WebCoreSupport/InspectorClientEfl.h2
-rw-r--r--WebKit/efl/ewk/ewk_contextmenu.cpp2
-rw-r--r--WebKit/efl/ewk/ewk_frame.cpp34
-rw-r--r--WebKit/efl/ewk/ewk_history.cpp6
-rw-r--r--WebKit/efl/ewk/ewk_private.h8
-rw-r--r--WebKit/efl/ewk/ewk_settings.cpp12
-rw-r--r--WebKit/efl/ewk/ewk_view.cpp36
-rw-r--r--WebKit/gtk/ChangeLog121
-rw-r--r--WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp6
-rw-r--r--WebKit/gtk/WebCoreSupport/ChromeClientGtk.h20
-rw-r--r--WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h2
-rw-r--r--WebKit/gtk/WebCoreSupport/DragClientGtk.h2
-rw-r--r--WebKit/gtk/WebCoreSupport/EditorClientGtk.h14
-rw-r--r--WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h28
-rw-r--r--WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp23
-rw-r--r--WebKit/gtk/WebCoreSupport/InspectorClientGtk.h14
-rw-r--r--WebKit/gtk/gdom/ConvertToGCharPrivate.h4
-rw-r--r--WebKit/gtk/po/ChangeLog8
-rw-r--r--WebKit/gtk/po/es.po277
-rw-r--r--WebKit/gtk/tests/testdomdocument.c14
-rw-r--r--WebKit/gtk/tests/testdomdomwindow.c69
-rw-r--r--WebKit/gtk/tests/testdomnode.c4
-rw-r--r--WebKit/gtk/webkit/webkitprivate.h6
-rw-r--r--WebKit/gtk/webkit/webkitsecurityorigin.cpp6
-rw-r--r--WebKit/gtk/webkit/webkitversion.h.in1
-rw-r--r--WebKit/gtk/webkit/webkitwebdatabase.cpp10
-rw-r--r--WebKit/gtk/webkit/webkitwebhistoryitem.cpp4
-rw-r--r--WebKit/gtk/webkit/webkitwebsettings.cpp2
-rw-r--r--WebKit/gtk/webkit/webkitwebview.cpp25
-rw-r--r--WebKit/haiku/ChangeLog19
-rw-r--r--WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h2
-rw-r--r--WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h2
-rw-r--r--WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h9
-rw-r--r--WebKit/mac/ChangeLog169
-rw-r--r--WebKit/mac/Configurations/FeatureDefines.xcconfig11
-rw-r--r--WebKit/mac/Configurations/Version.xcconfig2
-rw-r--r--WebKit/mac/Misc/WebQuotaManager.h65
-rw-r--r--WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h10
-rw-r--r--WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm2
-rw-r--r--WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h9
-rw-r--r--WebKit/mac/Plugins/WebBaseNetscapePluginView.h5
-rw-r--r--WebKit/mac/Plugins/WebBasePluginPackage.h12
-rw-r--r--WebKit/mac/Plugins/WebBasePluginPackage.mm4
-rw-r--r--WebKit/mac/Plugins/WebNetscapePluginStream.h2
-rw-r--r--WebKit/mac/Storage/WebDatabaseQuotaManager.h (renamed from WebKit/mac/WebCoreSupport/WebApplicationCacheSecurityOrigin.h)7
-rw-r--r--WebKit/mac/Storage/WebDatabaseQuotaManager.mm78
-rw-r--r--WebKit/mac/Storage/WebDatabaseTrackerClient.h2
-rw-r--r--WebKit/mac/WebCoreSupport/WebApplicationCache.h2
-rw-r--r--WebKit/mac/WebCoreSupport/WebApplicationCache.mm9
-rw-r--r--WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.h (renamed from WebKit/mac/Storage/WebDatabaseSecurityOrigin.h)7
-rw-r--r--WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.mm (renamed from WebKit/mac/WebCoreSupport/WebApplicationCacheSecurityOrigin.mm)26
-rw-r--r--WebKit/mac/WebCoreSupport/WebChromeClient.h28
-rw-r--r--WebKit/mac/WebCoreSupport/WebChromeClient.mm9
-rw-r--r--WebKit/mac/WebCoreSupport/WebContextMenuClient.h2
-rw-r--r--WebKit/mac/WebCoreSupport/WebDragClient.h2
-rw-r--r--WebKit/mac/WebCoreSupport/WebEditorClient.h14
-rw-r--r--WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h33
-rw-r--r--WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h7
-rw-r--r--WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm2
-rw-r--r--WebKit/mac/WebCoreSupport/WebInspectorClient.h14
-rw-r--r--WebKit/mac/WebCoreSupport/WebPasteboardHelper.h4
-rw-r--r--WebKit/mac/WebCoreSupport/WebPlatformStrategies.h200
-rw-r--r--WebKit/mac/WebCoreSupport/WebPluginHalterClient.h4
-rw-r--r--WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm100
-rw-r--r--WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h24
-rw-r--r--WebKit/mac/WebView/WebFrameInternal.h4
-rw-r--r--WebKit/mac/WebView/WebHTMLView.mm7
-rw-r--r--WebKit/mac/WebView/WebPreferences.mm2
-rw-r--r--WebKit/mac/WebView/WebViewData.h2
-rw-r--r--WebKit/mac/WebView/WebViewInternal.h3
-rw-r--r--WebKit/qt/Api/qgraphicswebview.cpp4
-rw-r--r--WebKit/qt/Api/qwebdatabase_p.h2
-rw-r--r--WebKit/qt/Api/qwebframe.cpp18
-rw-r--r--WebKit/qt/Api/qwebframe_p.h6
-rw-r--r--WebKit/qt/Api/qwebkitplatformplugin.h20
-rw-r--r--WebKit/qt/Api/qwebpage.cpp12
-rw-r--r--WebKit/qt/Api/qwebpage.h2
-rw-r--r--WebKit/qt/Api/qwebview.cpp2
-rw-r--r--WebKit/qt/ChangeLog223
-rw-r--r--WebKit/qt/WebCoreSupport/ChromeClientQt.cpp11
-rw-r--r--WebKit/qt/WebCoreSupport/ChromeClientQt.h8
-rw-r--r--WebKit/qt/WebCoreSupport/EditorClientQt.cpp27
-rw-r--r--WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp8
-rw-r--r--WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h6
-rw-r--r--WebKit/qt/WebCoreSupport/InspectorClientQt.h2
-rw-r--r--WebKit/qt/WebCoreSupport/PageClientQt.cpp18
-rw-r--r--WebKit/qt/WebCoreSupport/PageClientQt.h8
-rw-r--r--WebKit/qt/WebCoreSupport/PopupMenuQt.cpp158
-rw-r--r--WebKit/qt/WebCoreSupport/PopupMenuQt.h (renamed from WebCore/platform/qt/PopupMenuQt.h)20
-rw-r--r--WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp48
-rw-r--r--WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h26
-rw-r--r--WebKit/qt/WebCoreSupport/QtMaemoWebPopup.cpp33
-rw-r--r--WebKit/qt/WebCoreSupport/QtMaemoWebPopup.h20
-rw-r--r--WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp75
-rw-r--r--WebKit/qt/WebCoreSupport/QtPlatformPlugin.h22
-rw-r--r--WebKit/qt/WebCoreSupport/SearchPopupMenuQt.cpp (renamed from WebCore/platform/qt/SearchPopupMenuQt.cpp)4
-rw-r--r--WebKit/qt/WebCoreSupport/SearchPopupMenuQt.h (renamed from WebCore/platform/qt/SearchPopupMenuQt.h)5
-rw-r--r--WebKit/qt/docs/qtwebkit-bridge.qdoc238
-rw-r--r--WebKit/qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp18
-rw-r--r--WebKit/qt/examples/platformplugin/WebPlugin.h3
-rw-r--r--WebKit/qt/examples/platformplugin/qwebkitplatformplugin.h20
-rw-r--r--WebKit/qt/tests/qwebframe/tst_qwebframe.cpp32
-rw-r--r--WebKit/qt/tests/qwebview/resources/input_types.html5
-rw-r--r--WebKit/qt/tests/qwebview/tst_qwebview.cpp18
-rw-r--r--WebKit/win/AccessibleBase.h4
-rw-r--r--WebKit/win/AccessibleImage.h2
-rw-r--r--WebKit/win/COMPropertyBag.h2
-rw-r--r--WebKit/win/COMVariantSetter.h9
-rw-r--r--WebKit/win/ChangeLog181
-rw-r--r--WebKit/win/DOMCSSClasses.cpp12
-rw-r--r--WebKit/win/DOMCoreClasses.cpp14
-rw-r--r--WebKit/win/DOMHTMLClasses.cpp14
-rw-r--r--WebKit/win/MarshallingHelpers.h6
-rw-r--r--WebKit/win/WebCoreLocalizedStrings.cpp252
-rw-r--r--WebKit/win/WebCoreSupport/WebChromeClient.cpp2
-rw-r--r--WebKit/win/WebCoreSupport/WebChromeClient.h18
-rw-r--r--WebKit/win/WebCoreSupport/WebContextMenuClient.h5
-rw-r--r--WebKit/win/WebCoreSupport/WebDragClient.h2
-rw-r--r--WebKit/win/WebCoreSupport/WebEditorClient.h14
-rw-r--r--WebKit/win/WebCoreSupport/WebFrameLoaderClient.h16
-rw-r--r--WebKit/win/WebCoreSupport/WebInspectorClient.h14
-rw-r--r--WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp611
-rw-r--r--WebKit/win/WebCoreSupport/WebPlatformStrategies.h139
-rw-r--r--WebKit/win/WebCoreSupport/WebPluginHalterClient.h4
-rw-r--r--WebKit/win/WebDatabaseManager.cpp2
-rw-r--r--WebKit/win/WebDatabaseManager.h2
-rw-r--r--WebKit/win/WebDownload.h10
-rw-r--r--WebKit/win/WebFrame.h18
-rw-r--r--WebKit/win/WebHistory.h6
-rw-r--r--WebKit/win/WebHistoryItem.h2
-rw-r--r--WebKit/win/WebIconDatabase.h2
-rw-r--r--WebKit/win/WebKit.vcproj/WebKit.vcproj12
-rw-r--r--WebKit/win/WebKitDLL.h2
-rw-r--r--WebKit/win/WebKitSystemBits.cpp2
-rw-r--r--WebKit/win/WebNavigationData.h4
-rw-r--r--WebKit/win/WebPreferences.cpp10
-rw-r--r--WebKit/win/WebResource.cpp2
-rw-r--r--WebKit/win/WebResource.h8
-rw-r--r--WebKit/win/WebView.cpp12
-rw-r--r--WebKit/win/WebView.h20
-rw-r--r--WebKit/wx/ChangeLog38
-rw-r--r--WebKit/wx/WebEdit.cpp2
-rw-r--r--WebKit/wx/WebFrame.cpp3
-rw-r--r--WebKit/wx/WebFramePrivate.h4
-rw-r--r--WebKit/wx/WebKitSupport/DragClientWx.h2
-rw-r--r--WebKit/wx/WebKitSupport/EditorClientWx.cpp2
-rw-r--r--WebKit/wx/WebKitSupport/EditorClientWx.h2
-rw-r--r--WebKit/wx/WebKitSupport/FrameLoaderClientWx.h2
-rw-r--r--WebKit/wx/WebKitSupport/InspectorClientWx.h2
-rw-r--r--WebKit/wx/WebView.cpp4
-rw-r--r--WebKit/wx/bindings/python/webview.i2
-rw-r--r--WebKitLibraries/ChangeLog30
-rw-r--r--WebKitLibraries/WebKitSystemInterface.h14
-rw-r--r--WebKitLibraries/libWebKitSystemInterfaceLeopard.abin1637632 -> 1637568 bytes
-rw-r--r--WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.abin1347700 -> 1347668 bytes
-rw-r--r--WebKitLibraries/libWebKitSystemInterfaceTiger.abin605256 -> 605224 bytes
-rw-r--r--WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops11
-rw-r--r--WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops9
-rw-r--r--WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json3
-rw-r--r--WebKitTools/BuildSlaveSupport/test-result-archive42
-rw-r--r--WebKitTools/ChangeLog1009
-rw-r--r--WebKitTools/DumpRenderTree/LayoutTestController.cpp55
-rw-r--r--WebKitTools/DumpRenderTree/LayoutTestController.h9
-rw-r--r--WebKitTools/DumpRenderTree/chromium/CppVariant.h2
-rw-r--r--WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp18
-rw-r--r--WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h6
-rw-r--r--WebKitTools/DumpRenderTree/chromium/DRTDevToolsCallArgs.h11
-rw-r--r--WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp16
-rw-r--r--WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h4
-rw-r--r--WebKitTools/DumpRenderTree/chromium/DumpRenderTree.cpp9
-rw-r--r--WebKitTools/DumpRenderTree/chromium/EventSender.cpp4
-rw-r--r--WebKitTools/DumpRenderTree/chromium/ImageDiff.cpp4
-rw-r--r--WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp33
-rw-r--r--WebKitTools/DumpRenderTree/chromium/LayoutTestController.h18
-rw-r--r--WebKitTools/DumpRenderTree/chromium/MockSpellCheck.h2
-rw-r--r--WebKitTools/DumpRenderTree/chromium/NotificationPresenter.h4
-rw-r--r--WebKitTools/DumpRenderTree/chromium/TestNavigationController.cpp28
-rw-r--r--WebKitTools/DumpRenderTree/chromium/TestNavigationController.h39
-rw-r--r--WebKitTools/DumpRenderTree/chromium/TestShell.cpp28
-rw-r--r--WebKitTools/DumpRenderTree/chromium/TestShell.h1
-rw-r--r--WebKitTools/DumpRenderTree/chromium/TestShellGtk.cpp9
-rw-r--r--WebKitTools/DumpRenderTree/chromium/TestShellMac.mm10
-rw-r--r--WebKitTools/DumpRenderTree/chromium/TestShellWin.cpp5
-rw-r--r--WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp51
-rw-r--r--WebKitTools/DumpRenderTree/chromium/WebViewHost.h9
-rw-r--r--WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp46
-rw-r--r--WebKitTools/DumpRenderTree/mac/EventSendingController.mm4
-rw-r--r--WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm28
-rw-r--r--WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm3
-rw-r--r--WebKitTools/DumpRenderTree/mac/UIDelegate.h4
-rw-r--r--WebKitTools/DumpRenderTree/mac/UIDelegate.mm54
-rw-r--r--WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro2
-rw-r--r--WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp16
-rw-r--r--WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h5
-rw-r--r--WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp22
-rw-r--r--WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp22
-rw-r--r--WebKitTools/MiniBrowser/mac/WebBundle/WebBundleMain.m48
-rw-r--r--WebKitTools/QtTestBrowser/launcherwindow.cpp197
-rw-r--r--WebKitTools/QtTestBrowser/launcherwindow.h67
-rw-r--r--WebKitTools/QtTestBrowser/main.cpp22
-rw-r--r--WebKitTools/QtTestBrowser/webview.cpp49
-rw-r--r--WebKitTools/QtTestBrowser/webview.h6
-rw-r--r--WebKitTools/QueueStatusServer/handlers/queuestatus.py58
-rw-r--r--WebKitTools/QueueStatusServer/handlers/recentstatus.py76
-rw-r--r--WebKitTools/QueueStatusServer/main.py7
-rw-r--r--WebKitTools/QueueStatusServer/model/queues.py18
-rw-r--r--WebKitTools/QueueStatusServer/templates/queuestatus.html44
-rw-r--r--WebKitTools/QueueStatusServer/templates/recentstatus.html60
-rwxr-xr-xWebKitTools/Scripts/build-webkit13
-rwxr-xr-xWebKitTools/Scripts/check-webkit-style3
-rwxr-xr-xWebKitTools/Scripts/old-run-webkit-tests9
-rwxr-xr-xWebKitTools/Scripts/prepare-ChangeLog12
-rw-r--r--WebKitTools/Scripts/webkitpy/common/config/committers.py1
-rw-r--r--WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py6
-rw-r--r--WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py73
-rw-r--r--WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py93
-rw-r--r--WebKitTools/Scripts/webkitpy/layout_tests/port/websocket_server.py4
-rwxr-xr-xWebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py15
-rw-r--r--WebKitTools/Scripts/webkitpy/style/checkers/cpp.py3
-rw-r--r--WebKitTools/Scripts/webkitpy/style/checkers/cpp_unittest.py6
-rw-r--r--WebKitTools/Scripts/webkitpy/style/filereader.py14
-rw-r--r--WebKitTools/Scripts/webkitpy/style/filereader_unittest.py5
-rw-r--r--WebKitTools/Scripts/webkitpy/style/patchreader.py5
-rw-r--r--WebKitTools/Scripts/webkitpy/style/patchreader_unittest.py13
-rw-r--r--WebKitTools/Scripts/webkitpy/thirdparty/__init__.py2
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/bot/queueengine.py3
-rw-r--r--WebKitTools/Scripts/webkitpy/tool/commands/earlywarningsystem.py4
-rw-r--r--WebKitTools/TestResultServer/handlers/dashboardhandler.py5
-rw-r--r--WebKitTools/TestResultServer/handlers/menu.py5
-rw-r--r--WebKitTools/TestResultServer/handlers/testfilehandler.py126
-rw-r--r--WebKitTools/TestResultServer/main.py8
-rw-r--r--WebKitTools/TestResultServer/model/dashboardfile.py7
-rwxr-xr-xWebKitTools/TestResultServer/model/datastorefile.py129
-rwxr-xr-xWebKitTools/TestResultServer/model/jsonresults.py365
-rwxr-xr-xWebKitTools/TestResultServer/model/jsonresults_unittest.py256
-rw-r--r--WebKitTools/TestResultServer/model/testfile.py71
-rw-r--r--WebKitTools/TestResultServer/templates/uploadform.html3
-rw-r--r--WebKitTools/WebKitTestRunner/DerivedSources.make2
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm35
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl43
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/GCController.idl34
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/JSWrapper.h7
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl1
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp128
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/EventSendingController.h63
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/GCController.cpp74
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/GCController.h54
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp11
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.h12
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp228
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h62
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp38
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h4
-rw-r--r--WebKitTools/WebKitTestRunner/InjectedBundle/win/ActivateFonts.cpp74
-rw-r--r--WebKitTools/WebKitTestRunner/StringFunctions.h125
-rw-r--r--WebKitTools/WebKitTestRunner/TestInvocation.cpp44
-rw-r--r--WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj56
-rw-r--r--WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj32
-rw-r--r--WebKitTools/WebKitTestRunner/win/TestControllerWin.cpp62
-rw-r--r--WebKitTools/WebKitTestRunner/win/WebKitTestRunner.vcproj8
-rw-r--r--WebKitTools/wx/build/settings.py11
1757 files changed, 47342 insertions, 28009 deletions
diff --git a/JavaScriptCore/API/JSValueRef.cpp b/JavaScriptCore/API/JSValueRef.cpp
index a29a207..c22e8d8 100644
--- a/JavaScriptCore/API/JSValueRef.cpp
+++ b/JavaScriptCore/API/JSValueRef.cpp
@@ -213,6 +213,12 @@ JSValueRef JSValueMakeNumber(JSContextRef ctx, double value)
ExecState* exec = toJS(ctx);
APIEntryShim entryShim(exec);
+ // Our JSValue representation relies on a standard bit pattern for NaN. NaNs
+ // generated internally to JavaScriptCore naturally have that representation,
+ // but an external NaN might not.
+ if (isnan(value))
+ value = NaN;
+
return toRef(exec, jsNumber(exec, value));
}
diff --git a/JavaScriptCore/Android.mk b/JavaScriptCore/Android.mk
index a728a4a..09af86e 100644
--- a/JavaScriptCore/Android.mk
+++ b/JavaScriptCore/Android.mk
@@ -98,6 +98,7 @@ LOCAL_SRC_FILES := \
runtime/Executable.cpp \
runtime/FunctionConstructor.cpp \
runtime/FunctionPrototype.cpp \
+ runtime/GCHandle.cpp \
runtime/GetterSetter.cpp \
runtime/GlobalEvalFunction.cpp \
runtime/Identifier.cpp \
diff --git a/JavaScriptCore/CMakeLists.txt b/JavaScriptCore/CMakeLists.txt
index c33146d..a944363 100644
--- a/JavaScriptCore/CMakeLists.txt
+++ b/JavaScriptCore/CMakeLists.txt
@@ -103,6 +103,8 @@ SET(JavaScriptCore_SOURCES
runtime/Executable.cpp
runtime/FunctionConstructor.cpp
runtime/FunctionPrototype.cpp
+ runtime/GCActivityCallback.cpp
+ runtime/GCHandle.cpp
runtime/GetterSetter.cpp
runtime/GlobalEvalFunction.cpp
runtime/Identifier.cpp
diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index aafb0aa..c7c09b0 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,1289 @@
+2010-08-09 Oliver Hunt <oliver@apple.com>
+
+ Fix Qt/ARM again, this time including the other changed file.
+
+ * jit/JIT.h:
+
+2010-08-09 Oliver Hunt <oliver@apple.com>
+
+ Fix Qt/ARM
+
+ C++ overload resolution I stab at thee
+
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::beginUninterruptedSequence):
+ (JSC::JIT::endUninterruptedSequence):
+
+2010-08-09 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Allow an assembler/macroassembler to compact branches to more concise forms when linking
+ https://bugs.webkit.org/show_bug.cgi?id=43745
+
+ This patch makes it possible for an assembler to convert jumps into a different
+ (presumably more efficient) form at link time. Currently implemented in the
+ ARMv7 JIT as that already had logic to delay linking of jumps until the end of
+ compilation already. The ARMv7 JIT chooses between either a 4 byte short jump
+ or a full 32-bit offset (and rewrites ITTT instructions as appropriate), so does
+ not yet produce the most compact form possible. The general design of the linker
+ should make it relatively simple to introduce new branch types with little effort,
+ as the linker has no knowledge of the exact form of any of the branches.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * assembler/ARMv7Assembler.cpp: Added.
+ (JSC::):
+ Record jump sizes
+
+ * assembler/ARMv7Assembler.h:
+ (JSC::ARMv7Assembler::LinkRecord::LinkRecord):
+ (JSC::ARMv7Assembler::LinkRecord::from):
+ (JSC::ARMv7Assembler::LinkRecord::setFrom):
+ (JSC::ARMv7Assembler::LinkRecord::to):
+ (JSC::ARMv7Assembler::LinkRecord::type):
+ (JSC::ARMv7Assembler::LinkRecord::linkType):
+ (JSC::ARMv7Assembler::LinkRecord::setLinkType):
+ Encapsulate LinkRecord fields so we can compress the values somewhat
+
+ (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
+ Need to record the jump type now
+
+ (JSC::ARMv7Assembler::b):
+ (JSC::ARMv7Assembler::blx):
+ (JSC::ARMv7Assembler::bx):
+ Need to pass the jump types
+
+ (JSC::ARMv7Assembler::executableOffsetFor):
+ (JSC::ARMv7Assembler::jumpSizeDelta):
+ (JSC::ARMv7Assembler::linkRecordSourceComparator):
+ (JSC::ARMv7Assembler::computeJumpType):
+ (JSC::ARMv7Assembler::convertJumpTo):
+ (JSC::ARMv7Assembler::recordLinkOffsets):
+ (JSC::ARMv7Assembler::jumpsToLink):
+ (JSC::ARMv7Assembler::link):
+ (JSC::ARMv7Assembler::unlinkedCode):
+ Helper functions for the linker
+
+ (JSC::ARMv7Assembler::linkJump):
+ (JSC::ARMv7Assembler::canBeShortJump):
+ (JSC::ARMv7Assembler::linkLongJump):
+ (JSC::ARMv7Assembler::linkShortJump):
+ (JSC::ARMv7Assembler::linkJumpAbsolute):
+ Moving code around for the various jump linking functions
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::beginUninterruptedSequence):
+ (JSC::AbstractMacroAssembler::endUninterruptedSequence):
+ We have to track uninterrupted sequences in any assembler that compacts
+ branches as that's not something we're allowed to do in such sequences.
+ AbstractMacroAssembler has a nop version of these functions as it makes the
+ code elsewhere nicer.
+
+ * assembler/LinkBuffer.h:
+ (JSC::LinkBuffer::LinkBuffer):
+ (JSC::LinkBuffer::link):
+ (JSC::LinkBuffer::patch):
+ (JSC::LinkBuffer::locationOf):
+ (JSC::LinkBuffer::locationOfNearCall):
+ (JSC::LinkBuffer::returnAddressOffset):
+ (JSC::LinkBuffer::trampolineAt):
+ Updated these functions to adjust for any changed offsets in the linked code
+
+ (JSC::LinkBuffer::applyOffset):
+ A helper function to deal with the now potentially moved labels
+
+ (JSC::LinkBuffer::linkCode):
+ The new and mighty linker function
+
+ * assembler/MacroAssemblerARMv7.h:
+ (JSC::MacroAssemblerARMv7::MacroAssemblerARMv7):
+ (JSC::MacroAssemblerARMv7::beginUninterruptedSequence):
+ (JSC::MacroAssemblerARMv7::endUninterruptedSequence):
+ (JSC::MacroAssemblerARMv7::jumpsToLink):
+ (JSC::MacroAssemblerARMv7::unlinkedCode):
+ (JSC::MacroAssemblerARMv7::computeJumpType):
+ (JSC::MacroAssemblerARMv7::convertJumpTo):
+ (JSC::MacroAssemblerARMv7::recordLinkOffsets):
+ (JSC::MacroAssemblerARMv7::jumpSizeDelta):
+ (JSC::MacroAssemblerARMv7::link):
+ (JSC::MacroAssemblerARMv7::jump):
+ (JSC::MacroAssemblerARMv7::branchMul32):
+ (JSC::MacroAssemblerARMv7::breakpoint):
+ (JSC::MacroAssemblerARMv7::nearCall):
+ (JSC::MacroAssemblerARMv7::call):
+ (JSC::MacroAssemblerARMv7::ret):
+ (JSC::MacroAssemblerARMv7::tailRecursiveCall):
+ (JSC::MacroAssemblerARMv7::executableOffsetFor):
+ (JSC::MacroAssemblerARMv7::inUninterruptedSequence):
+ (JSC::MacroAssemblerARMv7::makeJump):
+ (JSC::MacroAssemblerARMv7::makeBranch):
+ All branches need to pass on their type now
+
+ * jit/ExecutableAllocator.h:
+ (JSC::ExecutablePool::returnLastBytes):
+ We can't know ahead of time how much space will be necessary to
+ hold the linked code if we're compacting branches, this new
+ function allows us to return the unused bytes at the end of linking
+
+ * jit/JIT.cpp:
+ (JSC::JIT::JIT):
+ (JSC::JIT::privateCompile):
+ * jit/JIT.h:
+ (JSC::JIT::compile):
+ The JIT class now needs to take a linker offset so that recompilation
+ can generate the same jumps when using branch compaction.
+ * jit/JITArithmetic32_64.cpp:
+ (JSC::JIT::emitSlow_op_mod):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ (JSC::JIT::privateCompileCTINativeCall):
+ Update for new trampolineAt changes
+
+ * wtf/FastMalloc.cpp:
+ (WTF::TCMallocStats::):
+ * wtf/Platform.h:
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Qt build fix III.
+
+ * wtf/text/WTFString.h:
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Qt build fix.
+
+ * wtf/qt/StringQt.cpp:
+
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/Forward.h:
+
+2010-08-07 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64938.
+ http://trac.webkit.org/changeset/64938
+ https://bugs.webkit.org/show_bug.cgi?id=43685
+
+ Did not compile on several ports (Requested by abarth on
+ #webkit).
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.pro:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * assembler/AbstractMacroAssembler.h:
+ * assembler/MacroAssembler.h:
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::load32):
+ (JSC::MacroAssemblerX86::store32):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::movl_rm):
+ (JSC::X86Assembler::movl_mr):
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::markAggregate):
+ * bytecode/Instruction.h:
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::):
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
+ (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
+ * bytecode/StructureStubInfo.cpp:
+ (JSC::StructureStubInfo::deref):
+ * bytecode/StructureStubInfo.h:
+ (JSC::StructureStubInfo::initGetByIdProto):
+ (JSC::StructureStubInfo::initGetByIdChain):
+ (JSC::StructureStubInfo::):
+ * jit/JIT.h:
+ * jit/JITMarkObjects.cpp: Removed.
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetDirectOffset):
+ (JSC::JIT::testPrototype):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::compileGetDirectOffset):
+ (JSC::JIT::testPrototype):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITStubs.cpp:
+ (JSC::setupPolymorphicProtoList):
+ * wtf/Platform.h:
+
+2010-08-07 Nathan Lawrence <nlawrence@apple.com>
+
+ Reviewed by Geoffrey Garen.
+
+ The JIT code contains a number of direct references to GC'd objects.
+ When we have movable objects, these references will need to be
+ updated.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.pro:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::int32AtLocation):
+ (JSC::AbstractMacroAssembler::pointerAtLocation):
+ (JSC::AbstractMacroAssembler::jumpTarget):
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::loadPtrWithPatch):
+ Normally, loadPtr will optimize when the register is eax. Since
+ the slightly smaller instruction changes the offsets, it messes up
+ our ability to repatch the code. We added this new instruction
+ that garuntees a constant size.
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::load32WithPatch):
+ Changed load32 in the same way described above.
+ (JSC::MacroAssemblerX86::load32):
+ Moved the logic to optimize laod32 from movl_mr to load32
+ (JSC::MacroAssemblerX86::store32):
+ Moved the logic to optimize store32 from movl_rm to store32
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::movl_rm):
+ (JSC::X86Assembler::movl_mr):
+ (JSC::X86Assembler::int32AtLocation):
+ (JSC::X86Assembler::pointerAtLocation):
+ (JSC::X86Assembler::jumpTarget):
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::markAggregate):
+ * bytecode/Instruction.h:
+ As described in StructureStubInfo.h, we needed to add additional
+ fields to both StructureStubInfo and
+ PolymorphicAccessStructureList so that we can determine the
+ structure of the JITed code at patch time.
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
+ (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
+ * bytecode/StructureStubInfo.cpp:
+ (JSC::StructureStubInfo::markAggregate):
+ Added this function to mark the JITed code that correosponds to
+ this structure stub info.
+ * bytecode/StructureStubInfo.h:
+ (JSC::StructureStubInfo::initGetByIdProto):
+ (JSC::StructureStubInfo::initGetByIdChain):
+ (JSC::StructureStubInfo::):
+ * jit/JIT.h:
+ * jit/JITMarkObjects.cpp: Added.
+ (JSC::JIT::patchPrototypeStructureAddress):
+ (JSC::JIT::patchGetDirectOffset):
+ (JSC::JIT::markGetByIdProto):
+ (JSC::JIT::markGetByIdChain):
+ (JSC::JIT::markGetByIdProtoList):
+ (JSC::JIT::markPutByIdTransition):
+ (JSC::JIT::markGlobalObjectReference):
+ * jit/JITPropertyAccess.cpp:
+ Added asserts for the patch offsets.
+ (JSC::JIT::compileGetDirectOffset):
+ (JSC::JIT::testPrototype):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::compileGetDirectOffset):
+ (JSC::JIT::testPrototype):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITStubs.cpp:
+ (JSC::setupPolymorphicProtoList):
+ * wtf/Platform.h:
+ Added ENABLE_MOVABLE_GC_OBJECTS flag
+
+2010-08-07 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Geoffrey Garen.
+
+ Revert JSArray to point to the beginning of the contained ArrayStorage
+ struct. This is described in
+ https://bugs.webkit.org/show_bug.cgi?id=43526.
+
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::emit_op_get_by_val):
+ (JSC::JIT::emit_op_put_by_val):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::emit_op_get_by_val):
+ (JSC::JIT::emit_op_put_by_val):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::JSArray):
+ (JSC::JSArray::~JSArray):
+ (JSC::JSArray::getOwnPropertySlot):
+ (JSC::JSArray::getOwnPropertyDescriptor):
+ (JSC::JSArray::put):
+ (JSC::JSArray::putSlowCase):
+ (JSC::JSArray::deleteProperty):
+ (JSC::JSArray::getOwnPropertyNames):
+ (JSC::JSArray::getNewVectorLength):
+ (JSC::JSArray::increaseVectorLength):
+ (JSC::JSArray::increaseVectorPrefixLength):
+ (JSC::JSArray::setLength):
+ (JSC::JSArray::pop):
+ (JSC::JSArray::push):
+ (JSC::JSArray::shiftCount):
+ (JSC::JSArray::unshiftCount):
+ (JSC::JSArray::sortNumeric):
+ (JSC::JSArray::sort):
+ (JSC::JSArray::fillArgList):
+ (JSC::JSArray::copyToRegisters):
+ (JSC::JSArray::compactForSorting):
+ (JSC::JSArray::subclassData):
+ (JSC::JSArray::setSubclassData):
+ (JSC::JSArray::checkConsistency):
+ * runtime/JSArray.h:
+ (JSC::JSArray::length):
+ (JSC::JSArray::canGetIndex):
+ (JSC::JSArray::getIndex):
+ (JSC::JSArray::setIndex):
+ (JSC::JSArray::uncheckedSetIndex):
+ (JSC::JSArray::markChildrenDirect):
+
+2010-08-07 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Eric Seidel.
+
+ Add ENABLE(YARR) guard around JSGlobalData::m_regexAllocator
+ https://bugs.webkit.org/show_bug.cgi?id=43399
+
+ m_regexAllocator is used only by RegExp::compile which is guarded with ENABLE(YARR).
+
+ * runtime/JSGlobalData.h:
+
+2010-08-07 Patrick Roland Gansterer <paroga@paroga.com>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Enable JIT on WinCE
+ https://bugs.webkit.org/show_bug.cgi?id=43303
+
+ Add ExtraCompiler for generating GeneratedJITStubs_MSVC.asm.
+
+ * DerivedSources.pro:
+
+2010-08-07 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Created a separate SimpleFontData constructor exclusively for SVG fonts and moved the CTFontRef
+ from SimpleFontData to FontPlatformData.
+ https://bugs.webkit.org/show_bug.cgi?id=43674
+
+ * wtf/Platform.h: Moved definitions of WTF_USE_CORE_TEXT and WTF_USE_ATSUI here from WebCore/config.h.
+
+2010-08-07 Zoltan Herczeg <zherczeg@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Bitmap.h has no default constructor
+ https://bugs.webkit.org/show_bug.cgi?id=43619
+
+ Without a constructor, the initial bits of the Bitmap class
+ are undefinied. If only a few, or zero bits are 0, the memory
+ area provided by AlignedMemoryAllocator can be easly exhausted.
+
+ Csaba Osztrogonác helped to find this bug.
+
+ * wtf/Bitmap.h:
+ (WTF::::Bitmap):
+
+2010-08-06 Rafael Antognolli <antognolli@profusion.mobi>
+
+ [EFL] Build fix.
+
+ * CMakeLists.txt: add runtime/CGHandle.cpp.
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/Forward.h:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Windows Build Fix (continued). Unreviewed.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Windows Build Fix. Unreviewed.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ Add GCHandle.h and GCHandle.cpp.
+
+2010-08-06 Nathan Lawrence <nlawrence@apple.com>
+
+ Reviewed by Geoffrey Garen.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43207
+
+ WeakGCPtr's should instead of directly pointing to the GC'd object
+ should be directed to an array of pointers that can be updated for
+ movable objects.
+
+ * Android.mk:
+ * GNUmakefile.am:
+ * JavaScriptCore.exp:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.pro:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/Collector.cpp:
+ (JSC::Heap::destroy):
+ (JSC::Heap::allocateBlock):
+ (JSC::Heap::freeBlock):
+ (JSC::Heap::updateWeakGCHandles):
+ (JSC::WeakGCHandlePool::update):
+ (JSC::Heap::addWeakGCHandle):
+ (JSC::Heap::markRoots):
+ * runtime/Collector.h:
+ (JSC::Heap::weakGCHandlePool):
+ * runtime/GCHandle.cpp: Added.
+ (JSC::WeakGCHandle::pool):
+ (JSC::WeakGCHandlePool::WeakGCHandlePool):
+ (JSC::WeakGCHandlePool::allocate):
+ (JSC::WeakGCHandlePool::free):
+ (JSC::WeakGCHandlePool::operator new):
+ * runtime/GCHandle.h: Added.
+ (JSC::WeakGCHandle::isValidPtr):
+ (JSC::WeakGCHandle::isPtr):
+ (JSC::WeakGCHandle::isNext):
+ (JSC::WeakGCHandle::invalidate):
+ (JSC::WeakGCHandle::get):
+ (JSC::WeakGCHandle::set):
+ (JSC::WeakGCHandle::getNextInFreeList):
+ (JSC::WeakGCHandle::setNextInFreeList):
+ (JSC::WeakGCHandlePool::isFull):
+ * runtime/WeakGCPtr.h:
+ (JSC::WeakGCPtr::WeakGCPtr):
+ (JSC::WeakGCPtr::~WeakGCPtr):
+ (JSC::WeakGCPtr::get):
+ (JSC::WeakGCPtr::clear):
+ (JSC::WeakGCPtr::assign):
+ (JSC::get):
+
+2010-08-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Reviewed by Antonio Gomes.
+
+ [Qt] Fix warnings about difference in symbol visiblity on Mac OS X
+
+ * jsc.pro:
+
+2010-08-06 Zoltan Herczeg <zherczeg@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Refactor identifier parsing in lexer
+ https://bugs.webkit.org/show_bug.cgi?id=41845
+
+ The code is refactored to avoid gotos. The new code
+ has the same performance as the old one.
+
+ SunSpider --parse-only: no change (from 34.0ms to 33.6ms)
+ SunSpider: no change (from 523.2ms to 523.5ms)
+
+ * parser/Lexer.cpp:
+ (JSC::Lexer::parseIdent):
+ (JSC::Lexer::lex):
+ * parser/Lexer.h:
+
+2010-08-06 Gabor Loki <loki@webkit.org>
+
+ Reviewed by Gavin Barraclough.
+
+ The ARM JIT does not support JSValue32_64 with RVCT
+ https://bugs.webkit.org/show_bug.cgi?id=43411
+
+ JSValue32_64 is enabled for RVCT by default.
+
+ * create_jit_stubs:
+ * jit/JITStubs.cpp:
+ (JSC::ctiTrampoline):
+ (JSC::ctiVMThrowTrampoline):
+ (JSC::ctiOpThrowNotCaught):
+ * wtf/Platform.h:
+
+2010-08-05 Chao-ying Fu <fu@mips.com>
+
+ Reviewed by Darin Adler.
+
+ Define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER for MIPS
+ https://bugs.webkit.org/show_bug.cgi?id=43514
+
+ MIPS needs to define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER, so that
+ RenderArena::allocate() can return 8-byte aligned memory to avoid
+ exceptions on sdc1/ldc1.
+
+ * wtf/Platform.h:
+
+2010-08-05 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/Forward.h:
+
+2010-08-05 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Fixed leak seen on buildbot.
+
+ * runtime/GCActivityCallbackCF.cpp:
+ (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
+ (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
+ (JSC::DefaultGCActivityCallback::operator()): Make out timer a RetainPtr,
+ since anything less would be uncivilized.
+
+2010-08-05 Andy Estes <aestes@apple.com>
+
+ Reviewed by David Kilzer.
+
+ Rename iOS-related OS and PLATFORM macros.
+ https://bugs.webkit.org/show_bug.cgi?id=43493
+
+ Rename WTF_OS_IPHONE_OS to WTF_OS_IOS, WTF_PLATFORM_IPHONE to
+ WTF_PLATFORM_IOS, and WTF_PLATFORM_IPHONE_SIMULATOR to
+ WTF_PLATFORM_IOS_SIMULATOR.
+
+ * jit/ExecutableAllocator.h:
+ * jit/JITStubs.cpp:
+ * profiler/ProfilerServer.mm:
+ (-[ProfilerServer init]):
+ * wtf/FastMalloc.cpp:
+ (WTF::TCMallocStats::):
+ * wtf/Platform.h:
+ * wtf/unicode/icu/CollatorICU.cpp:
+ (WTF::Collator::userDefault):
+
+2010-08-05 Nathan Lawrence <nlawrence@apple.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43464
+
+ Currently, the global object is being embedded in the JavaScriptCore
+ bytecode, however since the global object is the same for all opcodes
+ in a code block, we can have the global object just be a member of the
+ associated code block.
+
+ Additionally, I added an assert inside of emitOpcode that verifies
+ that the last generated opcode was of the correct length.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::CodeBlock):
+ (JSC::CodeBlock::derefStructures):
+ (JSC::CodeBlock::markAggregate):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::globalObject):
+ (JSC::GlobalCodeBlock::GlobalCodeBlock):
+ (JSC::ProgramCodeBlock::ProgramCodeBlock):
+ (JSC::EvalCodeBlock::EvalCodeBlock):
+ (JSC::FunctionCodeBlock::FunctionCodeBlock):
+ * bytecode/Opcode.h:
+ (JSC::opcodeLength):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+ (JSC::BytecodeGenerator::emitOpcode):
+ Added an assert to check that the last generated opcode is the
+ correct length.
+ (JSC::BytecodeGenerator::rewindBinaryOp):
+ Changed the last opcode to op_end since the length will no longer
+ be correct.
+ (JSC::BytecodeGenerator::rewindUnaryOp):
+ Changed the last opcode to op_end since the length will no longer
+ be correct.
+ (JSC::BytecodeGenerator::emitResolve):
+ (JSC::BytecodeGenerator::emitGetScopedVar):
+ (JSC::BytecodeGenerator::emitPutScopedVar):
+ (JSC::BytecodeGenerator::emitResolveWithBase):
+ * bytecompiler/BytecodeGenerator.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::resolveGlobal):
+ (JSC::Interpreter::resolveGlobalDynamic):
+ (JSC::Interpreter::privateExecute):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_get_global_var):
+ (JSC::JIT::emit_op_put_global_var):
+ (JSC::JIT::emit_op_resolve_global):
+ (JSC::JIT::emitSlow_op_resolve_global):
+ (JSC::JIT::emit_op_resolve_global_dynamic):
+ (JSC::JIT::emitSlow_op_resolve_global_dynamic):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_get_global_var):
+ (JSC::JIT::emit_op_put_global_var):
+ (JSC::JIT::emit_op_resolve_global):
+ (JSC::JIT::emitSlow_op_resolve_global):
+ * jit/JITStubs.cpp:
+ (JSC::cti_op_resolve_global):
+ * runtime/Executable.cpp:
+ (JSC::FunctionExecutable::compileForCallInternal):
+ (JSC::FunctionExecutable::compileForConstructInternal):
+ (JSC::FunctionExecutable::reparseExceptionInfo):
+
+2010-08-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 43185 - Switch RegisterFile over to use PageAllocation
+
+ Remove platform-specific memory allocation code.
+
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::~RegisterFile):
+ (JSC::RegisterFile::releaseExcessCapacity):
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::RegisterFile):
+ (JSC::RegisterFile::grow):
+ (JSC::RegisterFile::checkAllocatedOkay):
+ * wtf/PageAllocation.cpp:
+ (WTF::PageAllocation::lastError):
+ * wtf/PageAllocation.h:
+ (WTF::PageAllocation::allocate):
+ (WTF::PageAllocation::allocateAt):
+ (WTF::PageAllocation::allocateAligned):
+ (WTF::PageAllocation::pageSize):
+ (WTF::PageAllocation::isPageAligned):
+ (WTF::PageAllocation::isPowerOfTwo):
+ * wtf/PageReservation.h:
+ (WTF::PageReservation::commit):
+ (WTF::PageReservation::decommit):
+ (WTF::PageReservation::reserve):
+ (WTF::PageReservation::reserveAt):
+
+2010-08-05 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Fixed https://bugs.webkit.org/show_bug.cgi?id=43401 where array
+ content aren't properly initialized as part of unshift.
+
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::unshiftCount):
+
+2010-08-05 Jian Li <jianli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Unify blob related feature defines to ENABLE(BLOB).
+ https://bugs.webkit.org/show_bug.cgi?id=43081
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-08-05 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Rubber-stamped by Xan Lopez.
+
+ Remove GHashTable left-overs. GHashTable is ref-counted, and is
+ correctly supported by GRefPtr.
+
+ * wtf/gobject/GOwnPtr.h:
+
+2010-08-05 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Unreviewed.
+
+ Typo fix that makes distcheck happy.
+
+ * GNUmakefile.am:
+
+2010-08-03 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt and Beth Dakin.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43461
+ Invalid NaN parsing
+
+ * wtf/dtoa.cpp: Turn off the dtoa feature that allows you to specify a
+ non-standard NaN representation, since our NaN encoding assumes that all
+ true NaNs have the standard bit pattern.
+
+ * API/JSValueRef.cpp:
+ (JSValueMakeNumber): Don't allow an API client to accidentally specify
+ a non-standard NaN either.
+
+2010-08-04 Gavin Barraclough <barraclough@apple.com>
+
+ Windows build fix part II.
+
+ * wtf/PageReservation.h:
+ (WTF::PageReservation::systemReserve):
+
+2010-08-04 Gavin Barraclough <barraclough@apple.com>
+
+ Windows build fix.
+
+ * wtf/PageReservation.h:
+ (WTF::PageReservation::systemReserve):
+
+2010-08-04 Gavin Barraclough <barraclough@apple.com>
+
+ Build fix - add new header to !Mac projects.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+
+2010-08-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 43515 - Fix small design issues with PageAllocation, split out PageReservation.
+
+ The PageAllocation class has a number of issues:
+ * Changes in bug #43269 accidentally switched SYMBIAN over to use malloc/free to allocate
+ blocks of memory for the GC heap, instead of allocating RChunks. Revert this change in
+ behaviour.
+ * In order for PageAllocation to work correctly on WinCE we should be decommitting memory
+ before deallocating. In order to simplify understanding the expected state at deallocate,
+ split behaviour out into PageAllocation and PageReservation classes. Require that all
+ memory be decommitted before calling deallocate on a PageReservation, add asserts to
+ enforce this.
+ * add many missing asserts.
+ * inline more functions.
+ * remove ability to create sub-PageAllocations from an existing PageAllocations object -
+ this presented an interface that would allow sub regions to be deallocated, which would
+ not have provided expected behaviour.
+ * remove writable/executable arguments to commit, this value can be cached at the point
+ the memory is reserved.
+ * remove writable/executable arguments to allocateAligned, protection other than RW is not
+ supported.
+ * add missing checks for overflow & failed allocation to mmap path through allocateAligned.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * jit/ExecutableAllocator.cpp:
+ (JSC::ExecutableAllocator::intializePageSize):
+ * jit/ExecutableAllocator.h:
+ (JSC::ExecutablePool::Allocation::Allocation):
+ (JSC::ExecutablePool::Allocation::base):
+ (JSC::ExecutablePool::Allocation::size):
+ (JSC::ExecutablePool::Allocation::operator!):
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::reuse):
+ (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ (JSC::FixedVMPoolAllocator::alloc):
+ (JSC::FixedVMPoolAllocator::free):
+ (JSC::FixedVMPoolAllocator::allocInternal):
+ * runtime/AlignedMemoryAllocator.h:
+ (JSC::::allocate):
+ (JSC::::AlignedMemoryAllocator):
+ * runtime/Collector.cpp:
+ (JSC::Heap::allocateBlock):
+ * runtime/Collector.h:
+ * wtf/PageAllocation.cpp:
+ * wtf/PageAllocation.h:
+ (WTF::PageAllocation::operator!):
+ (WTF::PageAllocation::allocate):
+ (WTF::PageAllocation::allocateAt):
+ (WTF::PageAllocation::allocateAligned):
+ (WTF::PageAllocation::deallocate):
+ (WTF::PageAllocation::pageSize):
+ (WTF::PageAllocation::systemAllocate):
+ (WTF::PageAllocation::systemAllocateAt):
+ (WTF::PageAllocation::systemAllocateAligned):
+ (WTF::PageAllocation::systemDeallocate):
+ (WTF::PageAllocation::systemPageSize):
+ * wtf/PageReservation.h: Copied from JavaScriptCore/wtf/PageAllocation.h.
+ (WTF::PageReservation::PageReservation):
+ (WTF::PageReservation::commit):
+ (WTF::PageReservation::decommit):
+ (WTF::PageReservation::reserve):
+ (WTF::PageReservation::reserveAt):
+ (WTF::PageReservation::deallocate):
+ (WTF::PageReservation::systemCommit):
+ (WTF::PageReservation::systemDecommit):
+ (WTF::PageReservation::systemReserve):
+ (WTF::PageReservation::systemReserveAt):
+ * wtf/Platform.h:
+
+2010-08-04 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64655.
+ http://trac.webkit.org/changeset/64655
+ https://bugs.webkit.org/show_bug.cgi?id=43496
+
+ JavaScriptCore references patch seems to have caused
+ regressions in QT and GTK builds (Requested by nlawrence on
+ #webkit).
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::markAggregate):
+ * runtime/Collector.cpp:
+ (JSC::Heap::markConservatively):
+ * runtime/JSCell.h:
+ (JSC::JSValue::asCell):
+ (JSC::MarkStack::append):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::markIfNeeded):
+ * runtime/JSONObject.cpp:
+ (JSC::Stringifier::Holder::object):
+ * runtime/JSObject.h:
+ (JSC::JSObject::prototype):
+ * runtime/JSStaticScopeObject.cpp:
+ (JSC::JSStaticScopeObject::markChildren):
+ * runtime/JSValue.h:
+ (JSC::JSValue::):
+ (JSC::JSValue::JSValue):
+ (JSC::JSValue::asCell):
+ * runtime/MarkStack.h:
+ * runtime/NativeErrorConstructor.cpp:
+ * runtime/NativeErrorConstructor.h:
+ * runtime/Structure.h:
+ (JSC::Structure::storedPrototype):
+
+2010-08-04 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig.
+
+ Enable JSVALUE64 for CPU(PPC64).
+ Basic browsing seems to work.
+
+ * wtf/Platform.h:
+
+2010-08-04 Nathan Lawrence <nlawrence@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Refactoring MarkStack::append to take a reference. This is in
+ preparation for movable objects when we will need to update pointers.
+ http://bugs.webkit.org/show_bug.cgi?id=41177
+
+ Unless otherwise noted, all changes are to either return by reference
+ or pass a reference to MarkStack::append.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::markAggregate):
+ * runtime/Collector.cpp:
+ (JSC::Heap::markConservatively):
+ Added a temporary variable to prevent marking from changing an
+ unknown value on the stack
+ * runtime/JSCell.h:
+ (JSC::JSValue::asCell):
+ (JSC::MarkStack::append):
+ (JSC::MarkStack::appendInternal):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::markIfNeeded):
+ * runtime/JSONObject.cpp:
+ (JSC::Stringifier::Holder::object):
+ * runtime/JSObject.h:
+ (JSC::JSObject::prototype):
+ * runtime/JSStaticScopeObject.cpp:
+ (JSC::JSStaticScopeObject::markChildren):
+ * runtime/JSValue.h:
+ (JSC::JSValue::JSValue):
+ (JSC::JSValue::asCell):
+ * runtime/MarkStack.h:
+ * runtime/NativeErrorConstructor.cpp:
+ (JSC::NativeErrorConstructor::createStructure):
+ Changed the structure flags to include a custom markChildren.
+ (JSC::NativeErrorConstructor::markChildren):
+ Update the prototype of the stored structure.
+ * runtime/NativeErrorConstructor.h:
+ Added structure flags.
+ * runtime/Structure.h:
+ (JSC::Structure::storedPrototype):
+
+2010-08-03 Nathan Lawrence <nlawrence@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Tightened up some get_by_id_chain* code generation
+ https://bugs.webkit.org/show_bug.cgi?id=40935
+
+ This is in the style of
+ https://bugs.webkit.org/show_bug.cgi?id=30539, and changed code to
+ call accessor functions when it was not necessary to directly access
+ the private variables.
+
+ * jit/JIT.h:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetDirectOffset):
+ (JSC::JIT::testPrototype):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::testPrototype):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+
+2010-08-03 Adam Roben <aroben@apple.com>
+
+ Turn on PLATFORM_STRATEGIES on Windows
+
+ Fixes <http://webkit.org/b/43431>.
+
+ Reviewed by Anders Carlsson.
+
+ * wtf/Platform.h:
+
+2010-08-04 Gabor Loki <loki@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ Enable JSValue32_64 for GCC on ARM by default
+ https://bugs.webkit.org/show_bug.cgi?id=43410
+
+ * wtf/Platform.h:
+
+2010-08-03 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative windows build fix.
+
+ * wtf/Bitmap.h:
+
+2010-08-03 Gavin Barraclough <barraclough@apple.com>
+
+ Build fix following r64624.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/PageAllocation.h:
+
+2010-08-03 Nathan Lawrence <nlawrence@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43269
+
+ Added new allocateAligned methods to PageAllocation. In order to
+ prevent a regress in performance, the function needs to be inlined.
+
+ Additionally, I ported the symbian block allocator to use
+ PageAllocation and added a new WTF::Bitmap class to support this.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/AlignedMemoryAllocator.h: Added.
+ (JSC::AlignedMemory::deallocate):
+ (JSC::AlignedMemory::base):
+ (JSC::AlignedMemory::AlignedMemory):
+ (JSC::AlignedMemoryAllocator::destroy):
+ (JSC::AlignedMemoryAllocator::allocate):
+ (JSC::AlignedMemoryAllocator::AlignedMemoryAllocator):
+ (JSC::AlignedMemoryAllocator::~AlignedMemoryAllocator):
+ (JSC::AlignedMemoryAllocator::free):
+ * runtime/Collector.cpp:
+ (JSC::Heap::Heap):
+ (JSC::Heap::destroy):
+ (JSC::Heap::allocateBlock):
+ (JSC::Heap::freeBlock):
+ (JSC::Heap::freeBlocks):
+ (JSC::Heap::allocate):
+ (JSC::Heap::shrinkBlocks):
+ (JSC::Heap::markConservatively):
+ (JSC::Heap::clearMarkBits):
+ (JSC::Heap::markedCells):
+ * runtime/Collector.h:
+ (JSC::CollectorHeap::collectorBlock):
+ * runtime/CollectorHeapIterator.h:
+ (JSC::CollectorHeapIterator::operator*):
+ (JSC::LiveObjectIterator::operator++):
+ (JSC::DeadObjectIterator::operator++):
+ * wtf/Bitmap.h: Added.
+ (WTF::Bitmap::get):
+ (WTF::Bitmap::set):
+ (WTF::Bitmap::clear):
+ (WTF::Bitmap::clearAll):
+ (WTF::Bitmap::advanceToNextFreeBit):
+ (WTF::Bitmap::count):
+ (WTF::Bitmap::isEmpty):
+ (WTF::Bitmap::isFull):
+ * wtf/PageAllocation.h:
+ (WTF::PageAllocation::operator UnspecifiedBoolType):
+ (WTF::PageAllocation::allocateAligned):
+ (WTF::PageAllocation::reserveAligned):
+ * wtf/Platform.h:
+ * wtf/symbian: Removed.
+ * wtf/symbian/BlockAllocatorSymbian.cpp: Removed.
+ * wtf/symbian/BlockAllocatorSymbian.h: Removed.
+
+2010-08-03 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=43314. The prior code
+ was using the wrong "length" value to move array contents when adding
+ space to the beginning of an array for an unshift() or similar
+ operation. Instead of using m_vectorLength, the length of the
+ allocated JSValue array, the code was using m_length, the declared
+ length of the array. These two values do not need to match.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::increaseVectorPrefixLength):
+
+2010-08-03 Chao-ying Fu <fu@mips.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Fix following https://bugs.webkit.org/show_bug.cgi?id=43089
+ (accidentally inverted a compiler version check).
+
+ * jit/ExecutableAllocator.h:
+ (JSC::ExecutableAllocator::cacheFlush):
+
+2010-08-03 Patrick Gansterer <paroga@paroga.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Implement DEFINE_STUB_FUNCTION for WinCE.
+ https://bugs.webkit.org/show_bug.cgi?id=34953
+
+ * jit/JITStubs.cpp:
+ (JSC::):
+ (JSC::DEFINE_STUB_FUNCTION):
+
+2010-08-02 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 43390 - Do not CRASH if we run out of room for jit code.
+
+ Change the ExecutableAllocator implementations not to crash, and to return 0 if memory cannot be allocated.
+ The assemblers should pass this through without trying to use it in executableCopy.
+ Change the LinkBuffer to handle this, and to provide an allocationSuccessful() method to test for this.
+
+ Change the JIT to throw an exception if allocation fails.
+ Make JIT optimizations fail gracefully if memory cannot be allocated (use non-optimized path).
+ Change YARR JIT to fallback to PCRE
+
+ * assembler/ARMAssembler.cpp:
+ (JSC::ARMAssembler::executableCopy):
+ * assembler/ARMv7Assembler.h:
+ (JSC::ARMv7Assembler::executableCopy):
+ * assembler/LinkBuffer.h:
+ (JSC::LinkBuffer::allocationSuccessful):
+ * assembler/MIPSAssembler.h:
+ (JSC::MIPSAssembler::executableCopy):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::executableCopy):
+ * bytecode/StructureStubInfo.h:
+ (JSC::StructureStubInfo::initGetByIdProto):
+ (JSC::StructureStubInfo::initGetByIdChain):
+ (JSC::StructureStubInfo::initGetByIdSelfList):
+ (JSC::StructureStubInfo::initGetByIdProtoList):
+ (JSC::StructureStubInfo::initPutByIdTransition):
+ * jit/ExecutableAllocator.cpp:
+ (JSC::ExecutablePool::systemAlloc):
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::allocInternal):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
+ * jit/JIT.h:
+ (JSC::JIT::compileGetByIdProto):
+ (JSC::JIT::compileGetByIdSelfList):
+ (JSC::JIT::compileGetByIdProtoList):
+ (JSC::JIT::compileGetByIdChainList):
+ (JSC::JIT::compileGetByIdChain):
+ (JSC::JIT::compilePutByIdTransition):
+ (JSC::JIT::compilePatchGetArrayLength):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ (JSC::JIT::privateCompileCTINativeCall):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::stringGetByValStubGenerator):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::stringGetByValStubGenerator):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITStubs.cpp:
+ (JSC::JITThunks::tryCachePutByID):
+ (JSC::JITThunks::tryCacheGetByID):
+ (JSC::DEFINE_STUB_FUNCTION):
+ (JSC::setupPolymorphicProtoList):
+ * jit/JITStubs.h:
+ * jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::finalize):
+ * runtime/ExceptionHelpers.cpp:
+ (JSC::createOutOfMemoryError):
+ * runtime/ExceptionHelpers.h:
+ * runtime/Executable.cpp:
+ (JSC::EvalExecutable::compileInternal):
+ (JSC::ProgramExecutable::compileInternal):
+ (JSC::FunctionExecutable::compileForCallInternal):
+ (JSC::FunctionExecutable::compileForConstructInternal):
+ (JSC::FunctionExecutable::reparseExceptionInfo):
+ (JSC::EvalExecutable::reparseExceptionInfo):
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::compile):
+
+2010-08-03 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fixed a crash seen on the GTK 64bit buildbot.
+
+ When JSArray is allocated for the vptr stealing hack, it's not allocated
+ in the heap, so the JSArray constructor can't safely call Heap::heap().
+
+ Since this was subtle enough to confuse smart people, I've changed JSArray
+ to have an explicit vptr stealing constructor.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::JSArray):
+ * runtime/JSArray.h:
+ (JSC::JSArray::):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::storeVPtrs):
+
+2010-08-03 Alex Milowski <alex@milowski.com>
+
+ Reviewed by Beth Dakin.
+
+ Changed the ENABLE_MATHML value to enable MathML by default.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-08-03 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Change to keep returned pointer from malloc family functions to
+ quiet memory leak detect. The pointer is saved in the new m_allocBase
+ member of the ArrayStorage structure. This fixes the issue found in
+ https://bugs.webkit.org/show_bug.cgi?id=43229.
+
+ As part of this change, we use m_allocBase when reallocating and
+ freeing the memory associated with ArrayStorage.
+
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::JSArray):
+ (JSC::JSArray::~JSArray):
+ (JSC::JSArray::putSlowCase):
+ (JSC::JSArray::increaseVectorLength):
+ (JSC::JSArray::increaseVectorPrefixLength):
+ * runtime/JSArray.h:
+
+2010-08-03 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43444
+ PLATFORM(CF) is false on Windows in JavaScriptCore
+
+ Moved some PLATFORM(WIN) #defines down into JavaScriptCore.
+
+ * wtf/Platform.h: Added WTF_PLATFORM_CF 1 and WTF_USE_PTHREADS 0, inherited
+ from WebCore/config.h. Removed WTF_USE_WININET 1 since WebCore/config.h
+ just #undefined that later.
+
+2010-08-03 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix Windows build: Don't use GCActivityCallbackCF on Windows, since
+ PLATFORM(CF) is not defined on Windows.
+
+ We'll need to enable the GC activity callback some other way, but this
+ change should get the build back to normal.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+
+ * runtime/GCActivityCallbackCF.cpp: Make it easier to detect this error
+ in the future with an explicit error message.
+
+2010-08-03 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix Windows build: update .def file.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-08-03 Nathan Lawrence <nlawrence@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=41318
+ GC should reclaim garbage even when new objects are not being allocated rapidly
+
+ Added a callback in JavaScriptCore that gets triggered after an
+ allocation causes the heap to reset. This is useful for adding a
+ timer that will trigger garbage collection after the "last" allocation.
+
+ Also needed was to add lock and unlock methods to JSLock that needed
+ only a JSGlobalData object versus an ExecState object.
+
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * JavaScriptCore.exp:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.pro:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::emit_op_put_by_val):
+ * runtime/Collector.cpp:
+ (JSC::Heap::Heap):
+ (JSC::Heap::reset):
+ (JSC::Heap::setActivityCallback):
+ * runtime/Collector.h:
+ * runtime/GCActivityCallback.cpp: Added.
+ (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
+ (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
+ (JSC::DefaultGCActivityCallback::operator()):
+ * runtime/GCActivityCallback.h: Added.
+ (JSC::GCActivityCallback::~GCActivityCallback):
+ (JSC::GCActivityCallback::operator()):
+ (JSC::GCActivityCallback::GCActivityCallback):
+ (JSC::DefaultGCActivityCallback::create):
+ * runtime/GCActivityCallbackCF.cpp: Added.
+ (JSC::DefaultGCActivityCallbackPlatformData::trigger):
+ (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
+ (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
+ (JSC::DefaultGCActivityCallback::operator()):
+ * runtime/JSLock.cpp:
+ (JSC::JSLock::JSLock):
+ * runtime/JSLock.h:
+
+2010-08-02 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix after removal of need to compile ExecutableAllocatorPosix.cpp
+
+ * wscript:
+
2010-08-02 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Simon Hausmann.
diff --git a/JavaScriptCore/Configurations/FeatureDefines.xcconfig b/JavaScriptCore/Configurations/FeatureDefines.xcconfig
index 9810cf7..f2b4c09 100644
--- a/JavaScriptCore/Configurations/FeatureDefines.xcconfig
+++ b/JavaScriptCore/Configurations/FeatureDefines.xcconfig
@@ -46,8 +46,8 @@ ENABLE_3D_RENDERING_macosx_1050 = ENABLE_3D_RENDERING;
ENABLE_3D_RENDERING_macosx_1060 = ENABLE_3D_RENDERING;
ENABLE_3D_RENDERING_macosx_1070 = ENABLE_3D_RENDERING;
-ENABLE_BLOB_SLICE = $(ENABLE_BLOB_SLICE_$(REAL_PLATFORM_NAME));
-ENABLE_BLOB_SLICE_macosx = ENABLE_BLOB_SLICE;
+ENABLE_BLOB = $(ENABLE_BLOB_$(REAL_PLATFORM_NAME));
+ENABLE_BLOB_macosx = ENABLE_BLOB;
ENABLE_CHANNEL_MESSAGING = $(ENABLE_CHANNEL_MESSAGING_$(REAL_PLATFORM_NAME));
ENABLE_CHANNEL_MESSAGING_macosx = ENABLE_CHANNEL_MESSAGING;
@@ -69,9 +69,6 @@ ENABLE_EVENTSOURCE = ENABLE_EVENTSOURCE;
ENABLE_FILTERS = $(ENABLE_FILTERS_$(REAL_PLATFORM_NAME));
ENABLE_FILTERS_macosx = ENABLE_FILTERS;
-ENABLE_FILE_READER = $(ENABLE_FILE_READER_$(REAL_PLATFORM_NAME));
-ENABLE_FILE_READER_macosx = ENABLE_FILE_READER;
-
ENABLE_FILE_WRITER = ;
ENABLE_FILE_SYSTEM = ;
ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
@@ -83,7 +80,7 @@ ENABLE_IMAGE_RESIZER = ;
ENABLE_INDEXED_DATABASE = ;
ENABLE_INPUT_SPEECH = ;
ENABLE_JAVASCRIPT_DEBUGGER = ENABLE_JAVASCRIPT_DEBUGGER;
-ENABLE_MATHML = ;
+ENABLE_MATHML = ENABLE_MATHML;
ENABLE_METER_TAG = ENABLE_METER_TAG;
ENABLE_NOTIFICATIONS = ;
ENABLE_OFFLINE_WEB_APPLICATIONS = ENABLE_OFFLINE_WEB_APPLICATIONS;
@@ -123,4 +120,4 @@ ENABLE_XHTMLMP = ;
ENABLE_XPATH = ENABLE_XPATH;
ENABLE_XSLT = ENABLE_XSLT;
-FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_FILE_SYSTEM) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_WRITER) $(ENABLE_FILE_SYSTEM) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
diff --git a/JavaScriptCore/Configurations/Version.xcconfig b/JavaScriptCore/Configurations/Version.xcconfig
index 2893a3c..811d9c4 100644
--- a/JavaScriptCore/Configurations/Version.xcconfig
+++ b/JavaScriptCore/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 534;
-MINOR_VERSION = 5;
+MINOR_VERSION = 6;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/JavaScriptCore/DerivedSources.pro b/JavaScriptCore/DerivedSources.pro
index f358c8b..4d724be 100644
--- a/JavaScriptCore/DerivedSources.pro
+++ b/JavaScriptCore/DerivedSources.pro
@@ -26,7 +26,7 @@ LUT_FILES += \
KEYWORDLUT_FILES += \
parser/Keywords.table
-RVCT_STUB_FILES += \
+JIT_STUB_FILES += \
jit/JITStubs.cpp
defineTest(addExtraCompiler) {
@@ -65,15 +65,24 @@ keywordlut.commands = perl $$keywordlut.wkScript ${QMAKE_FILE_NAME} -i > ${QMAKE
keywordlut.depends = ${QMAKE_FILE_NAME}
addExtraCompiler(keywordlut)
-# GENERATOR 3: JIT Stub functions for RVCT
+# GENERATOR 2-A: JIT Stub functions for RVCT
rvctstubs.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Generated${QMAKE_FILE_BASE}_RVCT.h
rvctstubs.wkScript = $$PWD/create_jit_stubs
rvctstubs.commands = perl -i $$rvctstubs.wkScript --prefix RVCT ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
rvctstubs.depends = ${QMAKE_FILE_NAME}
-rvctstubs.input = RVCT_STUB_FILES
+rvctstubs.input = JIT_STUB_FILES
rvctstubs.CONFIG += no_link
addExtraCompiler(rvctstubs)
+# GENERATOR 2-B: JIT Stub functions for MSVC
+msvcstubs.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Generated${QMAKE_FILE_BASE}_MSVC.asm
+msvcstubs.wkScript = $$PWD/create_jit_stubs
+msvcstubs.commands = perl -i $$msvcstubs.wkScript --prefix MSVC ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
+msvcstubs.depends = ${QMAKE_FILE_NAME}
+msvcstubs.input = JIT_STUB_FILES
+msvcstubs.CONFIG += no_link
+addExtraCompiler(msvcstubs)
+
# GENERATOR: "chartables.c": compile and execute the chartables generator (and add it to sources)
win32-msvc*|wince*: PREPROCESSOR = "--preprocessor=\"$$QMAKE_CC /E\""
ctgen.output = $$JSC_GENERATED_SOURCES_DIR/chartables.c
diff --git a/JavaScriptCore/GNUmakefile.am b/JavaScriptCore/GNUmakefile.am
index 1dd15e4..2ead8e0 100644
--- a/JavaScriptCore/GNUmakefile.am
+++ b/JavaScriptCore/GNUmakefile.am
@@ -212,6 +212,7 @@ javascriptcore_sources += \
JavaScriptCore/profiler/ProfileNode.h \
JavaScriptCore/profiler/Profiler.cpp \
JavaScriptCore/profiler/Profiler.h \
+ JavaScriptCore/runtime/AlignedMemoryAllocator.h \
JavaScriptCore/runtime/ArgList.cpp \
JavaScriptCore/runtime/ArgList.h \
JavaScriptCore/runtime/Arguments.cpp \
@@ -265,6 +266,10 @@ javascriptcore_sources += \
JavaScriptCore/runtime/FunctionConstructor.h \
JavaScriptCore/runtime/FunctionPrototype.cpp \
JavaScriptCore/runtime/FunctionPrototype.h \
+ JavaScriptCore/runtime/GCActivityCallback.cpp \
+ JavaScriptCore/runtime/GCActivityCallback.h \
+ JavaScriptCore/runtime/GCHandle.cpp \
+ JavaScriptCore/runtime/GCHandle.h \
JavaScriptCore/runtime/GetterSetter.cpp \
JavaScriptCore/runtime/GetterSetter.h \
JavaScriptCore/runtime/GlobalEvalFunction.cpp \
@@ -409,6 +414,7 @@ javascriptcore_sources += \
JavaScriptCore/wtf/Assertions.h \
JavaScriptCore/wtf/Atomics.h \
JavaScriptCore/wtf/AVLTree.h \
+ JavaScriptCore/wtf/Bitmap.h \
JavaScriptCore/wtf/BumpPointerAllocator.h \
JavaScriptCore/wtf/ByteArray.cpp \
JavaScriptCore/wtf/ByteArray.h \
@@ -459,6 +465,7 @@ javascriptcore_sources += \
JavaScriptCore/wtf/OwnPtr.h \
JavaScriptCore/wtf/PageAllocation.cpp \
JavaScriptCore/wtf/PageAllocation.h \
+ JavaScriptCore/wtf/PageReservation.h \
JavaScriptCore/wtf/PassOwnPtr.h \
JavaScriptCore/wtf/PassRefPtr.h \
JavaScriptCore/wtf/Platform.h \
diff --git a/JavaScriptCore/JavaScriptCore.exp b/JavaScriptCore/JavaScriptCore.exp
index b66d8df..241ed5c 100644
--- a/JavaScriptCore/JavaScriptCore.exp
+++ b/JavaScriptCore/JavaScriptCore.exp
@@ -99,14 +99,14 @@ __Z12jsRegExpFreeP8JSRegExp
__Z15jsRegExpCompilePKti24JSRegExpIgnoreCaseOption23JSRegExpMultilineOptionPjPPKc
__Z15jsRegExpExecutePK8JSRegExpPKtiiPii
__ZN14OpaqueJSString6createERKN3JSC7UStringE
-__ZN3JSC10Identifier11addSlowCaseEPNS_12JSGlobalDataEPN7WebCore10StringImplE
-__ZN3JSC10Identifier11addSlowCaseEPNS_9ExecStateEPN7WebCore10StringImplE
+__ZN3JSC10Identifier11addSlowCaseEPNS_12JSGlobalDataEPN3WTF10StringImplE
+__ZN3JSC10Identifier11addSlowCaseEPNS_9ExecStateEPN3WTF10StringImplE
__ZN3JSC10Identifier27checkCurrentIdentifierTableEPNS_12JSGlobalDataE
__ZN3JSC10Identifier27checkCurrentIdentifierTableEPNS_9ExecStateE
__ZN3JSC10Identifier3addEPNS_9ExecStateEPKc
__ZN3JSC10Identifier4fromEPNS_9ExecStateEi
__ZN3JSC10Identifier4fromEPNS_9ExecStateEj
-__ZN3JSC10Identifier5equalEPKN7WebCore10StringImplEPKc
+__ZN3JSC10Identifier5equalEPKN3WTF10StringImplEPKc
__ZN3JSC10JSFunction4infoE
__ZN3JSC10JSFunction4nameEPNS_9ExecStateE
__ZN3JSC10throwErrorEPNS_9ExecStateENS_7JSValueE
@@ -141,6 +141,7 @@ __ZN3JSC12StringObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10Identifie
__ZN3JSC12StringObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
__ZN3JSC12StringObject4infoE
__ZN3JSC12StringObjectC2EPNS_9ExecStateEN3WTF17NonNullPassRefPtrINS_9StructureEEERKNS_7UStringE
+__ZN3JSC12WeakGCHandle4poolEv
__ZN3JSC12jsNumberCellEPNS_9ExecStateEd
__ZN3JSC12nonInlineNaNEv
__ZN3JSC13SamplingFlags4stopEv
@@ -171,11 +172,12 @@ __ZN3JSC16InternalFunctionC2EPNS_12JSGlobalDataEPNS_14JSGlobalObjectEN3WTF17NonN
__ZN3JSC16JSVariableObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
__ZN3JSC16JSVariableObject14symbolTableGetERKNS_10IdentifierERNS_18PropertyDescriptorE
__ZN3JSC16JSVariableObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
+__ZN3JSC16WeakGCHandlePool4freeEPNS_12WeakGCHandleE
__ZN3JSC16createRangeErrorEPNS_9ExecStateERKNS_7UStringE
__ZN3JSC16throwSyntaxErrorEPNS_9ExecStateE
__ZN3JSC16toUInt32SlowCaseEdRb
__ZN3JSC17BytecodeGenerator21setDumpsGeneratedCodeEb
-__ZN3JSC17PropertyNameArray3addEPN7WebCore10StringImplE
+__ZN3JSC17PropertyNameArray3addEPN3WTF10StringImplE
__ZN3JSC17constructFunctionEPNS_9ExecStateERKNS_7ArgListERKNS_10IdentifierERKNS_7UStringEi
__ZN3JSC17createSyntaxErrorEPNS_9ExecStateERKNS_7UStringE
__ZN3JSC18DebuggerActivationC1EPNS_8JSObjectE
@@ -201,11 +203,13 @@ __ZN3JSC25evaluateInGlobalCallFrameERKNS_7UStringERNS_7JSValueEPNS_14JSGlobalObj
__ZN3JSC35createInterruptedExecutionExceptionEPNS_12JSGlobalDataE
__ZN3JSC3NaNE
__ZN3JSC4Heap14primaryHeapEndEv
+__ZN3JSC4Heap15addWeakGCHandleEPNS_6JSCellE
__ZN3JSC4Heap15recordExtraCostEm
__ZN3JSC4Heap16objectTypeCountsEv
__ZN3JSC4Heap16primaryHeapBeginEv
__ZN3JSC4Heap17collectAllGarbageEv
__ZN3JSC4Heap17globalObjectCountEv
+__ZN3JSC4Heap19setActivityCallbackEN3WTF10PassOwnPtrINS_18GCActivityCallbackEEE
__ZN3JSC4Heap20protectedObjectCountEv
__ZN3JSC4Heap25protectedObjectTypeCountsEv
__ZN3JSC4Heap26protectedGlobalObjectCountEv
@@ -296,7 +300,7 @@ __ZN3JSC9MarkStack10s_pageSizeE
__ZN3JSC9MarkStack12releaseStackEPvm
__ZN3JSC9MarkStack13allocateStackEm
__ZN3JSC9MarkStack18initializePagesizeEv
-__ZN3JSC9Structure13hasTransitionEPN7WebCore10StringImplEj
+__ZN3JSC9Structure13hasTransitionEPN3WTF10StringImplEj
__ZN3JSC9Structure17stopIgnoringLeaksEv
__ZN3JSC9Structure18startIgnoringLeaksEv
__ZN3JSC9Structure21addPropertyTransitionEPS0_RKNS_10IdentifierEjPNS_6JSCellERm
@@ -305,7 +309,7 @@ __ZN3JSC9Structure25changePrototypeTransitionEPS0_NS_7JSValueE
__ZN3JSC9Structure27despecifyDictionaryFunctionERKNS_10IdentifierE
__ZN3JSC9Structure27despecifyFunctionTransitionEPS0_RKNS_10IdentifierE
__ZN3JSC9Structure28addPropertyWithoutTransitionERKNS_10IdentifierEjPNS_6JSCellE
-__ZN3JSC9Structure3getEPKN7WebCore10StringImplERjRPNS_6JSCellE
+__ZN3JSC9Structure3getEPKN3WTF10StringImplERjRPNS_6JSCellE
__ZN3JSC9Structure40addPropertyTransitionToExistingStructureEPS0_RKNS_10IdentifierEjPNS_6JSCellERm
__ZN3JSC9StructureC1ENS_7JSValueERKNS_8TypeInfoEj
__ZN3JSC9StructureD1Ev
@@ -313,11 +317,49 @@ __ZN3JSC9constructEPNS_9ExecStateENS_7JSValueENS_13ConstructTypeERKNS_13Construc
__ZN3JSCeqERKNS_7UStringEPKc
__ZN3JSCgtERKNS_7UStringES2_
__ZN3JSCltERKNS_7UStringES2_
+__ZN3WTF10StringImpl11reverseFindEPS0_ib
+__ZN3WTF10StringImpl11reverseFindEti
+__ZN3WTF10StringImpl12sharedBufferEv
+__ZN3WTF10StringImpl18simplifyWhiteSpaceEv
+__ZN3WTF10StringImpl19characterStartingAtEj
+__ZN3WTF10StringImpl19createUninitializedEjRPt
+__ZN3WTF10StringImpl22containsOnlyWhitespaceEv
+__ZN3WTF10StringImpl23defaultWritingDirectionEv
+__ZN3WTF10StringImpl37createStrippingNullCharactersSlowCaseEPKtj
+__ZN3WTF10StringImpl4findEPFbtEi
+__ZN3WTF10StringImpl4findEPKcib
+__ZN3WTF10StringImpl4findEPS0_ib
+__ZN3WTF10StringImpl4findEti
+__ZN3WTF10StringImpl5adoptERNS_12StringBufferE
+__ZN3WTF10StringImpl5asciiEv
+__ZN3WTF10StringImpl5emptyEv
+__ZN3WTF10StringImpl5lowerEv
+__ZN3WTF10StringImpl5toIntEPb
+__ZN3WTF10StringImpl5upperEv
+__ZN3WTF10StringImpl6createEPKc
+__ZN3WTF10StringImpl6createEPKcj
+__ZN3WTF10StringImpl6createEPKtj
+__ZN3WTF10StringImpl6secureEt
+__ZN3WTF10StringImpl7replaceEPS0_S1_
+__ZN3WTF10StringImpl7replaceEjjPS0_
+__ZN3WTF10StringImpl7replaceEtPS0_
+__ZN3WTF10StringImpl7replaceEtt
+__ZN3WTF10StringImpl8endsWithEPS0_b
+__ZN3WTF10StringImpl9substringEjj
+__ZN3WTF10StringImplD1Ev
__ZN3WTF10fastCallocEmm
__ZN3WTF10fastMallocEm
__ZN3WTF10fastStrDupEPKc
+__ZN3WTF11commentAtomE
__ZN3WTF11currentTimeEv
__ZN3WTF11fastReallocEPvm
+__ZN3WTF12AtomicString11addSlowCaseEPNS_10StringImplE
+__ZN3WTF12AtomicString3addEPKc
+__ZN3WTF12AtomicString3addEPKt
+__ZN3WTF12AtomicString3addEPKtj
+__ZN3WTF12AtomicString3addEPKtjj
+__ZN3WTF12AtomicString4findEPKtjj
+__ZN3WTF12AtomicString4initEv
__ZN3WTF12createThreadEPFPvS0_ES0_
__ZN3WTF12createThreadEPFPvS0_ES0_PKc
__ZN3WTF12detachThreadEj
@@ -336,11 +378,19 @@ __ZN3WTF15ThreadCondition9broadcastEv
__ZN3WTF15ThreadCondition9timedWaitERNS_5MutexEd
__ZN3WTF15ThreadConditionC1Ev
__ZN3WTF15ThreadConditionD1Ev
+__ZN3WTF15charactersToIntEPKtmPb
__ZN3WTF16callOnMainThreadEPFvPvES0_
+__ZN3WTF16codePointCompareERKNS_6StringES2_
__ZN3WTF16fastZeroedMallocEm
+__ZN3WTF17charactersToFloatEPKtmPb
+__ZN3WTF17equalIgnoringCaseEPKtPKcj
+__ZN3WTF17equalIgnoringCaseEPNS_10StringImplEPKc
+__ZN3WTF17equalIgnoringCaseEPNS_10StringImplES1_
+__ZN3WTF18charactersToDoubleEPKtmPb
__ZN3WTF18dateToDaysFrom1970Eiii
__ZN3WTF18monthFromDayInYearEib
__ZN3WTF19initializeThreadingEv
+__ZN3WTF20equalIgnoringNullityEPNS_10StringImplES1_
__ZN3WTF20fastMallocStatisticsEv
__ZN3WTF20initializeMainThreadEv
__ZN3WTF21RefCountedLeakCounter16suppressMessagesEPKc
@@ -349,6 +399,8 @@ __ZN3WTF21RefCountedLeakCounter9decrementEv
__ZN3WTF21RefCountedLeakCounter9incrementEv
__ZN3WTF21RefCountedLeakCounterC1EPKc
__ZN3WTF21RefCountedLeakCounterD1Ev
+__ZN3WTF21charactersToIntStrictEPKtmPbi
+__ZN3WTF22charactersToUIntStrictEPKtmPbi
__ZN3WTF23callOnMainThreadAndWaitEPFvPvES0_
__ZN3WTF23dayInMonthFromDayInYearEib
__ZN3WTF23waitForThreadCompletionEjPPv
@@ -367,7 +419,30 @@ __ZN3WTF5Mutex6unlockEv
__ZN3WTF5Mutex7tryLockEv
__ZN3WTF5MutexC1Ev
__ZN3WTF5MutexD1Ev
+__ZN3WTF5equalEPKNS_10StringImplEPKc
+__ZN3WTF5equalEPKNS_10StringImplES2_
__ZN3WTF5yieldEv
+__ZN3WTF6String26fromUTF8WithLatin1FallbackEPKcm
+__ZN3WTF6String29charactersWithNullTerminationEv
+__ZN3WTF6String6appendEPKtj
+__ZN3WTF6String6appendERKS0_
+__ZN3WTF6String6appendEc
+__ZN3WTF6String6appendEt
+__ZN3WTF6String6formatEPKcz
+__ZN3WTF6String6insertERKS0_j
+__ZN3WTF6String6numberEd
+__ZN3WTF6String6numberEi
+__ZN3WTF6String6numberEj
+__ZN3WTF6String6numberEl
+__ZN3WTF6String6numberEm
+__ZN3WTF6String6numberEt
+__ZN3WTF6String6numberEx
+__ZN3WTF6String6numberEy
+__ZN3WTF6String6removeEji
+__ZN3WTF6String8fromUTF8EPKc
+__ZN3WTF6String8fromUTF8EPKcm
+__ZN3WTF6String8truncateEj
+__ZN3WTF6StringC1EPKt
__ZN3WTF6strtodEPKcPPc
__ZN3WTF7CString11mutableDataEv
__ZN3WTF7CString16newUninitializedEmRPc
@@ -375,96 +450,24 @@ __ZN3WTF7CStringC1EPKc
__ZN3WTF7CStringC1EPKcj
__ZN3WTF7Unicode18convertUTF16ToUTF8EPPKtS2_PPcS4_b
__ZN3WTF7Unicode18convertUTF8ToUTF16EPPKcS2_PPtS4_b
+__ZN3WTF7xmlAtomE
__ZN3WTF8Collator18setOrderLowerFirstEb
__ZN3WTF8CollatorC1EPKc
__ZN3WTF8CollatorD1Ev
__ZN3WTF8fastFreeEPv
__ZN3WTF8msToYearEd
+__ZN3WTF8nullAtomE
+__ZN3WTF8starAtomE
+__ZN3WTF8textAtomE
__ZN3WTF9ByteArray6createEm
__ZN3WTF9dayInYearEdi
+__ZN3WTF9emptyAtomE
+__ZN3WTF9xmlnsAtomE
+__ZN3WTFeqERKNS_12AtomicStringEPKc
__ZN3WTFeqERKNS_7CStringES2_
-__ZN7WebCore10StringImpl11reverseFindEPS0_ib
-__ZN7WebCore10StringImpl11reverseFindEti
-__ZN7WebCore10StringImpl12sharedBufferEv
-__ZN7WebCore10StringImpl18simplifyWhiteSpaceEv
-__ZN7WebCore10StringImpl19characterStartingAtEj
-__ZN7WebCore10StringImpl19createUninitializedEjRPt
-__ZN7WebCore10StringImpl22containsOnlyWhitespaceEv
-__ZN7WebCore10StringImpl23defaultWritingDirectionEv
-__ZN7WebCore10StringImpl37createStrippingNullCharactersSlowCaseEPKtj
-__ZN7WebCore10StringImpl4findEPFbtEi
-__ZN7WebCore10StringImpl4findEPKcib
-__ZN7WebCore10StringImpl4findEPS0_ib
-__ZN7WebCore10StringImpl4findEti
-__ZN7WebCore10StringImpl5adoptERNS_12StringBufferE
-__ZN7WebCore10StringImpl5asciiEv
-__ZN7WebCore10StringImpl5emptyEv
-__ZN7WebCore10StringImpl5lowerEv
-__ZN7WebCore10StringImpl5toIntEPb
-__ZN7WebCore10StringImpl5upperEv
-__ZN7WebCore10StringImpl6createEPKc
-__ZN7WebCore10StringImpl6createEPKcj
-__ZN7WebCore10StringImpl6createEPKtj
-__ZN7WebCore10StringImpl6createEPKtjN3WTF10PassRefPtrINS3_21CrossThreadRefCountedINS3_16OwnFastMallocPtrIS1_EEEEEE
-__ZN7WebCore10StringImpl6secureEt
-__ZN7WebCore10StringImpl7replaceEPS0_S1_
-__ZN7WebCore10StringImpl7replaceEjjPS0_
-__ZN7WebCore10StringImpl7replaceEtPS0_
-__ZN7WebCore10StringImpl7replaceEtt
-__ZN7WebCore10StringImpl8endsWithEPS0_b
-__ZN7WebCore10StringImpl9substringEjj
-__ZN7WebCore10StringImplD1Ev
-__ZN7WebCore11commentAtomE
-__ZN7WebCore12AtomicString11addSlowCaseEPNS_10StringImplE
-__ZN7WebCore12AtomicString3addEPKc
-__ZN7WebCore12AtomicString3addEPKt
-__ZN7WebCore12AtomicString3addEPKtj
-__ZN7WebCore12AtomicString3addEPKtjj
-__ZN7WebCore12AtomicString4findEPKtjj
-__ZN7WebCore12AtomicString4initEv
-__ZN7WebCore15charactersToIntEPKtmPb
-__ZN7WebCore16codePointCompareERKNS_6StringES2_
-__ZN7WebCore17charactersToFloatEPKtmPb
-__ZN7WebCore17equalIgnoringCaseEPKtPKcj
-__ZN7WebCore17equalIgnoringCaseEPNS_10StringImplEPKc
-__ZN7WebCore17equalIgnoringCaseEPNS_10StringImplES1_
-__ZN7WebCore18charactersToDoubleEPKtmPb
-__ZN7WebCore20equalIgnoringNullityEPNS_10StringImplES1_
-__ZN7WebCore21charactersToIntStrictEPKtmPbi
-__ZN7WebCore22charactersToUIntStrictEPKtmPbi
-__ZN7WebCore5equalEPKNS_10StringImplEPKc
-__ZN7WebCore5equalEPKNS_10StringImplES2_
-__ZN7WebCore6String26fromUTF8WithLatin1FallbackEPKcm
-__ZN7WebCore6String29charactersWithNullTerminationEv
-__ZN7WebCore6String6appendEPKtj
-__ZN7WebCore6String6appendERKS0_
-__ZN7WebCore6String6appendEc
-__ZN7WebCore6String6appendEt
-__ZN7WebCore6String6formatEPKcz
-__ZN7WebCore6String6insertERKS0_j
-__ZN7WebCore6String6numberEd
-__ZN7WebCore6String6numberEi
-__ZN7WebCore6String6numberEj
-__ZN7WebCore6String6numberEl
-__ZN7WebCore6String6numberEm
-__ZN7WebCore6String6numberEt
-__ZN7WebCore6String6numberEx
-__ZN7WebCore6String6numberEy
-__ZN7WebCore6String6removeEji
-__ZN7WebCore6String8fromUTF8EPKc
-__ZN7WebCore6String8fromUTF8EPKcm
-__ZN7WebCore6String8truncateEj
-__ZN7WebCore6StringC1EPKt
-__ZN7WebCore7xmlAtomE
-__ZN7WebCore8nullAtomE
-__ZN7WebCore8starAtomE
-__ZN7WebCore8textAtomE
-__ZN7WebCore9emptyAtomE
-__ZN7WebCore9xmlnsAtomE
-__ZN7WebCoreeqERKNS_12AtomicStringEPKc
-__ZN7WebCoreplEPKcRKNS_6StringE
-__ZN7WebCoreplERKNS_6StringEPKc
-__ZN7WebCoreplERKNS_6StringES2_
+__ZN3WTFplEPKcRKNS_6StringE
+__ZN3WTFplERKNS_6StringEPKc
+__ZN3WTFplERKNS_6StringES2_
__ZNK3JSC10JSFunction23isHostFunctionNonInlineEv
__ZNK3JSC11Interpreter14retrieveCallerEPNS_9ExecStateEPNS_10JSFunctionE
__ZNK3JSC11Interpreter18retrieveLastCallerEPNS_9ExecStateERiRlRNS_7UStringERNS_7JSValueE
@@ -524,33 +527,32 @@ __ZNK3JSC8JSObject9toBooleanEPNS_9ExecStateE
__ZNK3JSC8JSString11resolveRopeEPNS_9ExecStateE
__ZNK3JSC9HashTable11createTableEPNS_12JSGlobalDataE
__ZNK3JSC9HashTable11deleteTableEv
+__ZNK3WTF12AtomicString5lowerEv
+__ZNK3WTF6String11toIntStrictEPbi
+__ZNK3WTF6String12toUIntStrictEPbi
+__ZNK3WTF6String14threadsafeCopyEv
+__ZNK3WTF6String15stripWhiteSpaceEv
+__ZNK3WTF6String16removeCharactersEPFbtE
+__ZNK3WTF6String17crossThreadStringEv
+__ZNK3WTF6String18simplifyWhiteSpaceEv
+__ZNK3WTF6String19characterStartingAtEj
+__ZNK3WTF6String4utf8Ev
+__ZNK3WTF6String5asciiEv
+__ZNK3WTF6String5lowerEv
+__ZNK3WTF6String5splitERKS0_bRNS_6VectorIS0_Lm0EEE
+__ZNK3WTF6String5splitEtRNS_6VectorIS0_Lm0EEE
+__ZNK3WTF6String5splitEtbRNS_6VectorIS0_Lm0EEE
+__ZNK3WTF6String5toIntEPb
+__ZNK3WTF6String5upperEv
+__ZNK3WTF6String6latin1Ev
+__ZNK3WTF6String6toUIntEPb
+__ZNK3WTF6String7toFloatEPb
+__ZNK3WTF6String8foldCaseEv
+__ZNK3WTF6String8toDoubleEPb
+__ZNK3WTF6String8toIntPtrEPb
+__ZNK3WTF6String8toUInt64EPb
+__ZNK3WTF6String9substringEjj
__ZNK3WTF8Collator7collateEPKtmS2_m
-__ZNK7WebCore12AtomicString5lowerEv
-__ZNK7WebCore6String11toIntStrictEPbi
-__ZNK7WebCore6String12toUIntStrictEPbi
-__ZNK7WebCore6String14threadsafeCopyEv
-__ZNK7WebCore6String15stripWhiteSpaceEv
-__ZNK7WebCore6String16removeCharactersEPFbtE
-__ZNK7WebCore6String17crossThreadStringEv
-__ZNK7WebCore6String18simplifyWhiteSpaceEv
-__ZNK7WebCore6String19characterStartingAtEj
-__ZNK7WebCore6String4utf8Ev
-__ZNK7WebCore6String5asciiEv
-__ZNK7WebCore6String5lowerEv
-__ZNK7WebCore6String5splitERKS0_RN3WTF6VectorIS0_Lm0EEE
-__ZNK7WebCore6String5splitERKS0_bRN3WTF6VectorIS0_Lm0EEE
-__ZNK7WebCore6String5splitEtRN3WTF6VectorIS0_Lm0EEE
-__ZNK7WebCore6String5splitEtbRN3WTF6VectorIS0_Lm0EEE
-__ZNK7WebCore6String5toIntEPb
-__ZNK7WebCore6String5upperEv
-__ZNK7WebCore6String6latin1Ev
-__ZNK7WebCore6String6toUIntEPb
-__ZNK7WebCore6String7toFloatEPb
-__ZNK7WebCore6String8foldCaseEv
-__ZNK7WebCore6String8toDoubleEPb
-__ZNK7WebCore6String8toIntPtrEPb
-__ZNK7WebCore6String8toUInt64EPb
-__ZNK7WebCore6String9substringEjj
__ZTVN3JSC12StringObjectE
__ZTVN3JSC14JSGlobalObjectE
__ZTVN3JSC15JSWrapperObjectE
diff --git a/JavaScriptCore/JavaScriptCore.gypi b/JavaScriptCore/JavaScriptCore.gypi
index 9281576..a85d11c 100644
--- a/JavaScriptCore/JavaScriptCore.gypi
+++ b/JavaScriptCore/JavaScriptCore.gypi
@@ -164,6 +164,7 @@
'profiler/Profiler.cpp',
'profiler/Profiler.h',
'profiler/ProfilerServer.h',
+ 'runtime/AlignedMemoryAllocator.h',
'runtime/ArgList.cpp',
'runtime/ArgList.h',
'runtime/Arguments.cpp',
@@ -214,6 +215,10 @@
'runtime/FunctionConstructor.h',
'runtime/FunctionPrototype.cpp',
'runtime/FunctionPrototype.h',
+ 'runtime/GCActivityCallback.cpp',
+ 'runtime/GCActivityCallback.h',
+ 'runtime/GCHandle.cpp',
+ 'runtime/GCHandle.h',
'runtime/GetterSetter.cpp',
'runtime/GetterSetter.h',
'runtime/GlobalEvalFunction.cpp',
@@ -348,6 +353,7 @@
'wtf/Assertions.h',
'wtf/Atomics.h',
'wtf/AVLTree.h',
+ 'wtf/Bitmap.h',
'wtf/ByteArray.cpp',
'wtf/ByteArray.h',
'wtf/chromium/ChromiumThreading.h',
@@ -396,6 +402,7 @@
'wtf/OwnPtrCommon.h',
'wtf/PageAllocation.cpp',
'wtf/PageAllocation.h',
+ 'wtf/PageReservation',
'wtf/PassOwnPtr.h',
'wtf/PassRefPtr.h',
'wtf/Platform.h',
diff --git a/JavaScriptCore/JavaScriptCore.pro b/JavaScriptCore/JavaScriptCore.pro
index 2489580..d6c4420 100644
--- a/JavaScriptCore/JavaScriptCore.pro
+++ b/JavaScriptCore/JavaScriptCore.pro
@@ -139,6 +139,8 @@ SOURCES += \
runtime/Executable.cpp \
runtime/FunctionConstructor.cpp \
runtime/FunctionPrototype.cpp \
+ runtime/GCActivityCallback.cpp \
+ runtime/GCHandle.cpp \
runtime/GetterSetter.cpp \
runtime/GlobalEvalFunction.cpp \
runtime/Identifier.cpp \
@@ -215,7 +217,6 @@ SOURCES += \
wtf/PageAllocation.cpp \
wtf/RandomNumber.cpp \
wtf/RefCountedLeakCounter.cpp \
- wtf/symbian/BlockAllocatorSymbian.cpp \
wtf/ThreadingNone.cpp \
wtf/Threading.cpp \
wtf/TypeTraits.cpp \
diff --git a/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def b/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
index a478725..90fd3ad 100644
--- a/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
+++ b/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
@@ -5,6 +5,7 @@ EXPORTS
??0Collator@WTF@@QAE@PBD@Z
??0DateInstance@JSC@@QAE@PAVExecState@1@N@Z
??0DateInstance@JSC@@QAE@PAVExecState@1@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@N@Z
+ ??0DefaultGCActivityCallback@JSC@@QAE@PAVHeap@1@@Z
??0DropAllLocks@JSLock@JSC@@QAE@W4JSLockBehavior@2@@Z
??0InternalFunction@JSC@@IAE@PAVJSGlobalData@1@PAVJSGlobalObject@1@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@ABVIdentifier@1@@Z
??0JSArray@JSC@@QAE@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@@Z
@@ -38,13 +39,14 @@ EXPORTS
??8WTF@@YA_NABVCString@0@0@Z
?NaN@JSC@@3NB
?UTF8String@UString@JSC@@QBE?AVCString@WTF@@_N@Z
- ?add@Identifier@JSC@@SA?AV?$PassRefPtr@VStringImpl@WebCore@@@WTF@@PAVExecState@2@PBD@Z
- ?add@PropertyNameArray@JSC@@QAEXPAVStringImpl@WebCore@@@Z
+ ?add@Identifier@JSC@@SA?AV?$PassRefPtr@VStringImpl@WTF@@@WTF@@PAVExecState@2@PBD@Z
+ ?add@PropertyNameArray@JSC@@QAEXPAVStringImpl@WTF@@@Z
?addBytes@MD5@WTF@@QAEXPBEI@Z
?addPropertyTransition@Structure@JSC@@SA?AV?$PassRefPtr@VStructure@JSC@@@WTF@@PAV12@ABVIdentifier@2@IPAVJSCell@2@AAI@Z
?addPropertyTransitionToExistingStructure@Structure@JSC@@SA?AV?$PassRefPtr@VStructure@JSC@@@WTF@@PAV12@ABVIdentifier@2@IPAVJSCell@2@AAI@Z
?addPropertyWithoutTransition@Structure@JSC@@QAEIABVIdentifier@2@IPAVJSCell@2@@Z
- ?addSlowCase@Identifier@JSC@@CA?AV?$PassRefPtr@VStringImpl@WebCore@@@WTF@@PAVExecState@2@PAVStringImpl@WebCore@@@Z
+ ?addSlowCase@Identifier@JSC@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@WTF@@PAVExecState@2@PAVStringImpl@4@@Z
+ ?addWeakGCHandle@Heap@JSC@@QAEPAVWeakGCHandle@2@PAVJSCell@2@@Z
?allocate@Heap@JSC@@QAEPAXI@Z
?allocatePropertyStorage@JSObject@JSC@@QAEXII@Z
?allocateStack@MarkStack@JSC@@CAPAXI@Z
@@ -126,9 +128,9 @@ EXPORTS
?didTimeOut@TimeoutChecker@JSC@@QAE_NPAVExecState@2@@Z
?doubleToStringInJavaScriptFormat@WTF@@YAXNQADPAI@Z
?dumpSampleData@JSGlobalData@JSC@@QAEXPAVExecState@2@@Z
- ?empty@StringImpl@WebCore@@SAPAV12@XZ
+ ?empty@StringImpl@WTF@@SAPAV12@XZ
?enumerable@PropertyDescriptor@JSC@@QBE_NXZ
- ?equal@Identifier@JSC@@SA_NPBVStringImpl@WebCore@@PBD@Z
+ ?equal@Identifier@JSC@@SA_NPBVStringImpl@WTF@@PBD@Z
?evaluate@DebuggerCallFrame@JSC@@QBE?AVJSValue@2@ABVUString@2@AAV32@@Z
?evaluate@JSC@@YA?AVCompletion@1@PAVExecState@1@AAVScopeChain@1@ABVSourceCode@1@VJSValue@1@@Z
?exclude@Profile@JSC@@QAEXPBVProfileNode@2@@Z
@@ -141,6 +143,7 @@ EXPORTS
?fastZeroedMalloc@WTF@@YAPAXI@Z
?fillGetterPropertySlot@JSObject@JSC@@QAEXAAVPropertySlot@2@PAVJSValue@2@@Z
?focus@Profile@JSC@@QAEXPBVProfileNode@2@@Z
+ ?free@WeakGCHandlePool@JSC@@QAEXPAVWeakGCHandle@2@@Z
?from@Identifier@JSC@@SA?AV12@PAVExecState@2@H@Z
?from@Identifier@JSC@@SA?AV12@PAVExecState@2@I@Z
?from@UString@JSC@@SA?AV12@H@Z
@@ -148,7 +151,7 @@ EXPORTS
?from@UString@JSC@@SA?AV12@N@Z
?functionGetter@PropertySlot@JSC@@ABE?AVJSValue@2@PAVExecState@2@@Z
?functionName@DebuggerCallFrame@JSC@@QBEPBVUString@2@XZ
- ?get@Structure@JSC@@QAEIPBVStringImpl@WebCore@@AAIAAPAVJSCell@2@@Z
+ ?get@Structure@JSC@@QAEIPBVStringImpl@WTF@@AAIAAPAVJSCell@2@@Z
?getCallData@JSCell@JSC@@UAE?AW4CallType@2@AATCallData@2@@Z
?getConstructData@JSCell@JSC@@UAE?AW4ConstructType@2@AATConstructData@2@@Z
?getJSNumber@JSCell@JSC@@UAE?AVJSValue@2@XZ
@@ -182,10 +185,10 @@ EXPORTS
?hasInstance@JSObject@JSC@@UAE_NPAVExecState@2@VJSValue@2@1@Z
?hasProperty@JSObject@JSC@@QBE_NPAVExecState@2@ABVIdentifier@2@@Z
?hasProperty@JSObject@JSC@@QBE_NPAVExecState@2@I@Z
- ?hasTransition@Structure@JSC@@QAE_NPAVStringImpl@WebCore@@I@Z
+ ?hasTransition@Structure@JSC@@QAE_NPAVStringImpl@WTF@@I@Z
?heap@Heap@JSC@@SAPAV12@VJSValue@2@@Z
?increment@RefCountedLeakCounter@WTF@@QAEXXZ
- ?init@AtomicString@WebCore@@SAXXZ
+ ?init@AtomicString@WTF@@SAXXZ
?init@JSGlobalObject@JSC@@AAEXPAVJSObject@2@@Z
?initializeMainThread@WTF@@YAXXZ
?initializeThreading@JSC@@YAXXZ
@@ -226,6 +229,7 @@ EXPORTS
?objectProtoFuncToString@JSC@@YI_JPAVExecState@1@@Z
?parse@Parser@JSC@@AAEXPAVJSGlobalData@2@PAHPAVUString@2@@Z
?parseDateFromNullTerminatedCharacters@WTF@@YANPBD@Z
+ ?pool@WeakGCHandle@JSC@@QAEPAVWeakGCHandlePool@2@XZ
?profiler@Profiler@JSC@@SAPAV12@XZ
?protect@Heap@JSC@@QAEXVJSValue@2@@Z
?protectedGlobalObjectCount@Heap@JSC@@QAEIXZ
diff --git a/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj b/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj
index 7819f99..83d34e3 100644
--- a/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj
+++ b/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj
@@ -709,6 +709,22 @@
>
</File>
<File
+ RelativePath="..\..\runtime\GCActivityCallback.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\runtime\GCActivityCallback.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\runtime\GCHandle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\runtime\GCHandle.h"
+ >
+ </File>
+ <File
RelativePath="..\..\runtime\GetterSetter.cpp"
>
</File>
diff --git a/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj b/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj
index 7f18f7e..9d551d0 100644
--- a/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj
+++ b/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj
@@ -437,6 +437,10 @@
>
</File>
<File
+ RelativePath="..\..\wtf\PageReservation.h"
+ >
+ </File>
+ <File
RelativePath="..\..\wtf\PassOwnPtr.h"
>
</File>
diff --git a/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj b/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
index 9e86120..de3afaa 100644
--- a/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
+++ b/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
@@ -214,6 +214,7 @@
868BFA17117CF19900B908B1 /* WTFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 868BFA15117CF19900B908B1 /* WTFString.cpp */; };
868BFA18117CF19900B908B1 /* WTFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 868BFA16117CF19900B908B1 /* WTFString.h */; settings = {ATTRIBUTES = (Private, ); }; };
868BFA60117D048200B908B1 /* StaticConstructors.h in Headers */ = {isa = PBXBuildFile; fileRef = 868BFA5F117D048200B908B1 /* StaticConstructors.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 8690231512092D5C00630AF9 /* PageReservation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8690231412092D5C00630AF9 /* PageReservation.h */; settings = {ATTRIBUTES = (Private, ); }; };
8698B86910D44D9400D8D01B /* StringBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8698B86810D44D9400D8D01B /* StringBuilder.h */; settings = {ATTRIBUTES = (Private, ); }; };
8698BB3910D86BAF00D8D01B /* UStringImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 8698BB3710D86BAF00D8D01B /* UStringImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
869D04AF1193B54D00803475 /* CachedTranscendentalFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = 869D04AE1193B54D00803475 /* CachedTranscendentalFunction.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -310,6 +311,7 @@
A7482B9411671147003B0712 /* JSWeakObjectMapRefPrivate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7482B7A1166CDEA003B0712 /* JSWeakObjectMapRefPrivate.cpp */; };
A7482E93116A7CAD003B0712 /* JSWeakObjectMapRefInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7482E37116A697B003B0712 /* JSWeakObjectMapRefInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
A74B3499102A5F8E0032AB98 /* MarkStack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A74B3498102A5F8E0032AB98 /* MarkStack.cpp */; };
+ A74DE1D0120B875600D40D5B /* ARMv7Assembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A74DE1CB120B86D600D40D5B /* ARMv7Assembler.cpp */; };
A75706DE118A2BCF0057F88F /* JITArithmetic32_64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A75706DD118A2BCF0057F88F /* JITArithmetic32_64.cpp */; };
A766B44F0EE8DCD1009518CA /* ExecutableAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B48DB50EE74CFC00DCBDB6 /* ExecutableAllocator.h */; settings = {ATTRIBUTES = (Private, ); }; };
A76C51761182748D00715B05 /* JSInterfaceJIT.h in Headers */ = {isa = PBXBuildFile; fileRef = A76C51741182748D00715B05 /* JSInterfaceJIT.h */; };
@@ -508,6 +510,17 @@
BCFD8C920EEB2EE700283848 /* JumpTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCFD8C900EEB2EE700283848 /* JumpTable.cpp */; };
BCFD8C930EEB2EE700283848 /* JumpTable.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFD8C910EEB2EE700283848 /* JumpTable.h */; };
C0A272630E50A06300E96E15 /* NotFound.h in Headers */ = {isa = PBXBuildFile; fileRef = C0A2723F0E509F1E00E96E15 /* NotFound.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ DD2724681208D1FF00F9ABE7 /* AlignedMemoryAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2724671208D1FF00F9ABE7 /* AlignedMemoryAllocator.h */; };
+ DD2724691208D1FF00F9ABE7 /* AlignedMemoryAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2724671208D1FF00F9ABE7 /* AlignedMemoryAllocator.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ DD377CBC12072C18006A2517 /* Bitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = DD377CBB12072C18006A2517 /* Bitmap.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ DDE82AD31209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
+ DDE82AD41209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
+ DDE82AD51209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
+ DDE82AD61209D955005C1756 /* GCHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE82AD21209D955005C1756 /* GCHandle.h */; };
+ DDE82AD71209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
+ DDE82AD81209D955005C1756 /* GCHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE82AD21209D955005C1756 /* GCHandle.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ DDF7ABD411F60ED200108E36 /* GCActivityCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF7ABD211F60ED200108E36 /* GCActivityCallback.h */; };
+ DDF7ABD511F60ED200108E36 /* GCActivityCallbackCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDF7ABD311F60ED200108E36 /* GCActivityCallbackCF.cpp */; };
E124A8F70E555775003091F1 /* OpaqueJSString.h in Headers */ = {isa = PBXBuildFile; fileRef = E124A8F50E555775003091F1 /* OpaqueJSString.h */; settings = {ATTRIBUTES = (Private, ); }; };
E124A8F80E555775003091F1 /* OpaqueJSString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E124A8F60E555775003091F1 /* OpaqueJSString.cpp */; };
E178636D0D9BEEC300D74E75 /* InitializeThreading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E178636C0D9BEEC300D74E75 /* InitializeThreading.cpp */; };
@@ -788,6 +801,7 @@
868BFA15117CF19900B908B1 /* WTFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WTFString.cpp; path = text/WTFString.cpp; sourceTree = "<group>"; };
868BFA16117CF19900B908B1 /* WTFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WTFString.h; path = text/WTFString.h; sourceTree = "<group>"; };
868BFA5F117D048200B908B1 /* StaticConstructors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StaticConstructors.h; sourceTree = "<group>"; };
+ 8690231412092D5C00630AF9 /* PageReservation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageReservation.h; sourceTree = "<group>"; };
8698B86810D44D9400D8D01B /* StringBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringBuilder.h; sourceTree = "<group>"; };
8698BB3710D86BAF00D8D01B /* UStringImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UStringImpl.h; sourceTree = "<group>"; };
869D04AE1193B54D00803475 /* CachedTranscendentalFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedTranscendentalFunction.h; sourceTree = "<group>"; };
@@ -914,6 +928,7 @@
A7482B7A1166CDEA003B0712 /* JSWeakObjectMapRefPrivate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWeakObjectMapRefPrivate.cpp; sourceTree = "<group>"; };
A7482E37116A697B003B0712 /* JSWeakObjectMapRefInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWeakObjectMapRefInternal.h; sourceTree = "<group>"; };
A74B3498102A5F8E0032AB98 /* MarkStack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MarkStack.cpp; sourceTree = "<group>"; };
+ A74DE1CB120B86D600D40D5B /* ARMv7Assembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMv7Assembler.cpp; sourceTree = "<group>"; };
A75706DD118A2BCF0057F88F /* JITArithmetic32_64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JITArithmetic32_64.cpp; sourceTree = "<group>"; };
A76C51741182748D00715B05 /* JSInterfaceJIT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInterfaceJIT.h; sourceTree = "<group>"; };
A76EE6580FAE59D5003F069A /* NativeFunctionWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeFunctionWrapper.h; sourceTree = "<group>"; };
@@ -1049,6 +1064,12 @@
C0A2723F0E509F1E00E96E15 /* NotFound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NotFound.h; sourceTree = "<group>"; };
D21202280AD4310C00ED79B6 /* DateConversion.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DateConversion.cpp; sourceTree = "<group>"; };
D21202290AD4310C00ED79B6 /* DateConversion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DateConversion.h; sourceTree = "<group>"; };
+ DD2724671208D1FF00F9ABE7 /* AlignedMemoryAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlignedMemoryAllocator.h; sourceTree = "<group>"; };
+ DD377CBB12072C18006A2517 /* Bitmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bitmap.h; sourceTree = "<group>"; };
+ DDE82AD11209D955005C1756 /* GCHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GCHandle.cpp; sourceTree = "<group>"; };
+ DDE82AD21209D955005C1756 /* GCHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCHandle.h; sourceTree = "<group>"; };
+ DDF7ABD211F60ED200108E36 /* GCActivityCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCActivityCallback.h; sourceTree = "<group>"; };
+ DDF7ABD311F60ED200108E36 /* GCActivityCallbackCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GCActivityCallbackCF.cpp; sourceTree = "<group>"; };
E11D51750B2E798D0056C188 /* StringExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringExtras.h; sourceTree = "<group>"; };
E124A8F50E555775003091F1 /* OpaqueJSString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpaqueJSString.h; sourceTree = "<group>"; };
E124A8F60E555775003091F1 /* OpaqueJSString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OpaqueJSString.cpp; sourceTree = "<group>"; };
@@ -1406,6 +1427,7 @@
65E217B708E7EECC0023E5F6 /* Assertions.h */,
BC5F7BBB11823B590052C02C /* Atomics.h */,
E1A596370DE3E1C300C17E37 /* AVLTree.h */,
+ DD377CBB12072C18006A2517 /* Bitmap.h */,
86676D4D11FED55D004B6863 /* BumpPointerAllocator.h */,
A7A1F7AA0F252B3C00E184E2 /* ByteArray.cpp */,
A7A1F7AB0F252B3C00E184E2 /* ByteArray.h */,
@@ -1450,6 +1472,7 @@
440B7AED0FAF7FCB0073323E /* OwnPtrCommon.h */,
8627E5E911F1281900A313B5 /* PageAllocation.cpp */,
8627E5EA11F1281900A313B5 /* PageAllocation.h */,
+ 8690231412092D5C00630AF9 /* PageReservation.h */,
44DD48520FAEA85000D6B4EB /* PassOwnPtr.h */,
6580F795094070560082C219 /* PassRefPtr.h */,
65D6D87E09B5A32E0002E4D7 /* Platform.h */,
@@ -1555,6 +1578,9 @@
7EF6E0BB0EB7A1EC0079AFAF /* runtime */ = {
isa = PBXGroup;
children = (
+ DD2724671208D1FF00F9ABE7 /* AlignedMemoryAllocator.h */,
+ DDF7ABD211F60ED200108E36 /* GCActivityCallback.h */,
+ DDF7ABD311F60ED200108E36 /* GCActivityCallbackCF.cpp */,
BCF605110E203EF800B9A64D /* ArgList.cpp */,
BCF605120E203EF800B9A64D /* ArgList.h */,
BC257DE50E1F51C50016B6C9 /* Arguments.cpp */,
@@ -1608,6 +1634,8 @@
BC2680C10E16D4E900A06E92 /* FunctionConstructor.h */,
F692A85C0255597D01FF60F7 /* FunctionPrototype.cpp */,
F692A85D0255597D01FF60F7 /* FunctionPrototype.h */,
+ DDE82AD11209D955005C1756 /* GCHandle.cpp */,
+ DDE82AD21209D955005C1756 /* GCHandle.h */,
BC02E9B80E184545000F9297 /* GetterSetter.cpp */,
BC337BDE0E1AF0B80076918A /* GetterSetter.h */,
BC257DED0E1F52ED0016B6C9 /* GlobalEvalFunction.cpp */,
@@ -1822,6 +1850,7 @@
86D3B2BF10156BDE002865E7 /* ARMAssembler.cpp */,
86D3B2C010156BDE002865E7 /* ARMAssembler.h */,
86ADD1430FDDEA980006EEC2 /* ARMv7Assembler.h */,
+ A74DE1CB120B86D600D40D5B /* ARMv7Assembler.cpp */,
9688CB130ED12B4E001D649F /* AssemblerBuffer.h */,
86D3B2C110156BDE002865E7 /* AssemblerBufferWithConstantPool.h */,
86E116B00FE75AC800B512BC /* CodeLocation.h */,
@@ -1895,6 +1924,8 @@
144007570A5370D20005F061 /* JSNodeList.h in Headers */,
144005CC0A5338F80005F061 /* Node.h in Headers */,
1440074A0A536CC20005F061 /* NodeList.h in Headers */,
+ DD2724681208D1FF00F9ABE7 /* AlignedMemoryAllocator.h in Headers */,
+ DDE82AD61209D955005C1756 /* GCHandle.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1923,6 +1954,7 @@
868BFA0A117CEFD100B908B1 /* AtomicStringImpl.h in Headers */,
BC18C3EB0E16F5CD00B34460 /* AVLTree.h in Headers */,
147B83AC0E6DB8C9004775A4 /* BatchedTransitionOptimizer.h in Headers */,
+ DD377CBC12072C18006A2517 /* Bitmap.h in Headers */,
BC18C3EC0E16F5CD00B34460 /* BooleanObject.h in Headers */,
86676D5211FED9BC004B6863 /* BumpPointerAllocator.h in Headers */,
A7A1F7AD0F252B3C00E184E2 /* ByteArray.h in Headers */,
@@ -2088,6 +2120,7 @@
BC18C44A0E16F5CD00B34460 /* OwnPtr.h in Headers */,
4409D8470FAF80A200523B87 /* OwnPtrCommon.h in Headers */,
8627E5EC11F1281900A313B5 /* PageAllocation.h in Headers */,
+ 8690231512092D5C00630AF9 /* PageReservation.h in Headers */,
BC18C44B0E16F5CD00B34460 /* Parser.h in Headers */,
93052C350FB792190048FDC3 /* ParserArena.h in Headers */,
44DD48530FAEA85000D6B4EB /* PassOwnPtr.h in Headers */,
@@ -2193,6 +2226,9 @@
868BFA18117CF19900B908B1 /* WTFString.h in Headers */,
86D08D5411793613006E5ED0 /* WTFThreadData.h in Headers */,
9688CB160ED12B4E001D649F /* X86Assembler.h in Headers */,
+ DDF7ABD411F60ED200108E36 /* GCActivityCallback.h in Headers */,
+ DD2724691208D1FF00F9ABE7 /* AlignedMemoryAllocator.h in Headers */,
+ DDE82AD81209D955005C1756 /* GCHandle.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2287,6 +2323,12 @@
buildConfigurationList = 149C277108902AFE008A9EFC /* Build configuration list for PBXProject "JavaScriptCore" */;
compatibilityVersion = "Xcode 2.4";
hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
mainGroup = 0867D691FE84028FC02AAC07 /* JavaScriptCore */;
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
projectDirPath = "";
@@ -2447,6 +2489,7 @@
141211340A48795800480255 /* minidom.c in Sources */,
1440063F0A53598A0005F061 /* Node.c in Sources */,
1440074B0A536CC20005F061 /* NodeList.c in Sources */,
+ DDE82AD51209D955005C1756 /* GCHandle.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2455,6 +2498,7 @@
buildActionMask = 2147483647;
files = (
1440F6100A4F85670005F061 /* testapi.c in Sources */,
+ DDE82AD41209D955005C1756 /* GCHandle.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2632,7 +2676,10 @@
E1EF79AA0CE97BA60088D500 /* UTF8.cpp in Sources */,
868BFA17117CF19900B908B1 /* WTFString.cpp in Sources */,
86D08D5311793613006E5ED0 /* WTFThreadData.cpp in Sources */,
+ DDF7ABD511F60ED200108E36 /* GCActivityCallbackCF.cpp in Sources */,
8627E5EB11F1281900A313B5 /* PageAllocation.cpp in Sources */,
+ DDE82AD71209D955005C1756 /* GCHandle.cpp in Sources */,
+ A74DE1D0120B875600D40D5B /* ARMv7Assembler.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2641,6 +2688,7 @@
buildActionMask = 2147483647;
files = (
932F5BDD0822A1C700736975 /* jsc.cpp in Sources */,
+ DDE82AD31209D955005C1756 /* GCHandle.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/JavaScriptCore/assembler/ARMAssembler.cpp b/JavaScriptCore/assembler/ARMAssembler.cpp
index 0016540..9442b4b 100644
--- a/JavaScriptCore/assembler/ARMAssembler.cpp
+++ b/JavaScriptCore/assembler/ARMAssembler.cpp
@@ -351,6 +351,8 @@ void* ARMAssembler::executableCopy(ExecutablePool* allocator)
bkpt(0);
char* data = reinterpret_cast<char*>(m_buffer.executableCopy(allocator));
+ if (!data)
+ return 0;
for (Jumps::Iterator iter = m_jumps.begin(); iter != m_jumps.end(); ++iter) {
// The last bit is set if the constant must be placed on constant pool.
diff --git a/WebKit/mac/Storage/WebDatabaseSecurityOrigin.mm b/JavaScriptCore/assembler/ARMv7Assembler.cpp
index a0c3529..233a6f1 100644
--- a/WebKit/mac/Storage/WebDatabaseSecurityOrigin.mm
+++ b/JavaScriptCore/assembler/ARMv7Assembler.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -23,15 +23,16 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#import "WebDatabaseSecurityOrigin.h"
-#import <WebCore/SecurityOrigin.h>
+#include "config.h"
-using namespace WebCore;
+#if ENABLE(ASSEMBLER) && CPU(ARM_THUMB2)
-@implementation WebDatabaseSecurityOrigin
+#include "ARMv7Assembler.h"
-// FIXME: https://bugs.webkit.org/show_bug.cgi?id=40627
-// Proper steps should be taken to have subclass implementations of SecurityOrigin's
-// origin, quota, and setQuota methods.
+namespace JSC {
-@end
+const int ARMv7Assembler::JumpSizes[] = { 0xffffffff, 2 * sizeof(uint16_t), 2 * sizeof(uint16_t), 5 * sizeof(uint16_t) };
+
+}
+
+#endif
diff --git a/JavaScriptCore/assembler/ARMv7Assembler.h b/JavaScriptCore/assembler/ARMv7Assembler.h
index 48eef53..f1b57b8 100644
--- a/JavaScriptCore/assembler/ARMv7Assembler.h
+++ b/JavaScriptCore/assembler/ARMv7Assembler.h
@@ -381,8 +381,8 @@ public:
u.d = d;
- int sign = (u.i >> 63);
- int exponent = (u.i >> 52) & 0x7ff;
+ int sign = static_cast<int>(u.i >> 63);
+ int exponent = static_cast<int>(u.i >> 52) & 0x7ff;
uint64_t mantissa = u.i & 0x000fffffffffffffull;
if ((exponent >= 0x3fc) && (exponent <= 0x403) && !(mantissa & 0x0000ffffffffffffull))
@@ -445,7 +445,6 @@ private:
} m_u;
};
-
class ARMv7Assembler {
public:
~ARMv7Assembler()
@@ -476,14 +475,44 @@ public:
ConditionGT,
ConditionLE,
ConditionAL,
-
+
ConditionCS = ConditionHS,
ConditionCC = ConditionLO,
} Condition;
+ enum JumpType { JumpNoCondition, JumpCondition, JumpFullSize };
+ enum JumpLinkType { LinkInvalid, LinkShortJump, LinkConditionalShortJump, LinkLongJump, JumpTypeCount };
+ static const int JumpSizes[JumpTypeCount];
+ enum { JumpPaddingSize = 5 * sizeof(uint16_t) };
+ class LinkRecord {
+ public:
+ LinkRecord(intptr_t from, intptr_t to, JumpType type, Condition condition)
+ : m_from(from)
+ , m_to(to)
+ , m_type(type)
+ , m_linkType(LinkInvalid)
+ , m_condition(condition)
+ {
+ }
+ intptr_t from() const { return m_from; }
+ void setFrom(intptr_t from) { m_from = from; }
+ intptr_t to() const { return m_to; }
+ JumpType type() const { return m_type; }
+ JumpLinkType linkType() const { return m_linkType; }
+ void setLinkType(JumpLinkType linkType) { ASSERT(m_linkType == LinkInvalid); m_linkType = linkType; }
+ Condition condition() const { return m_condition; }
+ private:
+ intptr_t m_from : 31;
+ intptr_t m_to : 31;
+ JumpType m_type : 2;
+ JumpLinkType m_linkType : 3;
+ Condition m_condition : 16;
+ };
+
class JmpSrc {
friend class ARMv7Assembler;
friend class ARMInstructionFormatter;
+ friend class LinkBuffer;
public:
JmpSrc()
: m_offset(-1)
@@ -491,17 +520,32 @@ public:
}
private:
- JmpSrc(int offset)
+ JmpSrc(int offset, JumpType type)
: m_offset(offset)
+ , m_condition(0xffff)
+ , m_type(type)
{
+ ASSERT(m_type != JumpCondition);
+ }
+
+ JmpSrc(int offset, JumpType type, Condition condition)
+ : m_offset(offset)
+ , m_condition(condition)
+ , m_type(type)
+ {
+ ASSERT(m_type == JumpCondition || m_type == JumpFullSize);
}
int m_offset;
+ Condition m_condition : 16;
+ JumpType m_type : 16;
+
};
class JmpDst {
friend class ARMv7Assembler;
friend class ARMInstructionFormatter;
+ friend class LinkBuffer;
public:
JmpDst()
: m_offset(-1)
@@ -525,17 +569,6 @@ public:
private:
- struct LinkRecord {
- LinkRecord(intptr_t from, intptr_t to)
- : from(from)
- , to(to)
- {
- }
-
- intptr_t from;
- intptr_t to;
- };
-
// ARMv7, Appx-A.6.3
bool BadReg(RegisterID reg)
{
@@ -739,7 +772,7 @@ private:
}
public:
-
+
void add(RegisterID rd, RegisterID rn, ARMThumbImmediate imm)
{
// Rd can only be SP if Rn is also SP.
@@ -878,27 +911,33 @@ public:
ASSERT(!BadReg(rm));
m_formatter.twoWordOp12Reg4FourFours(OP_ASR_reg_T2, rn, FourFours(0xf, rd, 0, rm));
}
-
+
// Only allowed in IT (if then) block if last instruction.
- JmpSrc b()
+ JmpSrc b(JumpType type)
{
m_formatter.twoWordOp16Op16(OP_B_T4a, OP_B_T4b);
- return JmpSrc(m_formatter.size());
+ return JmpSrc(m_formatter.size(), type);
}
// Only allowed in IT (if then) block if last instruction.
- JmpSrc blx(RegisterID rm)
+ JmpSrc blx(RegisterID rm, JumpType type)
{
ASSERT(rm != ARMRegisters::pc);
m_formatter.oneWordOp8RegReg143(OP_BLX, rm, (RegisterID)8);
- return JmpSrc(m_formatter.size());
+ return JmpSrc(m_formatter.size(), type);
}
// Only allowed in IT (if then) block if last instruction.
- JmpSrc bx(RegisterID rm)
+ JmpSrc bx(RegisterID rm, JumpType type, Condition condition)
+ {
+ m_formatter.oneWordOp8RegReg143(OP_BX, rm, (RegisterID)0);
+ return JmpSrc(m_formatter.size(), type, condition);
+ }
+
+ JmpSrc bx(RegisterID rm, JumpType type)
{
m_formatter.oneWordOp8RegReg143(OP_BX, rm, (RegisterID)0);
- return JmpSrc(m_formatter.size());
+ return JmpSrc(m_formatter.size(), type);
}
void bkpt(uint8_t imm=0)
@@ -1617,6 +1656,15 @@ public:
{
return dst.m_offset - src.m_offset;
}
+
+ int executableOffsetFor(int location)
+ {
+ if (!location)
+ return 0;
+ return static_cast<int32_t*>(m_formatter.data())[location / sizeof(int32_t) - 1];
+ }
+
+ int jumpSizeDelta(JumpLinkType jumpLinkType) { return JumpPaddingSize - JumpSizes[jumpLinkType]; }
// Assembler admin methods:
@@ -1625,22 +1673,66 @@ public:
return m_formatter.size();
}
- void* executableCopy(ExecutablePool* allocator)
+ static bool linkRecordSourceComparator(const LinkRecord& a, const LinkRecord& b)
{
- void* copy = m_formatter.executableCopy(allocator);
+ return a.from() < b.from();
+ }
- unsigned jumpCount = m_jumpsToLink.size();
- for (unsigned i = 0; i < jumpCount; ++i) {
- uint16_t* location = reinterpret_cast<uint16_t*>(reinterpret_cast<intptr_t>(copy) + m_jumpsToLink[i].from);
- uint16_t* target = reinterpret_cast<uint16_t*>(reinterpret_cast<intptr_t>(copy) + m_jumpsToLink[i].to);
- linkJumpAbsolute(location, target);
+ JumpLinkType computeJumpType(LinkRecord& record, const uint8_t* from, const uint8_t* to)
+ {
+ if (record.type() >= JumpFullSize) {
+ record.setLinkType(LinkLongJump);
+ return LinkLongJump;
+ }
+ bool mayTriggerErrata = false;
+ const uint16_t* shortJumpLocation = reinterpret_cast<const uint16_t*>(from - (JumpPaddingSize - JumpSizes[LinkShortJump]));
+ if (!canBeShortJump(shortJumpLocation, to, mayTriggerErrata)) {
+ record.setLinkType(LinkLongJump);
+ return LinkLongJump;
}
- m_jumpsToLink.clear();
+ if (mayTriggerErrata) {
+ record.setLinkType(LinkLongJump);
+ return LinkLongJump;
+ }
+ if (record.type() == JumpCondition) {
+ record.setLinkType(LinkConditionalShortJump);
+ return LinkConditionalShortJump;
+ }
+ record.setLinkType(LinkShortJump);
+ return LinkShortJump;
+ }
- ASSERT(copy);
- return copy;
+ void recordLinkOffsets(int32_t regionStart, int32_t regionEnd, int32_t offset)
+ {
+ int32_t ptr = regionStart / sizeof(int32_t);
+ const int32_t end = regionEnd / sizeof(int32_t);
+ int32_t* offsets = static_cast<int32_t*>(m_formatter.data());
+ while (ptr < end)
+ offsets[ptr++] = offset;
+ }
+
+ Vector<LinkRecord>& jumpsToLink()
+ {
+ std::sort(m_jumpsToLink.begin(), m_jumpsToLink.end(), linkRecordSourceComparator);
+ return m_jumpsToLink;
+ }
+
+ void link(LinkRecord& record, uint8_t* from, uint8_t* to)
+ {
+ uint16_t* itttLocation;
+ if (record.linkType() == LinkConditionalShortJump) {
+ itttLocation = reinterpret_cast<uint16_t*>(from - JumpSizes[LinkConditionalShortJump] - 2);
+ itttLocation[0] = ifThenElse(record.condition()) | OP_IT;
+ }
+ ASSERT(record.linkType() != LinkInvalid);
+ if (record.linkType() != LinkLongJump)
+ linkShortJump(reinterpret_cast<uint16_t*>(from), to);
+ else
+ linkLongJump(reinterpret_cast<uint16_t*>(from), to);
}
+ void* unlinkedCode() { return m_formatter.data(); }
+
static unsigned getCallReturnOffset(JmpSrc call)
{
ASSERT(call.m_offset >= 0);
@@ -1659,7 +1751,7 @@ public:
{
ASSERT(to.m_offset != -1);
ASSERT(from.m_offset != -1);
- m_jumpsToLink.append(LinkRecord(from.m_offset, to.m_offset));
+ m_jumpsToLink.append(LinkRecord(from.m_offset, to.m_offset, from.m_type, from.m_condition));
}
static void linkJump(void* code, JmpSrc from, void* to)
@@ -1862,19 +1954,12 @@ private:
return (instruction[0] == OP_NOP_T2a) && (instruction[1] == OP_NOP_T2b);
}
- static void linkJumpAbsolute(uint16_t* instruction, void* target)
+ static bool canBeShortJump(const uint16_t* instruction, const void* target, bool& mayTriggerErrata)
{
- // FIMXE: this should be up in the MacroAssembler layer. :-(
- const uint16_t JUMP_TEMPORARY_REGISTER = ARMRegisters::ip;
-
ASSERT(!(reinterpret_cast<intptr_t>(instruction) & 1));
ASSERT(!(reinterpret_cast<intptr_t>(target) & 1));
-
- ASSERT( (isMOV_imm_T3(instruction - 5) && isMOVT(instruction - 3) && isBX(instruction - 1))
- || (isNOP_T1(instruction - 5) && isNOP_T2(instruction - 4) && isB(instruction - 2)) );
-
+
intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction));
-
// From Cortex-A8 errata:
// If the 32-bit Thumb-2 branch instruction spans two 4KiB regions and
// the target of the branch falls within the first region it is
@@ -1883,11 +1968,50 @@ private:
// to enter a deadlock state.
// The instruction is spanning two pages if it ends at an address ending 0x002
bool spansTwo4K = ((reinterpret_cast<intptr_t>(instruction) & 0xfff) == 0x002);
+ mayTriggerErrata = spansTwo4K;
// The target is in the first page if the jump branch back by [3..0x1002] bytes
bool targetInFirstPage = (relative >= -0x1002) && (relative < -2);
bool wouldTriggerA8Errata = spansTwo4K && targetInFirstPage;
+ return ((relative << 7) >> 7) == relative && !wouldTriggerA8Errata;
+ }
- if (((relative << 7) >> 7) == relative && !wouldTriggerA8Errata) {
+ static void linkLongJump(uint16_t* instruction, void* target)
+ {
+ linkJumpAbsolute(instruction, target);
+ }
+
+ static void linkShortJump(uint16_t* instruction, void* target)
+ {
+ // FIMXE: this should be up in the MacroAssembler layer. :-(
+ ASSERT(!(reinterpret_cast<intptr_t>(instruction) & 1));
+ ASSERT(!(reinterpret_cast<intptr_t>(target) & 1));
+
+ intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction));
+ bool scratch;
+ UNUSED_PARAM(scratch);
+ ASSERT(canBeShortJump(instruction, target, scratch));
+ // ARM encoding for the top two bits below the sign bit is 'peculiar'.
+ if (relative >= 0)
+ relative ^= 0xC00000;
+
+ // All branch offsets should be an even distance.
+ ASSERT(!(relative & 1));
+ instruction[-2] = OP_B_T4a | ((relative & 0x1000000) >> 14) | ((relative & 0x3ff000) >> 12);
+ instruction[-1] = OP_B_T4b | ((relative & 0x800000) >> 10) | ((relative & 0x400000) >> 11) | ((relative & 0xffe) >> 1);
+ }
+
+ static void linkJumpAbsolute(uint16_t* instruction, void* target)
+ {
+ // FIMXE: this should be up in the MacroAssembler layer. :-(
+ ASSERT(!(reinterpret_cast<intptr_t>(instruction) & 1));
+ ASSERT(!(reinterpret_cast<intptr_t>(target) & 1));
+
+ ASSERT((isMOV_imm_T3(instruction - 5) && isMOVT(instruction - 3) && isBX(instruction - 1))
+ || (isNOP_T1(instruction - 5) && isNOP_T2(instruction - 4) && isB(instruction - 2)));
+
+ intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction));
+ bool scratch;
+ if (canBeShortJump(instruction, target, scratch)) {
// ARM encoding for the top two bits below the sign bit is 'peculiar'.
if (relative >= 0)
relative ^= 0xC00000;
@@ -1905,6 +2029,7 @@ private:
instruction[-2] = OP_B_T4a | ((relative & 0x1000000) >> 14) | ((relative & 0x3ff000) >> 12);
instruction[-1] = OP_B_T4b | ((relative & 0x800000) >> 10) | ((relative & 0x400000) >> 11) | ((relative & 0xffe) >> 1);
} else {
+ const uint16_t JUMP_TEMPORARY_REGISTER = ARMRegisters::ip;
ARMThumbImmediate lo16 = ARMThumbImmediate::makeUInt16(static_cast<uint16_t>(reinterpret_cast<uint32_t>(target) + 1));
ARMThumbImmediate hi16 = ARMThumbImmediate::makeUInt16(static_cast<uint16_t>(reinterpret_cast<uint32_t>(target) >> 16));
instruction[-5] = twoWordOp5i6Imm4Reg4EncodedImmFirst(OP_MOV_imm_T3, lo16);
@@ -1919,6 +2044,7 @@ private:
{
return op | (imm.m_value.i << 10) | imm.m_value.imm4;
}
+
static uint16_t twoWordOp5i6Imm4Reg4EncodedImmSecond(uint16_t rd, ARMThumbImmediate imm)
{
return (imm.m_value.imm3 << 12) | (rd << 8) | imm.m_value.imm8;
@@ -2035,6 +2161,7 @@ private:
} m_formatter;
Vector<LinkRecord> m_jumpsToLink;
+ Vector<int32_t> m_offsets;
};
} // namespace JSC
diff --git a/JavaScriptCore/assembler/AbstractMacroAssembler.h b/JavaScriptCore/assembler/AbstractMacroAssembler.h
index aab9089..5db2cb9 100644
--- a/JavaScriptCore/assembler/AbstractMacroAssembler.h
+++ b/JavaScriptCore/assembler/AbstractMacroAssembler.h
@@ -418,12 +418,6 @@ public:
// Section 3: Misc admin methods
-
- static CodePtr trampolineAt(CodeRef ref, Label label)
- {
- return CodePtr(AssemblerType::getRelocatedAddress(ref.m_code.dataLocation(), label.m_label));
- }
-
size_t size()
{
return m_assembler.size();
@@ -479,6 +473,9 @@ public:
{
return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
}
+
+ void beginUninterruptedSequence() { }
+ void endUninterruptedSequence() { }
protected:
AssemblerType m_assembler;
diff --git a/JavaScriptCore/assembler/LinkBuffer.h b/JavaScriptCore/assembler/LinkBuffer.h
index 47cac5a..624d1cc 100644
--- a/JavaScriptCore/assembler/LinkBuffer.h
+++ b/JavaScriptCore/assembler/LinkBuffer.h
@@ -49,30 +49,56 @@ namespace JSC {
//
class LinkBuffer : public Noncopyable {
typedef MacroAssemblerCodeRef CodeRef;
+ typedef MacroAssemblerCodePtr CodePtr;
typedef MacroAssembler::Label Label;
typedef MacroAssembler::Jump Jump;
typedef MacroAssembler::JumpList JumpList;
typedef MacroAssembler::Call Call;
typedef MacroAssembler::DataLabel32 DataLabel32;
typedef MacroAssembler::DataLabelPtr DataLabelPtr;
+ typedef MacroAssembler::JmpDst JmpDst;
+#if ENABLE(BRANCH_COMPACTION)
+ typedef MacroAssembler::LinkRecord LinkRecord;
+ typedef MacroAssembler::JumpLinkType JumpLinkType;
+#endif
+
+ enum LinkBufferState {
+ StateInit,
+ StateChecked,
+ StateFinalized,
+ };
public:
// Note: Initialization sequence is significant, since executablePool is a PassRefPtr.
// First, executablePool is copied into m_executablePool, then the initialization of
// m_code uses m_executablePool, *not* executablePool, since this is no longer valid.
- LinkBuffer(MacroAssembler* masm, PassRefPtr<ExecutablePool> executablePool)
+ // The linkOffset parameter should only be non-null when recompiling for exception info
+ LinkBuffer(MacroAssembler* masm, PassRefPtr<ExecutablePool> executablePool, void* linkOffset)
: m_executablePool(executablePool)
- , m_code(masm->m_assembler.executableCopy(m_executablePool.get()))
- , m_size(masm->m_assembler.size())
+ , m_size(0)
+ , m_code(0)
+ , m_assembler(masm)
#ifndef NDEBUG
- , m_completed(false)
+ , m_state(StateInit)
#endif
{
+ linkCode(linkOffset);
}
~LinkBuffer()
{
- ASSERT(m_completed);
+ ASSERT(m_state == StateFinalized);
+ }
+
+ // After constructing a link buffer, a client must call allocationSuccessful() to check alloc did not return 0.
+ bool allocationSuccessful()
+ {
+#ifndef NDEBUG
+ ASSERT(m_state == StateInit);
+ m_state = StateChecked;
+#endif
+
+ return m_code;
}
// These methods are used to link or set values at code generation time.
@@ -80,28 +106,32 @@ public:
void link(Call call, FunctionPtr function)
{
ASSERT(call.isFlagSet(Call::Linkable));
+ call.m_jmp = applyOffset(call.m_jmp);
MacroAssembler::linkCall(code(), call, function);
}
void link(Jump jump, CodeLocationLabel label)
{
+ jump.m_jmp = applyOffset(jump.m_jmp);
MacroAssembler::linkJump(code(), jump, label);
}
void link(JumpList list, CodeLocationLabel label)
{
for (unsigned i = 0; i < list.m_jumps.size(); ++i)
- MacroAssembler::linkJump(code(), list.m_jumps[i], label);
+ link(list.m_jumps[i], label);
}
void patch(DataLabelPtr label, void* value)
{
- MacroAssembler::linkPointer(code(), label.m_label, value);
+ JmpDst target = applyOffset(label.m_label);
+ MacroAssembler::linkPointer(code(), target, value);
}
void patch(DataLabelPtr label, CodeLocationLabel value)
{
- MacroAssembler::linkPointer(code(), label.m_label, value.executableAddress());
+ JmpDst target = applyOffset(label.m_label);
+ MacroAssembler::linkPointer(code(), target, value.executableAddress());
}
// These methods are used to obtain handles to allow the code to be relinked / repatched later.
@@ -110,35 +140,36 @@ public:
{
ASSERT(call.isFlagSet(Call::Linkable));
ASSERT(!call.isFlagSet(Call::Near));
- return CodeLocationCall(MacroAssembler::getLinkerAddress(code(), call.m_jmp));
+ return CodeLocationCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_jmp)));
}
CodeLocationNearCall locationOfNearCall(Call call)
{
ASSERT(call.isFlagSet(Call::Linkable));
ASSERT(call.isFlagSet(Call::Near));
- return CodeLocationNearCall(MacroAssembler::getLinkerAddress(code(), call.m_jmp));
+ return CodeLocationNearCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_jmp)));
}
CodeLocationLabel locationOf(Label label)
{
- return CodeLocationLabel(MacroAssembler::getLinkerAddress(code(), label.m_label));
+ return CodeLocationLabel(MacroAssembler::getLinkerAddress(code(), applyOffset(label.m_label)));
}
CodeLocationDataLabelPtr locationOf(DataLabelPtr label)
{
- return CodeLocationDataLabelPtr(MacroAssembler::getLinkerAddress(code(), label.m_label));
+ return CodeLocationDataLabelPtr(MacroAssembler::getLinkerAddress(code(), applyOffset(label.m_label)));
}
CodeLocationDataLabel32 locationOf(DataLabel32 label)
{
- return CodeLocationDataLabel32(MacroAssembler::getLinkerAddress(code(), label.m_label));
+ return CodeLocationDataLabel32(MacroAssembler::getLinkerAddress(code(), applyOffset(label.m_label)));
}
// This method obtains the return address of the call, given as an offset from
// the start of the code.
unsigned returnAddressOffset(Call call)
{
+ call.m_jmp = applyOffset(call.m_jmp);
return MacroAssembler::getLinkerCallReturnOffset(call);
}
@@ -152,6 +183,7 @@ public:
return CodeRef(m_code, m_executablePool, m_size);
}
+
CodeLocationLabel finalizeCodeAddendum()
{
performFinalization();
@@ -159,7 +191,20 @@ public:
return CodeLocationLabel(code());
}
+ CodePtr trampolineAt(Label label)
+ {
+ return CodePtr(MacroAssembler::AssemblerType_T::getRelocatedAddress(code(), applyOffset(label.m_label)));
+ }
+
private:
+ template <typename T> T applyOffset(T src)
+ {
+#if ENABLE(BRANCH_COMPACTION)
+ src.m_offset -= m_assembler->executableOffsetFor(src.m_offset);
+#endif
+ return src;
+ }
+
// Keep this private! - the underlying code should only be obtained externally via
// finalizeCode() or finalizeCodeAddendum().
void* code()
@@ -167,11 +212,80 @@ private:
return m_code;
}
+ void linkCode(void* linkOffset)
+ {
+ UNUSED_PARAM(linkOffset);
+ ASSERT(!m_code);
+#if !ENABLE(BRANCH_COMPACTION)
+ m_code = m_assembler->m_assembler.executableCopy(m_executablePool.get());
+ m_size = m_assembler->size();
+#else
+ size_t initialSize = m_assembler->size();
+ m_code = (uint8_t*)m_executablePool->alloc(initialSize);
+ if (!m_code)
+ return;
+ ExecutableAllocator::makeWritable(m_code, m_assembler->size());
+ uint8_t* inData = (uint8_t*)m_assembler->unlinkedCode();
+ uint8_t* outData = reinterpret_cast<uint8_t*>(m_code);
+ const uint8_t* linkBase = linkOffset ? reinterpret_cast<uint8_t*>(linkOffset) : outData;
+ int readPtr = 0;
+ int writePtr = 0;
+ Vector<LinkRecord>& jumpsToLink = m_assembler->jumpsToLink();
+ unsigned jumpCount = jumpsToLink.size();
+ for (unsigned i = 0; i < jumpCount; ++i) {
+ int offset = readPtr - writePtr;
+ ASSERT(!(offset & 1));
+
+ // Copy the instructions from the last jump to the current one.
+ size_t regionSize = jumpsToLink[i].from() - readPtr;
+ memcpy(outData + writePtr, inData + readPtr, regionSize);
+ m_assembler->recordLinkOffsets(readPtr, jumpsToLink[i].from(), offset);
+ readPtr += regionSize;
+ writePtr += regionSize;
+
+ // Calculate absolute address of the jump target, in the case of backwards
+ // branches we need to be precise, forward branches we are pessimistic
+ const uint8_t* target;
+ if (jumpsToLink[i].to() >= jumpsToLink[i].from())
+ target = linkBase + jumpsToLink[i].to() - offset; // Compensate for what we have collapsed so far
+ else
+ target = linkBase + jumpsToLink[i].to() - m_assembler->executableOffsetFor(jumpsToLink[i].to());
+
+ JumpLinkType jumpLinkType = m_assembler->computeJumpType(jumpsToLink[i], linkBase + writePtr, target);
+
+ // Step back in the write stream
+ int32_t delta = m_assembler->jumpSizeDelta(jumpLinkType);
+ if (delta) {
+ writePtr -= delta;
+ m_assembler->recordLinkOffsets(jumpsToLink[i].from() - delta, readPtr, readPtr - writePtr);
+ }
+ jumpsToLink[i].setFrom(writePtr);
+ }
+ // Copy everything after the last jump
+ memcpy(outData + writePtr, inData + readPtr, m_assembler->size() - readPtr);
+ m_assembler->recordLinkOffsets(readPtr, m_assembler->size(), readPtr - writePtr);
+
+ // Actually link everything (don't link if we've be given a linkoffset as it's a
+ // waste of time: linkOffset is used for recompiling to get exception info)
+ if (!linkOffset) {
+ for (unsigned i = 0; i < jumpCount; ++i) {
+ uint8_t* location = outData + jumpsToLink[i].from();
+ uint8_t* target = outData + jumpsToLink[i].to() - m_assembler->executableOffsetFor(jumpsToLink[i].to());
+ m_assembler->link(jumpsToLink[i], location, target);
+ }
+ }
+
+ jumpsToLink.clear();
+ m_size = writePtr + m_assembler->size() - readPtr;
+ m_executablePool->returnLastBytes(initialSize - m_size);
+#endif
+ }
+
void performFinalization()
{
#ifndef NDEBUG
- ASSERT(!m_completed);
- m_completed = true;
+ ASSERT(m_state == StateChecked);
+ m_state = StateFinalized;
#endif
ExecutableAllocator::makeExecutable(code(), m_size);
@@ -179,10 +293,11 @@ private:
}
RefPtr<ExecutablePool> m_executablePool;
- void* m_code;
size_t m_size;
+ void* m_code;
+ MacroAssembler* m_assembler;
#ifndef NDEBUG
- bool m_completed;
+ LinkBufferState m_state;
#endif
};
diff --git a/JavaScriptCore/assembler/MIPSAssembler.h b/JavaScriptCore/assembler/MIPSAssembler.h
index 076d220..a19c7a6 100644
--- a/JavaScriptCore/assembler/MIPSAssembler.h
+++ b/JavaScriptCore/assembler/MIPSAssembler.h
@@ -689,10 +689,8 @@ public:
void* executableCopy(ExecutablePool* allocator)
{
void *result = m_buffer.executableCopy(allocator);
- if (!result)
- return 0;
-
- relocateJumps(m_buffer.data(), result);
+ if (result)
+ relocateJumps(m_buffer.data(), result);
return result;
}
diff --git a/JavaScriptCore/assembler/MacroAssemblerARMv7.h b/JavaScriptCore/assembler/MacroAssemblerARMv7.h
index 64513fd..a1539f2 100644
--- a/JavaScriptCore/assembler/MacroAssemblerARMv7.h
+++ b/JavaScriptCore/assembler/MacroAssemblerARMv7.h
@@ -45,6 +45,23 @@ class MacroAssemblerARMv7 : public AbstractMacroAssembler<ARMv7Assembler> {
inline ARMRegisters::FPSingleRegisterID fpTempRegisterAsSingle() { return ARMRegisters::asSingle(fpTempRegister); }
public:
+ typedef ARMv7Assembler::LinkRecord LinkRecord;
+ typedef ARMv7Assembler::JumpLinkType JumpLinkType;
+
+ MacroAssemblerARMv7()
+ : m_inUninterruptedSequence(false)
+ {
+ }
+
+ void beginUninterruptedSequence() { m_inUninterruptedSequence = true; }
+ void endUninterruptedSequence() { m_inUninterruptedSequence = false; }
+ Vector<LinkRecord>& jumpsToLink() { return m_assembler.jumpsToLink(); }
+ void* unlinkedCode() { return m_assembler.unlinkedCode(); }
+ JumpLinkType computeJumpType(LinkRecord& record, const uint8_t* from, const uint8_t* to) { return m_assembler.computeJumpType(record, from, to); }
+ void recordLinkOffsets(int32_t regionStart, int32_t regionEnd, int32_t offset) {return m_assembler.recordLinkOffsets(regionStart, regionEnd, offset); }
+ int jumpSizeDelta(JumpLinkType jumpLinkType) { return m_assembler.jumpSizeDelta(jumpLinkType); }
+ void link(LinkRecord& record, uint8_t* from, uint8_t* to) { return m_assembler.link(record, from, to); }
+
struct ArmAddress {
enum AddressType {
HasOffset,
@@ -969,14 +986,14 @@ public:
void jump(RegisterID target)
{
- m_assembler.bx(target);
+ m_assembler.bx(target, inUninterruptedSequence() ? ARMv7Assembler::JumpFullSize : ARMv7Assembler::JumpNoCondition);
}
// Address is a memory location containing the address to jump to
void jump(Address address)
{
load32(address, dataTempRegister);
- m_assembler.bx(dataTempRegister);
+ m_assembler.bx(dataTempRegister, inUninterruptedSequence() ? ARMv7Assembler::JumpFullSize : ARMv7Assembler::JumpNoCondition);
}
@@ -1012,7 +1029,7 @@ public:
Jump branchMul32(Condition cond, RegisterID src, RegisterID dest)
{
- ASSERT(cond == Overflow);
+ ASSERT_UNUSED(cond, cond == Overflow);
m_assembler.smull(dest, dataTempRegister, dest, src);
m_assembler.asr(addressTempRegister, dest, 31);
return branch32(NotEqual, addressTempRegister, dataTempRegister);
@@ -1020,7 +1037,7 @@ public:
Jump branchMul32(Condition cond, Imm32 imm, RegisterID src, RegisterID dest)
{
- ASSERT(cond == Overflow);
+ ASSERT_UNUSED(cond, cond == Overflow);
move(imm, dataTempRegister);
m_assembler.smull(dest, dataTempRegister, src, dataTempRegister);
m_assembler.asr(addressTempRegister, dest, 31);
@@ -1059,35 +1076,35 @@ public:
void breakpoint()
{
- m_assembler.bkpt();
+ m_assembler.bkpt(0);
}
Call nearCall()
{
moveFixedWidthEncoding(Imm32(0), dataTempRegister);
- return Call(m_assembler.blx(dataTempRegister), Call::LinkableNear);
+ return Call(m_assembler.blx(dataTempRegister, ARMv7Assembler::JumpFullSize), Call::LinkableNear);
}
Call call()
{
moveFixedWidthEncoding(Imm32(0), dataTempRegister);
- return Call(m_assembler.blx(dataTempRegister), Call::Linkable);
+ return Call(m_assembler.blx(dataTempRegister, ARMv7Assembler::JumpFullSize), Call::Linkable);
}
Call call(RegisterID target)
{
- return Call(m_assembler.blx(target), Call::None);
+ return Call(m_assembler.blx(target, ARMv7Assembler::JumpFullSize), Call::None);
}
Call call(Address address)
{
load32(address, dataTempRegister);
- return Call(m_assembler.blx(dataTempRegister), Call::None);
+ return Call(m_assembler.blx(dataTempRegister, ARMv7Assembler::JumpFullSize), Call::None);
}
void ret()
{
- m_assembler.bx(linkRegister);
+ m_assembler.bx(linkRegister, ARMv7Assembler::JumpFullSize);
}
void set32(Condition cond, RegisterID left, RegisterID right, RegisterID dest)
@@ -1187,7 +1204,7 @@ public:
{
// Like a normal call, but don't link.
moveFixedWidthEncoding(Imm32(0), dataTempRegister);
- return Call(m_assembler.bx(dataTempRegister), Call::Linkable);
+ return Call(m_assembler.bx(dataTempRegister, ARMv7Assembler::JumpFullSize), Call::Linkable);
}
Call makeTailRecursiveCall(Jump oldJump)
@@ -1196,19 +1213,29 @@ public:
return tailRecursiveCall();
}
+
+ int executableOffsetFor(int location)
+ {
+ return m_assembler.executableOffsetFor(location);
+ }
protected:
+ bool inUninterruptedSequence()
+ {
+ return m_inUninterruptedSequence;
+ }
+
ARMv7Assembler::JmpSrc makeJump()
{
moveFixedWidthEncoding(Imm32(0), dataTempRegister);
- return m_assembler.bx(dataTempRegister);
+ return m_assembler.bx(dataTempRegister, inUninterruptedSequence() ? ARMv7Assembler::JumpFullSize : ARMv7Assembler::JumpNoCondition);
}
ARMv7Assembler::JmpSrc makeBranch(ARMv7Assembler::Condition cond)
{
m_assembler.it(cond, true, true);
moveFixedWidthEncoding(Imm32(0), dataTempRegister);
- return m_assembler.bx(dataTempRegister);
+ return m_assembler.bx(dataTempRegister, inUninterruptedSequence() ? ARMv7Assembler::JumpFullSize : ARMv7Assembler::JumpCondition, cond);
}
ARMv7Assembler::JmpSrc makeBranch(Condition cond) { return makeBranch(armV7Condition(cond)); }
ARMv7Assembler::JmpSrc makeBranch(DoubleCondition cond) { return makeBranch(armV7Condition(cond)); }
@@ -1298,6 +1325,8 @@ private:
{
ARMv7Assembler::relinkCall(call.dataLocation(), destination.executableAddress());
}
+
+ bool m_inUninterruptedSequence;
};
} // namespace JSC
diff --git a/JavaScriptCore/assembler/X86Assembler.h b/JavaScriptCore/assembler/X86Assembler.h
index 20d72f5..a1fae0c 100644
--- a/JavaScriptCore/assembler/X86Assembler.h
+++ b/JavaScriptCore/assembler/X86Assembler.h
@@ -1626,9 +1626,7 @@ public:
void* executableCopy(ExecutablePool* allocator)
{
- void* copy = m_formatter.executableCopy(allocator);
- ASSERT(copy);
- return copy;
+ return m_formatter.executableCopy(allocator);
}
private:
diff --git a/JavaScriptCore/bytecode/CodeBlock.cpp b/JavaScriptCore/bytecode/CodeBlock.cpp
index 0e55d6a..9a8c332 100644
--- a/JavaScriptCore/bytecode/CodeBlock.cpp
+++ b/JavaScriptCore/bytecode/CodeBlock.cpp
@@ -1344,8 +1344,9 @@ void CodeBlock::dumpStatistics()
#endif
}
-CodeBlock::CodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, SymbolTable* symTab, bool isConstructor)
- : m_numCalleeRegisters(0)
+CodeBlock::CodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, JSGlobalObject *globalObject, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, SymbolTable* symTab, bool isConstructor)
+ : m_globalObject(globalObject)
+ , m_numCalleeRegisters(0)
, m_numVars(0)
, m_numParameters(0)
, m_isConstructor(isConstructor)
@@ -1457,8 +1458,8 @@ void CodeBlock::derefStructures(Instruction* vPC) const
return;
}
if (vPC[0].u.opcode == interpreter->getOpcode(op_resolve_global) || vPC[0].u.opcode == interpreter->getOpcode(op_resolve_global_dynamic)) {
- if(vPC[4].u.structure)
- vPC[4].u.structure->deref();
+ if (vPC[3].u.structure)
+ vPC[3].u.structure->deref();
return;
}
if ((vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_proto_list))
@@ -1518,6 +1519,7 @@ void CodeBlock::markAggregate(MarkStack& markStack)
m_functionExprs[i]->markAggregate(markStack);
for (size_t i = 0; i < m_functionDecls.size(); ++i)
m_functionDecls[i]->markAggregate(markStack);
+ markStack.append(m_globalObject);
}
bool CodeBlock::reparseForExceptionInfoIfNecessary(CallFrame* callFrame)
diff --git a/JavaScriptCore/bytecode/CodeBlock.h b/JavaScriptCore/bytecode/CodeBlock.h
index 2f22dd0..be12254 100644
--- a/JavaScriptCore/bytecode/CodeBlock.h
+++ b/JavaScriptCore/bytecode/CodeBlock.h
@@ -275,7 +275,10 @@ namespace JSC {
class CodeBlock : public FastAllocBase {
friend class JIT;
protected:
- CodeBlock(ScriptExecutable* ownerExecutable, CodeType, PassRefPtr<SourceProvider>, unsigned sourceOffset, SymbolTable* symbolTable, bool isConstructor);
+ CodeBlock(ScriptExecutable* ownerExecutable, CodeType, JSGlobalObject*, PassRefPtr<SourceProvider>, unsigned sourceOffset, SymbolTable* symbolTable, bool isConstructor);
+
+ JSGlobalObject* m_globalObject;
+
public:
virtual ~CodeBlock();
@@ -483,6 +486,7 @@ namespace JSC {
unsigned addRegExp(RegExp* r) { createRareDataIfNecessary(); unsigned size = m_rareData->m_regexps.size(); m_rareData->m_regexps.append(r); return size; }
RegExp* regexp(int index) const { ASSERT(m_rareData); return m_rareData->m_regexps[index].get(); }
+ JSGlobalObject* globalObject() { return m_globalObject; }
// Jump Tables
@@ -602,9 +606,8 @@ namespace JSC {
class GlobalCodeBlock : public CodeBlock {
public:
- GlobalCodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, JSGlobalObject* globalObject)
- : CodeBlock(ownerExecutable, codeType, sourceProvider, sourceOffset, &m_unsharedSymbolTable, false)
- , m_globalObject(globalObject)
+ GlobalCodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset)
+ : CodeBlock(ownerExecutable, codeType, globalObject, sourceProvider, sourceOffset, &m_unsharedSymbolTable, false)
{
m_globalObject->codeBlocks().add(this);
}
@@ -618,14 +621,13 @@ namespace JSC {
void clearGlobalObject() { m_globalObject = 0; }
private:
- JSGlobalObject* m_globalObject; // For program and eval nodes, the global object that marks the constant pool.
SymbolTable m_unsharedSymbolTable;
};
class ProgramCodeBlock : public GlobalCodeBlock {
public:
ProgramCodeBlock(ProgramExecutable* ownerExecutable, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider)
- : GlobalCodeBlock(ownerExecutable, codeType, sourceProvider, 0, globalObject)
+ : GlobalCodeBlock(ownerExecutable, codeType, globalObject, sourceProvider, 0)
{
}
};
@@ -633,7 +635,7 @@ namespace JSC {
class EvalCodeBlock : public GlobalCodeBlock {
public:
EvalCodeBlock(EvalExecutable* ownerExecutable, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, int baseScopeDepth)
- : GlobalCodeBlock(ownerExecutable, EvalCode, sourceProvider, 0, globalObject)
+ : GlobalCodeBlock(ownerExecutable, EvalCode, globalObject, sourceProvider, 0)
, m_baseScopeDepth(baseScopeDepth)
{
}
@@ -659,8 +661,8 @@ namespace JSC {
// as we need to initialise the CodeBlock before we could initialise any RefPtr to hold the shared
// symbol table, so we just pass as a raw pointer with a ref count of 1. We then manually deref
// in the destructor.
- FunctionCodeBlock(FunctionExecutable* ownerExecutable, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, bool isConstructor)
- : CodeBlock(ownerExecutable, codeType, sourceProvider, sourceOffset, SharedSymbolTable::create().releaseRef(), isConstructor)
+ FunctionCodeBlock(FunctionExecutable* ownerExecutable, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, bool isConstructor)
+ : CodeBlock(ownerExecutable, codeType, globalObject, sourceProvider, sourceOffset, SharedSymbolTable::create().releaseRef(), isConstructor)
{
}
~FunctionCodeBlock()
diff --git a/JavaScriptCore/bytecode/Opcode.h b/JavaScriptCore/bytecode/Opcode.h
index ca5feeb..4563ebe 100644
--- a/JavaScriptCore/bytecode/Opcode.h
+++ b/JavaScriptCore/bytecode/Opcode.h
@@ -93,12 +93,12 @@ namespace JSC {
\
macro(op_resolve, 3) \
macro(op_resolve_skip, 4) \
- macro(op_resolve_global, 6) \
- macro(op_resolve_global_dynamic, 7) \
+ macro(op_resolve_global, 5) \
+ macro(op_resolve_global_dynamic, 6) \
macro(op_get_scoped_var, 4) \
macro(op_put_scoped_var, 4) \
- macro(op_get_global_var, 4) \
- macro(op_put_global_var, 4) \
+ macro(op_get_global_var, 3) \
+ macro(op_put_global_var, 3) \
macro(op_resolve_base, 3) \
macro(op_resolve_with_base, 4) \
macro(op_get_by_id, 8) \
@@ -254,6 +254,17 @@ namespace JSC {
#endif
+ inline size_t opcodeLength(OpcodeID opcode)
+ {
+ switch (opcode) {
+#define OPCODE_ID_LENGTHS(id, length) case id: return OPCODE_LENGTH(id);
+ FOR_EACH_OPCODE_ID(OPCODE_ID_LENGTHS)
+#undef OPCODE_ID_LENGTHS
+ }
+ ASSERT_NOT_REACHED();
+ return 0;
+ }
+
} // namespace JSC
#endif // Opcode_h
diff --git a/JavaScriptCore/bytecode/StructureStubInfo.h b/JavaScriptCore/bytecode/StructureStubInfo.h
index 8e2c489..8578171 100644
--- a/JavaScriptCore/bytecode/StructureStubInfo.h
+++ b/JavaScriptCore/bytecode/StructureStubInfo.h
@@ -66,7 +66,7 @@ namespace JSC {
baseObjectStructure->ref();
}
- void initGetByIdProto(Structure* baseObjectStructure, Structure* prototypeStructure)
+ void initGetByIdProto(Structure* baseObjectStructure, Structure* prototypeStructure, CodeLocationLabel routine)
{
accessType = access_get_by_id_proto;
@@ -75,9 +75,11 @@ namespace JSC {
u.getByIdProto.prototypeStructure = prototypeStructure;
prototypeStructure->ref();
+
+ stubRoutine = routine;
}
- void initGetByIdChain(Structure* baseObjectStructure, StructureChain* chain)
+ void initGetByIdChain(Structure* baseObjectStructure, StructureChain* chain, CodeLocationLabel routine)
{
accessType = access_get_by_id_chain;
@@ -86,27 +88,33 @@ namespace JSC {
u.getByIdChain.chain = chain;
chain->ref();
+
+ stubRoutine = routine;
}
- void initGetByIdSelfList(PolymorphicAccessStructureList* structureList, int listSize)
+ void initGetByIdSelfList(PolymorphicAccessStructureList* structureList)
{
accessType = access_get_by_id_self_list;
u.getByIdProtoList.structureList = structureList;
- u.getByIdProtoList.listSize = listSize;
+ u.getByIdProtoList.listSize = 1;
+
+ stubRoutine = CodeLocationLabel();
}
- void initGetByIdProtoList(PolymorphicAccessStructureList* structureList, int listSize)
+ void initGetByIdProtoList(PolymorphicAccessStructureList* structureList)
{
accessType = access_get_by_id_proto_list;
u.getByIdProtoList.structureList = structureList;
- u.getByIdProtoList.listSize = listSize;
+ u.getByIdProtoList.listSize = 1;
+
+ stubRoutine = CodeLocationLabel();
}
// PutById*
- void initPutByIdTransition(Structure* previousStructure, Structure* structure, StructureChain* chain)
+ void initPutByIdTransition(Structure* previousStructure, Structure* structure, StructureChain* chain, CodeLocationLabel routine)
{
accessType = access_put_by_id_transition;
@@ -118,6 +126,8 @@ namespace JSC {
u.putByIdTransition.chain = chain;
chain->ref();
+
+ stubRoutine = routine;
}
void initPutByIdReplace(Structure* baseObjectStructure)
diff --git a/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp b/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
index a3fa937..34011c1 100644
--- a/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
+++ b/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
@@ -216,6 +216,9 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* d
, m_globalConstantIndex(0)
, m_globalData(&scopeChain.globalObject()->globalExec()->globalData())
, m_lastOpcodeID(op_end)
+#ifndef NDEBUG
+ , m_lastOpcodePosition(0)
+#endif
, m_emitNodeDepth(0)
, m_usesExceptions(false)
, m_regeneratingForExceptionInfo(false)
@@ -588,6 +591,11 @@ PassRefPtr<Label> BytecodeGenerator::emitLabel(Label* l0)
void BytecodeGenerator::emitOpcode(OpcodeID opcodeID)
{
+#ifndef NDEBUG
+ size_t opcodePosition = instructions().size();
+ ASSERT(opcodePosition - m_lastOpcodePosition == opcodeLength(m_lastOpcodeID) || m_lastOpcodeID == op_end);
+ m_lastOpcodePosition = opcodePosition;
+#endif
instructions().append(globalData()->interpreter->getOpcode(opcodeID));
m_lastOpcodeID = opcodeID;
}
@@ -613,12 +621,14 @@ void ALWAYS_INLINE BytecodeGenerator::rewindBinaryOp()
{
ASSERT(instructions().size() >= 4);
instructions().shrink(instructions().size() - 4);
+ m_lastOpcodeID = op_end;
}
void ALWAYS_INLINE BytecodeGenerator::rewindUnaryOp()
{
ASSERT(instructions().size() >= 3);
instructions().shrink(instructions().size() - 3);
+ m_lastOpcodeID = op_end;
}
PassRefPtr<Label> BytecodeGenerator::emitJump(Label* target)
@@ -1106,7 +1116,6 @@ RegisterID* BytecodeGenerator::emitResolve(RegisterID* dst, const Identifier& pr
#endif
emitOpcode(requiresDynamicChecks ? op_resolve_global_dynamic : op_resolve_global);
instructions().append(dst->index());
- instructions().append(globalObject);
instructions().append(addConstant(property));
instructions().append(0);
instructions().append(0);
@@ -1142,7 +1151,6 @@ RegisterID* BytecodeGenerator::emitGetScopedVar(RegisterID* dst, size_t depth, i
if (globalObject) {
emitOpcode(op_get_global_var);
instructions().append(dst->index());
- instructions().append(asCell(globalObject));
instructions().append(index);
return dst;
}
@@ -1158,7 +1166,6 @@ RegisterID* BytecodeGenerator::emitPutScopedVar(size_t depth, int index, Registe
{
if (globalObject) {
emitOpcode(op_put_global_var);
- instructions().append(asCell(globalObject));
instructions().append(index);
instructions().append(value->index());
return value;
@@ -1229,7 +1236,6 @@ RegisterID* BytecodeGenerator::emitResolveWithBase(RegisterID* baseDst, Register
#endif
emitOpcode(requiresDynamicChecks ? op_resolve_global_dynamic : op_resolve_global);
instructions().append(propDst->index());
- instructions().append(globalObject);
instructions().append(addConstant(property));
instructions().append(0);
instructions().append(0);
diff --git a/JavaScriptCore/bytecompiler/BytecodeGenerator.h b/JavaScriptCore/bytecompiler/BytecodeGenerator.h
index ad0ae4e..f855d12 100644
--- a/JavaScriptCore/bytecompiler/BytecodeGenerator.h
+++ b/JavaScriptCore/bytecompiler/BytecodeGenerator.h
@@ -560,6 +560,9 @@ namespace JSC {
JSGlobalData* m_globalData;
OpcodeID m_lastOpcodeID;
+#ifndef NDEBUG
+ size_t m_lastOpcodePosition;
+#endif
unsigned m_emitNodeDepth;
diff --git a/JavaScriptCore/create_jit_stubs b/JavaScriptCore/create_jit_stubs
index 9bb9ee5..4950bfc 100644
--- a/JavaScriptCore/create_jit_stubs
+++ b/JavaScriptCore/create_jit_stubs
@@ -25,16 +25,17 @@ use Getopt::Long;
my $usage = basename($0) . " --prefix prefix [--offset offset] file";
my $rtype_template = quotemeta("#rtype#");
-my $offset_template = quotemeta("#offset#");
+my $offset_template = quotemeta(" THUNK_RETURN_ADDRESS_OFFSET");
my $op_template = quotemeta("#op#");
my $prefix;
+my $offset_is_set = 0;
my $offset = 32;
my $file;
my $getOptionsResult = GetOptions(
'prefix=s' => \$prefix,
- 'offset=i' => \$offset
+ 'offset=i' => sub { $offset_is_set = 1; $offset = $_[1]; }
);
$file = $ARGV[0];
@@ -54,7 +55,9 @@ open(IN, $file) or die "No such file $file";
while ( $_ = <IN> ) {
if ( /^$prefix\_BEGIN\((.*)\)/ ) {
$stub = $1;
- $stub =~ s/$offset_template/$offset/g;
+ if ($offset_is_set) {
+ $stub =~ s/$offset_template/$offset/g;
+ }
print $stub . "\n";
}
if ( /^$prefix\((.*)\)/ ) {
@@ -67,7 +70,9 @@ while ( $_ = <IN> ) {
$stub = $stub_template;
$rtype = quotemeta($1);
$op = quotemeta($2);
- $stub =~ s/$offset_template/$offset/g;
+ if ($offset_is_set) {
+ $stub =~ s/$offset_template/$offset/g;
+ }
$stub =~ s/$rtype_template/$rtype/g;
$stub =~ s/$op_template/$op/g;
$stub =~ s/\\\*/\*/g;
diff --git a/JavaScriptCore/interpreter/Interpreter.cpp b/JavaScriptCore/interpreter/Interpreter.cpp
index 2342ed6..e7ae540 100644
--- a/JavaScriptCore/interpreter/Interpreter.cpp
+++ b/JavaScriptCore/interpreter/Interpreter.cpp
@@ -144,28 +144,28 @@ NEVER_INLINE bool Interpreter::resolveSkip(CallFrame* callFrame, Instruction* vP
NEVER_INLINE bool Interpreter::resolveGlobal(CallFrame* callFrame, Instruction* vPC, JSValue& exceptionValue)
{
int dst = vPC[1].u.operand;
- JSGlobalObject* globalObject = static_cast<JSGlobalObject*>(vPC[2].u.jsCell);
+ CodeBlock* codeBlock = callFrame->codeBlock();
+ JSGlobalObject* globalObject = codeBlock->globalObject();
ASSERT(globalObject->isGlobalObject());
- int property = vPC[3].u.operand;
- Structure* structure = vPC[4].u.structure;
- int offset = vPC[5].u.operand;
+ int property = vPC[2].u.operand;
+ Structure* structure = vPC[3].u.structure;
+ int offset = vPC[4].u.operand;
if (structure == globalObject->structure()) {
callFrame->r(dst) = JSValue(globalObject->getDirectOffset(offset));
return true;
}
- CodeBlock* codeBlock = callFrame->codeBlock();
Identifier& ident = codeBlock->identifier(property);
PropertySlot slot(globalObject);
if (globalObject->getPropertySlot(callFrame, ident, slot)) {
JSValue result = slot.getValue(callFrame, ident);
if (slot.isCacheableValue() && !globalObject->structure()->isUncacheableDictionary() && slot.slotBase() == globalObject) {
- if (vPC[4].u.structure)
- vPC[4].u.structure->deref();
+ if (vPC[3].u.structure)
+ vPC[3].u.structure->deref();
globalObject->structure()->ref();
- vPC[4] = globalObject->structure();
- vPC[5] = slot.cachedOffset();
+ vPC[3] = globalObject->structure();
+ vPC[4] = slot.cachedOffset();
callFrame->r(dst) = JSValue(result);
return true;
}
@@ -184,13 +184,13 @@ NEVER_INLINE bool Interpreter::resolveGlobal(CallFrame* callFrame, Instruction*
NEVER_INLINE bool Interpreter::resolveGlobalDynamic(CallFrame* callFrame, Instruction* vPC, JSValue& exceptionValue)
{
int dst = vPC[1].u.operand;
- JSGlobalObject* globalObject = static_cast<JSGlobalObject*>(vPC[2].u.jsCell);
- ASSERT(globalObject->isGlobalObject());
- int property = vPC[3].u.operand;
- Structure* structure = vPC[4].u.structure;
- int offset = vPC[5].u.operand;
CodeBlock* codeBlock = callFrame->codeBlock();
- int skip = vPC[6].u.operand;
+ JSGlobalObject* globalObject = codeBlock->globalObject();
+ ASSERT(globalObject->isGlobalObject());
+ int property = vPC[2].u.operand;
+ Structure* structure = vPC[3].u.structure;
+ int offset = vPC[4].u.operand;
+ int skip = vPC[5].u.operand;
ScopeChainNode* scopeChain = callFrame->scopeChain();
ScopeChainIterator iter = scopeChain->begin();
@@ -231,11 +231,11 @@ NEVER_INLINE bool Interpreter::resolveGlobalDynamic(CallFrame* callFrame, Instru
if (globalObject->getPropertySlot(callFrame, ident, slot)) {
JSValue result = slot.getValue(callFrame, ident);
if (slot.isCacheableValue() && !globalObject->structure()->isUncacheableDictionary() && slot.slotBase() == globalObject) {
- if (vPC[4].u.structure)
- vPC[4].u.structure->deref();
+ if (vPC[3].u.structure)
+ vPC[3].u.structure->deref();
globalObject->structure()->ref();
- vPC[4] = globalObject->structure();
- vPC[5] = slot.cachedOffset();
+ vPC[3] = globalObject->structure();
+ vPC[4] = slot.cachedOffset();
callFrame->r(dst) = JSValue(result);
return true;
}
@@ -2284,9 +2284,9 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
Gets the global var at global slot index and places it in register dst.
*/
int dst = vPC[1].u.operand;
- JSGlobalObject* scope = static_cast<JSGlobalObject*>(vPC[2].u.jsCell);
+ JSGlobalObject* scope = codeBlock->globalObject();
ASSERT(scope->isGlobalObject());
- int index = vPC[3].u.operand;
+ int index = vPC[2].u.operand;
callFrame->r(dst) = scope->registerAt(index);
vPC += OPCODE_LENGTH(op_get_global_var);
@@ -2297,10 +2297,10 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
Puts value into global slot index.
*/
- JSGlobalObject* scope = static_cast<JSGlobalObject*>(vPC[1].u.jsCell);
+ JSGlobalObject* scope = codeBlock->globalObject();
ASSERT(scope->isGlobalObject());
- int index = vPC[2].u.operand;
- int value = vPC[3].u.operand;
+ int index = vPC[1].u.operand;
+ int value = vPC[2].u.operand;
scope->registerAt(index) = JSValue(callFrame->r(value).jsValue());
vPC += OPCODE_LENGTH(op_put_global_var);
diff --git a/JavaScriptCore/interpreter/RegisterFile.cpp b/JavaScriptCore/interpreter/RegisterFile.cpp
index 63ea5b3..4f5d1d5 100644
--- a/JavaScriptCore/interpreter/RegisterFile.cpp
+++ b/JavaScriptCore/interpreter/RegisterFile.cpp
@@ -35,26 +35,15 @@ namespace JSC {
RegisterFile::~RegisterFile()
{
-#if HAVE(MMAP)
- munmap(m_buffer, ((m_max - m_start) + m_maxGlobals) * sizeof(Register));
-#elif HAVE(VIRTUALALLOC)
-#if OS(WINCE)
- VirtualFree(m_buffer, DWORD(m_commitEnd) - DWORD(m_buffer), MEM_DECOMMIT);
-#endif
- VirtualFree(m_buffer, 0, MEM_RELEASE);
-#else
- fastFree(m_buffer);
-#endif
+ void* base = m_reservation.base();
+ m_reservation.decommit(base, reinterpret_cast<intptr_t>(m_commitEnd) - reinterpret_cast<intptr_t>(base));
+ m_reservation.deallocate();
}
void RegisterFile::releaseExcessCapacity()
{
-#if HAVE(MMAP) && HAVE(MADV_FREE) && !HAVE(VIRTUALALLOC)
- while (madvise(m_start, (m_max - m_start) * sizeof(Register), MADV_FREE) == -1 && errno == EAGAIN) { }
-#elif HAVE(VIRTUALALLOC)
- VirtualFree(m_start, (m_max - m_start) * sizeof(Register), MEM_DECOMMIT);
+ m_reservation.decommit(m_start, reinterpret_cast<intptr_t>(m_commitEnd) - reinterpret_cast<intptr_t>(m_start));
m_commitEnd = m_start;
-#endif
m_maxUsed = m_start;
}
diff --git a/JavaScriptCore/interpreter/RegisterFile.h b/JavaScriptCore/interpreter/RegisterFile.h
index e9b8204..6c4e969 100644
--- a/JavaScriptCore/interpreter/RegisterFile.h
+++ b/JavaScriptCore/interpreter/RegisterFile.h
@@ -35,13 +35,9 @@
#include "WeakGCPtr.h"
#include <stdio.h>
#include <wtf/Noncopyable.h>
+#include <wtf/PageReservation.h>
#include <wtf/VMTags.h>
-#if HAVE(MMAP)
-#include <errno.h>
-#include <sys/mman.h>
-#endif
-
namespace JSC {
/*
@@ -109,9 +105,9 @@ namespace JSC {
enum { ProgramCodeThisRegister = -CallFrameHeaderSize - 1 };
- static const size_t defaultCapacity = 524288;
- static const size_t defaultMaxGlobals = 8192;
- static const size_t commitSize = 1 << 14;
+ static const size_t defaultCapacity = 512 * 1024;
+ static const size_t defaultMaxGlobals = 8 * 1024;
+ static const size_t commitSize = 16 * 1024;
// Allow 8k of excess registers before we start trying to reap the registerfile
static const ptrdiff_t maxExcessCapacity = 8 * 1024;
@@ -139,81 +135,39 @@ namespace JSC {
void markCallFrames(MarkStack& markStack, Heap* heap) { heap->markConservatively(markStack, m_start, m_end); }
private:
+ void checkAllocatedOkay(bool okay);
+
void releaseExcessCapacity();
size_t m_numGlobals;
const size_t m_maxGlobals;
Register* m_start;
Register* m_end;
Register* m_max;
- Register* m_buffer;
Register* m_maxUsed;
-
-#if HAVE(VIRTUALALLOC)
Register* m_commitEnd;
-#endif
+ PageReservation m_reservation;
WeakGCPtr<JSGlobalObject> m_globalObject; // The global object whose vars are currently stored in the register file.
};
- // FIXME: Add a generic getpagesize() to WTF, then move this function to WTF as well.
- inline bool isPageAligned(size_t size) { return size != 0 && size % (8 * 1024) == 0; }
-
inline RegisterFile::RegisterFile(size_t capacity, size_t maxGlobals)
: m_numGlobals(0)
, m_maxGlobals(maxGlobals)
, m_start(0)
, m_end(0)
, m_max(0)
- , m_buffer(0)
{
- // Verify that our values will play nice with mmap and VirtualAlloc.
- ASSERT(isPageAligned(maxGlobals));
- ASSERT(isPageAligned(capacity));
+ ASSERT(maxGlobals && PageAllocation::isPageAligned(maxGlobals));
+ ASSERT(capacity && PageAllocation::isPageAligned(capacity));
size_t bufferLength = (capacity + maxGlobals) * sizeof(Register);
- #if HAVE(MMAP)
- m_buffer = static_cast<Register*>(mmap(0, bufferLength, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, VM_TAG_FOR_REGISTERFILE_MEMORY, 0));
- if (m_buffer == MAP_FAILED) {
-#if OS(WINCE)
- fprintf(stderr, "Could not allocate register file: %d\n", GetLastError());
-#else
- fprintf(stderr, "Could not allocate register file: %d\n", errno);
-#endif
- CRASH();
- }
- #elif HAVE(VIRTUALALLOC)
- m_buffer = static_cast<Register*>(VirtualAlloc(0, roundUpAllocationSize(bufferLength, commitSize), MEM_RESERVE, PAGE_READWRITE));
- if (!m_buffer) {
-#if OS(WINCE)
- fprintf(stderr, "Could not allocate register file: %d\n", GetLastError());
-#else
- fprintf(stderr, "Could not allocate register file: %d\n", errno);
-#endif
- CRASH();
- }
+ m_reservation = PageReservation::reserve(roundUpAllocationSize(bufferLength, commitSize), PageAllocation::JSVMStackPages);
+ void* base = m_reservation.base();
+ checkAllocatedOkay(base);
size_t committedSize = roundUpAllocationSize(maxGlobals * sizeof(Register), commitSize);
- void* commitCheck = VirtualAlloc(m_buffer, committedSize, MEM_COMMIT, PAGE_READWRITE);
- if (commitCheck != m_buffer) {
-#if OS(WINCE)
- fprintf(stderr, "Could not allocate register file: %d\n", GetLastError());
-#else
- fprintf(stderr, "Could not allocate register file: %d\n", errno);
-#endif
- CRASH();
- }
- m_commitEnd = reinterpret_cast<Register*>(reinterpret_cast<char*>(m_buffer) + committedSize);
- #else
- /*
- * If neither MMAP nor VIRTUALALLOC are available - use fastMalloc instead.
- *
- * Please note that this is the fallback case, which is non-optimal.
- * If any possible, the platform should provide for a better memory
- * allocation mechanism that allows for "lazy commit" or dynamic
- * pre-allocation, similar to mmap or VirtualAlloc, to avoid waste of memory.
- */
- m_buffer = static_cast<Register*>(fastMalloc(bufferLength));
- #endif
- m_start = m_buffer + maxGlobals;
+ checkAllocatedOkay(m_reservation.commit(base, committedSize));
+ m_commitEnd = reinterpret_cast<Register*>(reinterpret_cast<char*>(base) + committedSize);
+ m_start = static_cast<Register*>(base) + maxGlobals;
m_end = m_start;
m_maxUsed = m_end;
m_max = m_start + capacity;
@@ -236,20 +190,11 @@ namespace JSC {
if (newEnd > m_max)
return false;
-#if !HAVE(MMAP) && HAVE(VIRTUALALLOC)
if (newEnd > m_commitEnd) {
size_t size = roundUpAllocationSize(reinterpret_cast<char*>(newEnd) - reinterpret_cast<char*>(m_commitEnd), commitSize);
- if (!VirtualAlloc(m_commitEnd, size, MEM_COMMIT, PAGE_READWRITE)) {
-#if OS(WINCE)
- fprintf(stderr, "Could not allocate register file: %d\n", GetLastError());
-#else
- fprintf(stderr, "Could not allocate register file: %d\n", errno);
-#endif
- CRASH();
- }
+ checkAllocatedOkay(m_reservation.commit(m_commitEnd, size));
m_commitEnd = reinterpret_cast<Register*>(reinterpret_cast<char*>(m_commitEnd) + size);
}
-#endif
if (newEnd > m_maxUsed)
m_maxUsed = newEnd;
@@ -258,6 +203,16 @@ namespace JSC {
return true;
}
+ inline void RegisterFile::checkAllocatedOkay(bool okay)
+ {
+ if (!okay) {
+#ifndef NDEBUG
+ fprintf(stderr, "Could not allocate register file: %d\n", PageReservation::lastError());
+#endif
+ CRASH();
+ }
+ }
+
} // namespace JSC
#endif // RegisterFile_h
diff --git a/JavaScriptCore/jit/ExecutableAllocator.cpp b/JavaScriptCore/jit/ExecutableAllocator.cpp
index 86c24fd..e3525f5 100644
--- a/JavaScriptCore/jit/ExecutableAllocator.cpp
+++ b/JavaScriptCore/jit/ExecutableAllocator.cpp
@@ -45,15 +45,13 @@ void ExecutableAllocator::intializePageSize()
// for moving memory model limitation
ExecutableAllocator::pageSize = 256 * 1024;
#else
- ExecutableAllocator::pageSize = PageAllocation::pagesize();
+ ExecutableAllocator::pageSize = PageAllocation::pageSize();
#endif
}
ExecutablePool::Allocation ExecutablePool::systemAlloc(size_t size)
{
PageAllocation allocation = PageAllocation::allocate(size, PageAllocation::JSJITCodePages, EXECUTABLE_POOL_WRITABLE, true);
- if (!allocation)
- CRASH();
return allocation;
}
diff --git a/JavaScriptCore/jit/ExecutableAllocator.h b/JavaScriptCore/jit/ExecutableAllocator.h
index f8e991f..b60d591 100644
--- a/JavaScriptCore/jit/ExecutableAllocator.h
+++ b/JavaScriptCore/jit/ExecutableAllocator.h
@@ -34,7 +34,7 @@
#include <wtf/UnusedParam.h>
#include <wtf/Vector.h>
-#if OS(IPHONE_OS)
+#if OS(IOS)
#include <libkern/OSCacheControl.h>
#include <sys/mman.h>
#endif
@@ -85,15 +85,29 @@ inline size_t roundUpAllocationSize(size_t request, size_t granularity)
namespace JSC {
class ExecutablePool : public RefCounted<ExecutablePool> {
-private:
+public:
+#if ENABLE(EXECUTABLE_ALLOCATOR_DEMAND)
typedef PageAllocation Allocation;
+#else
+ class Allocation {
+ public:
+ Allocation(void* base, size_t size)
+ : m_base(base)
+ , m_size(size)
+ {
+ }
+ void* base() { return m_base; }
+ size_t size() { return m_size; }
+ bool operator!() const { return !m_base; }
+
+ private:
+ void* m_base;
+ size_t m_size;
+ };
+#endif
typedef Vector<Allocation, 2> AllocationList;
-public:
- static PassRefPtr<ExecutablePool> create(size_t n)
- {
- return adoptRef(new ExecutablePool(n));
- }
+ static PassRefPtr<ExecutablePool> create(size_t n);
void* alloc(size_t n)
{
@@ -114,6 +128,11 @@ public:
return poolAllocate(n);
}
+ void returnLastBytes(size_t count)
+ {
+ m_freePtr -= count;
+ }
+
~ExecutablePool()
{
AllocationList::iterator end = m_pools.end();
@@ -127,7 +146,7 @@ private:
static Allocation systemAlloc(size_t n);
static void systemRelease(Allocation& alloc);
- ExecutablePool(size_t n);
+ ExecutablePool(Allocation&);
void* poolAllocate(size_t n);
@@ -145,8 +164,11 @@ public:
{
if (!pageSize)
intializePageSize();
- if (isValid())
+ if (isValid()) {
m_smallAllocationPool = ExecutablePool::create(JIT_ALLOCATOR_LARGE_ALLOC_SIZE);
+ if (!m_smallAllocationPool)
+ CRASH();
+ }
#if !ENABLE(INTERPRETER)
else
CRASH();
@@ -163,7 +185,7 @@ public:
return m_smallAllocationPool;
// If the request is large, we just provide a unshared allocator
- if (n > JIT_ALLOCATOR_LARGE_ALLOC_SIZE)
+ if (n > JIT_ALLOCATOR_LARGE_ALLOC_SIZE)
return ExecutablePool::create(n);
// Create a new allocator
@@ -200,7 +222,7 @@ public:
static void cacheFlush(void* code, size_t size)
{
#if COMPILER(GCC) && GCC_VERSION_AT_LEAST(4,3,0)
-#if WTF_MIPS_ISA_REV(2) && GCC_VERSION_AT_LEAST(4,4,3)
+#if WTF_MIPS_ISA_REV(2) && !GCC_VERSION_AT_LEAST(4,4,3)
int lineSize;
asm("rdhwr %0, $1" : "=r" (lineSize));
//
@@ -222,7 +244,7 @@ public:
_flush_cache(reinterpret_cast<char*>(code), size, BCACHE);
#endif
}
-#elif CPU(ARM_THUMB2) && OS(IPHONE_OS)
+#elif CPU(ARM_THUMB2) && OS(IOS)
static void cacheFlush(void* code, size_t size)
{
sys_dcache_flush(code, size);
@@ -286,15 +308,20 @@ private:
static void intializePageSize();
};
-inline ExecutablePool::ExecutablePool(size_t n)
+inline PassRefPtr<ExecutablePool> ExecutablePool::create(size_t n)
+ {
+ Allocation mem = systemAlloc(roundUpAllocationSize(n, JIT_ALLOCATOR_PAGE_SIZE));
+ if (!mem)
+ return 0;
+ return adoptRef(new ExecutablePool(mem));
+ }
+
+inline ExecutablePool::ExecutablePool(Allocation& mem)
{
- size_t allocSize = roundUpAllocationSize(n, JIT_ALLOCATOR_PAGE_SIZE);
- Allocation mem = systemAlloc(allocSize);
+ ASSERT(!!mem);
m_pools.append(mem);
m_freePtr = static_cast<char*>(mem.base());
- if (!m_freePtr)
- CRASH(); // Failed to allocate
- m_end = m_freePtr + allocSize;
+ m_end = m_freePtr + mem.size();
}
inline void* ExecutablePool::poolAllocate(size_t n)
@@ -303,8 +330,8 @@ inline void* ExecutablePool::poolAllocate(size_t n)
Allocation result = systemAlloc(allocSize);
if (!result.base())
- CRASH(); // Failed to allocate
-
+ return 0; // Failed to allocate
+
ASSERT(m_end >= m_freePtr);
if ((allocSize - n) > static_cast<size_t>(m_end - m_freePtr)) {
// Replace allocation pool
diff --git a/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp b/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
index 421c34b..f05e919 100644
--- a/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
+++ b/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
@@ -35,6 +35,7 @@
#include <sys/mman.h>
#include <unistd.h>
#include <wtf/AVLTree.h>
+#include <wtf/PageReservation.h>
#include <wtf/VMTags.h>
#if CPU(X86_64)
@@ -131,12 +132,12 @@ class FixedVMPoolAllocator
void reuse(void* position, size_t size)
{
- bool okay = m_allocation.commit(position, size, EXECUTABLE_POOL_WRITABLE, true);
+ bool okay = m_allocation.commit(position, size);
ASSERT_UNUSED(okay, okay);
}
// All addition to the free list should go through this method, rather than
- // calling insert directly, to avoid multiple entries beging added with the
+ // calling insert directly, to avoid multiple entries being added with the
// same key. All nodes being added should be singletons, they should not
// already be a part of a chain.
void addToFreeList(FreeListEntry* entry)
@@ -155,7 +156,7 @@ class FixedVMPoolAllocator
}
// We do not attempt to coalesce addition, which may lead to fragmentation;
- // instead we periodically perform a sweep to try to coalesce neigboring
+ // instead we periodically perform a sweep to try to coalesce neighboring
// entries in m_freeList. Presently this is triggered at the point 16MB
// of memory has been released.
void coalesceFreeSpace()
@@ -168,7 +169,7 @@ class FixedVMPoolAllocator
for (FreeListEntry* entry; (entry = *iter); ++iter) {
// Each entry in m_freeList might correspond to multiple
// free chunks of memory (of the same size). Walk the chain
- // (this is likely of couse only be one entry long!) adding
+ // (this is likely of course only be one entry long!) adding
// each entry to the Vector (at reseting the next in chain
// pointer to separate each node out).
FreeListEntry* next;
@@ -283,16 +284,16 @@ public:
//
// But! - as a temporary workaround for some plugin problems (rdar://problem/6812854),
// for now instead of 2^26 bits of ASLR lets stick with 25 bits of randomization plus
- // 2^24, which should put up somewhere in the middle of usespace (in the address range
+ // 2^24, which should put up somewhere in the middle of userspace (in the address range
// 0x200000000000 .. 0x5fffffffffff).
#if VM_POOL_ASLR
intptr_t randomLocation = 0;
randomLocation = arc4random() & ((1 << 25) - 1);
randomLocation += (1 << 24);
randomLocation <<= 21;
- m_allocation = PageAllocation::reserveAt(reinterpret_cast<void*>(randomLocation), false, totalHeapSize, PageAllocation::JSJITCodePages, EXECUTABLE_POOL_WRITABLE, true);
+ m_allocation = PageReservation::reserveAt(reinterpret_cast<void*>(randomLocation), false, totalHeapSize, PageAllocation::JSJITCodePages, EXECUTABLE_POOL_WRITABLE, true);
#else
- m_allocation = PageAllocation::reserve(totalHeapSize, PageAllocation::JSJITCodePages, EXECUTABLE_POOL_WRITABLE, true);
+ m_allocation = PageReservation::reserve(totalHeapSize, PageAllocation::JSJITCodePages, EXECUTABLE_POOL_WRITABLE, true);
#endif
if (!!m_allocation)
@@ -303,12 +304,12 @@ public:
#endif
}
- PageAllocation alloc(size_t size)
+ ExecutablePool::Allocation alloc(size_t size)
{
- return PageAllocation(allocInternal(size), size, m_allocation);
+ return ExecutablePool::Allocation(allocInternal(size), size);
}
- void free(PageAllocation allocation)
+ void free(ExecutablePool::Allocation allocation)
{
void* pointer = allocation.base();
size_t size = allocation.size();
@@ -356,18 +357,17 @@ private:
result = m_commonSizedAllocations.last();
m_commonSizedAllocations.removeLast();
} else {
- // Serach m_freeList for a suitable sized chunk to allocate memory from.
+ // Search m_freeList for a suitable sized chunk to allocate memory from.
FreeListEntry* entry = m_freeList.search(size, m_freeList.GREATER_EQUAL);
- // This would be bad news.
+ // This is bad news.
if (!entry) {
- // Errk! Lets take a last-ditch desparation attempt at defragmentation...
+ // Errk! Lets take a last-ditch desperation attempt at defragmentation...
coalesceFreeSpace();
// Did that free up a large enough chunk?
entry = m_freeList.search(size, m_freeList.GREATER_EQUAL);
- // No?... *BOOM!*
if (!entry)
- CRASH();
+ return 0;
}
ASSERT(entry->size != m_commonSize);
@@ -424,7 +424,7 @@ private:
// This is used for housekeeping, to trigger defragmentation of the freed lists.
size_t m_countFreedSinceLastCoalesce;
- PageAllocation m_allocation;
+ PageReservation m_allocation;
};
void ExecutableAllocator::intializePageSize()
diff --git a/JavaScriptCore/jit/JIT.cpp b/JavaScriptCore/jit/JIT.cpp
index f5df5f7..cd5944a 100644
--- a/JavaScriptCore/jit/JIT.cpp
+++ b/JavaScriptCore/jit/JIT.cpp
@@ -71,7 +71,7 @@ void ctiPatchCallByReturnAddress(CodeBlock* codeblock, ReturnAddressPtr returnAd
repatchBuffer.relinkCallerToFunction(returnAddress, newCalleeFunction);
}
-JIT::JIT(JSGlobalData* globalData, CodeBlock* codeBlock)
+JIT::JIT(JSGlobalData* globalData, CodeBlock* codeBlock, void* linkerOffset)
: m_interpreter(globalData->interpreter)
, m_globalData(globalData)
, m_codeBlock(codeBlock)
@@ -89,6 +89,7 @@ JIT::JIT(JSGlobalData* globalData, CodeBlock* codeBlock)
, m_lastResultBytecodeRegister(std::numeric_limits<int>::max())
, m_jumpTargetsPosition(0)
#endif
+ , m_linkerOffset(linkerOffset)
{
}
@@ -508,7 +509,12 @@ JITCode JIT::privateCompile(CodePtr* functionEntryArityCheck)
ASSERT(m_jmpTable.isEmpty());
- LinkBuffer patchBuffer(this, m_globalData->executableAllocator.poolForSize(m_assembler.size()));
+ RefPtr<ExecutablePool> executablePool = m_globalData->executableAllocator.poolForSize(m_assembler.size());
+ if (!executablePool)
+ return JITCode();
+ LinkBuffer patchBuffer(this, executablePool.release(), m_linkerOffset);
+ if (!patchBuffer.allocationSuccessful())
+ return JITCode();
// Translate vPC offsets into addresses in JIT generated code, for switch tables.
for (unsigned i = 0; i < m_switches.size(); ++i) {
diff --git a/JavaScriptCore/jit/JIT.h b/JavaScriptCore/jit/JIT.h
index d398d51..393c771 100644
--- a/JavaScriptCore/jit/JIT.h
+++ b/JavaScriptCore/jit/JIT.h
@@ -178,50 +178,50 @@ namespace JSC {
static const int patchGetByIdDefaultOffset = 256;
public:
- static JITCode compile(JSGlobalData* globalData, CodeBlock* codeBlock, CodePtr* functionEntryArityCheck = 0)
+ static JITCode compile(JSGlobalData* globalData, CodeBlock* codeBlock, CodePtr* functionEntryArityCheck = 0, void* offsetBase = 0)
{
- return JIT(globalData, codeBlock).privateCompile(functionEntryArityCheck);
+ return JIT(globalData, codeBlock, offsetBase).privateCompile(functionEntryArityCheck);
}
- static void compileGetByIdProto(JSGlobalData* globalData, CallFrame* callFrame, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress)
+ static bool compileGetByIdProto(JSGlobalData* globalData, CallFrame* callFrame, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress)
{
JIT jit(globalData, codeBlock);
- jit.privateCompileGetByIdProto(stubInfo, structure, prototypeStructure, ident, slot, cachedOffset, returnAddress, callFrame);
+ return jit.privateCompileGetByIdProto(stubInfo, structure, prototypeStructure, ident, slot, cachedOffset, returnAddress, callFrame);
}
- static void compileGetByIdSelfList(JSGlobalData* globalData, CodeBlock* codeBlock, StructureStubInfo* stubInfo, PolymorphicAccessStructureList* polymorphicStructures, int currentIndex, Structure* structure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
+ static bool compileGetByIdSelfList(JSGlobalData* globalData, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
{
JIT jit(globalData, codeBlock);
- jit.privateCompileGetByIdSelfList(stubInfo, polymorphicStructures, currentIndex, structure, ident, slot, cachedOffset);
+ return jit.privateCompileGetByIdSelfList(stubInfo, structure, ident, slot, cachedOffset);
}
- static void compileGetByIdProtoList(JSGlobalData* globalData, CallFrame* callFrame, CodeBlock* codeBlock, StructureStubInfo* stubInfo, PolymorphicAccessStructureList* prototypeStructureList, int currentIndex, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
+ static bool compileGetByIdProtoList(JSGlobalData* globalData, CallFrame* callFrame, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
{
JIT jit(globalData, codeBlock);
- jit.privateCompileGetByIdProtoList(stubInfo, prototypeStructureList, currentIndex, structure, prototypeStructure, ident, slot, cachedOffset, callFrame);
+ return jit.privateCompileGetByIdProtoList(stubInfo, structure, prototypeStructure, ident, slot, cachedOffset, callFrame);
}
- static void compileGetByIdChainList(JSGlobalData* globalData, CallFrame* callFrame, CodeBlock* codeBlock, StructureStubInfo* stubInfo, PolymorphicAccessStructureList* prototypeStructureList, int currentIndex, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
+ static bool compileGetByIdChainList(JSGlobalData* globalData, CallFrame* callFrame, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
{
JIT jit(globalData, codeBlock);
- jit.privateCompileGetByIdChainList(stubInfo, prototypeStructureList, currentIndex, structure, chain, count, ident, slot, cachedOffset, callFrame);
+ return jit.privateCompileGetByIdChainList(stubInfo, structure, chain, count, ident, slot, cachedOffset, callFrame);
}
- static void compileGetByIdChain(JSGlobalData* globalData, CallFrame* callFrame, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress)
+ static bool compileGetByIdChain(JSGlobalData* globalData, CallFrame* callFrame, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress)
{
JIT jit(globalData, codeBlock);
- jit.privateCompileGetByIdChain(stubInfo, structure, chain, count, ident, slot, cachedOffset, returnAddress, callFrame);
+ return jit.privateCompileGetByIdChain(stubInfo, structure, chain, count, ident, slot, cachedOffset, returnAddress, callFrame);
}
- static void compilePutByIdTransition(JSGlobalData* globalData, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* oldStructure, Structure* newStructure, size_t cachedOffset, StructureChain* chain, ReturnAddressPtr returnAddress, bool direct)
+ static bool compilePutByIdTransition(JSGlobalData* globalData, CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* oldStructure, Structure* newStructure, size_t cachedOffset, StructureChain* chain, ReturnAddressPtr returnAddress, bool direct)
{
JIT jit(globalData, codeBlock);
- jit.privateCompilePutByIdTransition(stubInfo, oldStructure, newStructure, cachedOffset, chain, returnAddress, direct);
+ return jit.privateCompilePutByIdTransition(stubInfo, oldStructure, newStructure, cachedOffset, chain, returnAddress, direct);
}
static void compileCTIMachineTrampolines(JSGlobalData* globalData, RefPtr<ExecutablePool>* executablePool, TrampolineStructure *trampolines)
{
if (!globalData->canUseJIT())
return;
- JIT jit(globalData);
+ JIT jit(globalData, 0, 0);
jit.privateCompileCTIMachineTrampolines(executablePool, globalData, trampolines);
}
@@ -229,7 +229,7 @@ namespace JSC {
{
if (!globalData->canUseJIT())
return CodePtr();
- JIT jit(globalData);
+ JIT jit(globalData, 0, 0);
return jit.privateCompileCTINativeCall(executablePool, globalData, func);
}
@@ -237,10 +237,10 @@ namespace JSC {
static void patchPutByIdReplace(CodeBlock* codeblock, StructureStubInfo*, Structure*, size_t cachedOffset, ReturnAddressPtr returnAddress, bool direct);
static void patchMethodCallProto(CodeBlock* codeblock, MethodCallLinkInfo&, JSFunction*, Structure*, JSObject*, ReturnAddressPtr);
- static void compilePatchGetArrayLength(JSGlobalData* globalData, CodeBlock* codeBlock, ReturnAddressPtr returnAddress)
+ static bool compilePatchGetArrayLength(JSGlobalData* globalData, CodeBlock* codeBlock, StructureStubInfo* stubInfo, ReturnAddressPtr returnAddress)
{
JIT jit(globalData, codeBlock);
- return jit.privateCompilePatchGetArrayLength(returnAddress);
+ return jit.privateCompilePatchGetArrayLength(stubInfo, returnAddress);
}
static void linkCall(JSFunction* callee, CodeBlock* callerCodeBlock, CodeBlock* calleeCodeBlock, CodePtr, CallLinkInfo*, int callerArgCount, JSGlobalData*);
@@ -259,23 +259,23 @@ namespace JSC {
}
};
- JIT(JSGlobalData*, CodeBlock* = 0);
+ JIT(JSGlobalData*, CodeBlock* = 0, void* = 0);
void privateCompileMainPass();
void privateCompileLinkPass();
void privateCompileSlowCases();
JITCode privateCompile(CodePtr* functionEntryArityCheck);
- void privateCompileGetByIdProto(StructureStubInfo*, Structure*, Structure* prototypeStructure, const Identifier&, const PropertySlot&, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame);
- void privateCompileGetByIdSelfList(StructureStubInfo*, PolymorphicAccessStructureList*, int, Structure*, const Identifier&, const PropertySlot&, size_t cachedOffset);
- void privateCompileGetByIdProtoList(StructureStubInfo*, PolymorphicAccessStructureList*, int, Structure*, Structure* prototypeStructure, const Identifier&, const PropertySlot&, size_t cachedOffset, CallFrame* callFrame);
- void privateCompileGetByIdChainList(StructureStubInfo*, PolymorphicAccessStructureList*, int, Structure*, StructureChain* chain, size_t count, const Identifier&, const PropertySlot&, size_t cachedOffset, CallFrame* callFrame);
- void privateCompileGetByIdChain(StructureStubInfo*, Structure*, StructureChain*, size_t count, const Identifier&, const PropertySlot&, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame);
- void privateCompilePutByIdTransition(StructureStubInfo*, Structure*, Structure*, size_t cachedOffset, StructureChain*, ReturnAddressPtr returnAddress, bool direct);
+ bool privateCompileGetByIdProto(StructureStubInfo*, Structure*, Structure* prototypeStructure, const Identifier&, const PropertySlot&, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame);
+ bool privateCompileGetByIdSelfList(StructureStubInfo*, Structure*, const Identifier&, const PropertySlot&, size_t cachedOffset);
+ bool privateCompileGetByIdProtoList(StructureStubInfo*, Structure*, Structure* prototypeStructure, const Identifier&, const PropertySlot&, size_t cachedOffset, CallFrame* callFrame);
+ bool privateCompileGetByIdChainList(StructureStubInfo*, Structure*, StructureChain* chain, size_t count, const Identifier&, const PropertySlot&, size_t cachedOffset, CallFrame* callFrame);
+ bool privateCompileGetByIdChain(StructureStubInfo*, Structure*, StructureChain*, size_t count, const Identifier&, const PropertySlot&, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame);
+ bool privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure*, Structure*, size_t cachedOffset, StructureChain*, ReturnAddressPtr returnAddress, bool direct);
void privateCompileCTIMachineTrampolines(RefPtr<ExecutablePool>* executablePool, JSGlobalData* data, TrampolineStructure *trampolines);
Label privateCompileCTINativeCall(JSGlobalData*, bool isConstruct = false);
CodePtr privateCompileCTINativeCall(PassRefPtr<ExecutablePool> executablePool, JSGlobalData* data, NativeFunction func);
- void privateCompilePatchGetArrayLength(ReturnAddressPtr returnAddress);
+ bool privateCompilePatchGetArrayLength(StructureStubInfo* stubInfo, ReturnAddressPtr returnAddress);
void addSlowCase(Jump);
void addSlowCase(JumpList);
@@ -295,7 +295,7 @@ namespace JSC {
void emitLoadDouble(unsigned index, FPRegisterID value);
void emitLoadInt32ToDouble(unsigned index, FPRegisterID value);
- void testPrototype(Structure*, JumpList& failureCases);
+ void testPrototype(JSValue, JumpList& failureCases);
#if USE(JSVALUE32_64)
bool getOperandConstantImmediateInt(unsigned op1, unsigned op2, unsigned& op, int32_t& constant);
@@ -666,16 +666,16 @@ namespace JSC {
#endif
#endif // USE(JSVALUE32_64)
-#if defined(ASSEMBLER_HAS_CONSTANT_POOL) && ASSEMBLER_HAS_CONSTANT_POOL
-#define BEGIN_UNINTERRUPTED_SEQUENCE(name) beginUninterruptedSequence(name ## InstructionSpace, name ## ConstantSpace)
-#define END_UNINTERRUPTED_SEQUENCE(name) endUninterruptedSequence(name ## InstructionSpace, name ## ConstantSpace)
+#if (defined(ASSEMBLER_HAS_CONSTANT_POOL) && ASSEMBLER_HAS_CONSTANT_POOL)
+#define BEGIN_UNINTERRUPTED_SEQUENCE(name) do { beginUninterruptedSequence(name ## InstructionSpace, name ## ConstantSpace); } while (false)
+#define END_UNINTERRUPTED_SEQUENCE(name) do { endUninterruptedSequence(name ## InstructionSpace, name ## ConstantSpace); } while (false)
void beginUninterruptedSequence(int, int);
void endUninterruptedSequence(int, int);
#else
-#define BEGIN_UNINTERRUPTED_SEQUENCE(name)
-#define END_UNINTERRUPTED_SEQUENCE(name)
+#define BEGIN_UNINTERRUPTED_SEQUENCE(name) do { beginUninterruptedSequence(); } while (false)
+#define END_UNINTERRUPTED_SEQUENCE(name) do { endUninterruptedSequence(); } while (false)
#endif
void emit_op_add(Instruction*);
@@ -940,6 +940,7 @@ namespace JSC {
int m_uninterruptedConstantSequenceBegin;
#endif
#endif
+ void* m_linkerOffset;
static CodePtr stringGetByValStubGenerator(JSGlobalData* globalData, ExecutablePool* pool);
} JIT_CLASS_ALIGNMENT;
diff --git a/JavaScriptCore/jit/JITArithmetic32_64.cpp b/JavaScriptCore/jit/JITArithmetic32_64.cpp
index 5a69d5a..e53af77 100644
--- a/JavaScriptCore/jit/JITArithmetic32_64.cpp
+++ b/JavaScriptCore/jit/JITArithmetic32_64.cpp
@@ -1383,6 +1383,8 @@ void JIT::emit_op_mod(Instruction* currentInstruction)
void JIT::emitSlow_op_mod(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
{
+ UNUSED_PARAM(currentInstruction);
+ UNUSED_PARAM(iter);
#if ENABLE(JIT_USE_SOFT_MODULO)
unsigned result = currentInstruction[1].u.operand;
unsigned op1 = currentInstruction[2].u.operand;
diff --git a/JavaScriptCore/jit/JITInlineMethods.h b/JavaScriptCore/jit/JITInlineMethods.h
index 3b28f34..e2e77db 100644
--- a/JavaScriptCore/jit/JITInlineMethods.h
+++ b/JavaScriptCore/jit/JITInlineMethods.h
@@ -99,6 +99,7 @@ ALWAYS_INLINE JIT::Call JIT::emitNakedCall(CodePtr function)
ALWAYS_INLINE void JIT::beginUninterruptedSequence(int insnSpace, int constSpace)
{
+ JSInterfaceJIT::beginUninterruptedSequence();
#if CPU(ARM_TRADITIONAL)
#ifndef NDEBUG
// Ensure the label after the sequence can also fit
@@ -124,6 +125,7 @@ ALWAYS_INLINE void JIT::endUninterruptedSequence(int insnSpace, int constSpace)
ASSERT(differenceBetween(m_uninterruptedInstructionSequenceBegin, label()) == insnSpace);
ASSERT(sizeOfConstantPool() - m_uninterruptedConstantSequenceBegin == constSpace);
#endif
+ JSInterfaceJIT::endUninterruptedSequence();
}
#endif
diff --git a/JavaScriptCore/jit/JITOpcodes.cpp b/JavaScriptCore/jit/JITOpcodes.cpp
index 852de4e..28ef4ca 100644
--- a/JavaScriptCore/jit/JITOpcodes.cpp
+++ b/JavaScriptCore/jit/JITOpcodes.cpp
@@ -161,7 +161,14 @@ void JIT::privateCompileCTIMachineTrampolines(RefPtr<ExecutablePool>* executable
#endif
// All trampolines constructed! copy the code, link up calls, and set the pointers on the Machine object.
- LinkBuffer patchBuffer(this, m_globalData->executableAllocator.poolForSize(m_assembler.size()));
+ *executablePool = m_globalData->executableAllocator.poolForSize(m_assembler.size());
+ // We can't run without the JIT trampolines!
+ if (!*executablePool)
+ CRASH();
+ LinkBuffer patchBuffer(this, *executablePool, 0);
+ // We can't run without the JIT trampolines!
+ if (!patchBuffer.allocationSuccessful())
+ CRASH();
#if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS)
patchBuffer.link(string_failureCases1Call, FunctionPtr(cti_op_get_by_id_string_fail));
@@ -176,19 +183,18 @@ void JIT::privateCompileCTIMachineTrampolines(RefPtr<ExecutablePool>* executable
patchBuffer.link(callCompileConstruct, FunctionPtr(cti_op_construct_jitCompile));
CodeRef finalCode = patchBuffer.finalizeCode();
- *executablePool = finalCode.m_executablePool;
-
- trampolines->ctiVirtualCallLink = trampolineAt(finalCode, virtualCallLinkBegin);
- trampolines->ctiVirtualConstructLink = trampolineAt(finalCode, virtualConstructLinkBegin);
- trampolines->ctiVirtualCall = trampolineAt(finalCode, virtualCallBegin);
- trampolines->ctiVirtualConstruct = trampolineAt(finalCode, virtualConstructBegin);
- trampolines->ctiNativeCall = trampolineAt(finalCode, nativeCallThunk);
- trampolines->ctiNativeConstruct = trampolineAt(finalCode, nativeConstructThunk);
+
+ trampolines->ctiVirtualCallLink = patchBuffer.trampolineAt(virtualCallLinkBegin);
+ trampolines->ctiVirtualConstructLink = patchBuffer.trampolineAt(virtualConstructLinkBegin);
+ trampolines->ctiVirtualCall = patchBuffer.trampolineAt(virtualCallBegin);
+ trampolines->ctiVirtualConstruct = patchBuffer.trampolineAt(virtualConstructBegin);
+ trampolines->ctiNativeCall = patchBuffer.trampolineAt(nativeCallThunk);
+ trampolines->ctiNativeConstruct = patchBuffer.trampolineAt(nativeConstructThunk);
#if ENABLE(JIT_USE_SOFT_MODULO)
- trampolines->ctiSoftModulo = trampolineAt(finalCode, softModBegin);
+ trampolines->ctiSoftModulo = patchBuffer.trampolineAt(softModBegin);
#endif
#if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS)
- trampolines->ctiStringLengthTrampoline = trampolineAt(finalCode, stringLengthBegin);
+ trampolines->ctiStringLengthTrampoline = patchBuffer.trampolineAt(stringLengthBegin);
#endif
}
@@ -462,18 +468,18 @@ void JIT::emit_op_construct(Instruction* currentInstruction)
void JIT::emit_op_get_global_var(Instruction* currentInstruction)
{
- JSVariableObject* globalObject = static_cast<JSVariableObject*>(currentInstruction[2].u.jsCell);
+ JSVariableObject* globalObject = m_codeBlock->globalObject();
move(ImmPtr(globalObject), regT0);
- emitGetVariableObjectRegister(regT0, currentInstruction[3].u.operand, regT0);
+ emitGetVariableObjectRegister(regT0, currentInstruction[2].u.operand, regT0);
emitPutVirtualRegister(currentInstruction[1].u.operand);
}
void JIT::emit_op_put_global_var(Instruction* currentInstruction)
{
- emitGetVirtualRegister(currentInstruction[3].u.operand, regT1);
- JSVariableObject* globalObject = static_cast<JSVariableObject*>(currentInstruction[1].u.jsCell);
+ emitGetVirtualRegister(currentInstruction[2].u.operand, regT1);
+ JSVariableObject* globalObject = m_codeBlock->globalObject();
move(ImmPtr(globalObject), regT0);
- emitPutVariableObjectRegister(regT1, regT0, currentInstruction[2].u.operand);
+ emitPutVariableObjectRegister(regT1, regT0, currentInstruction[1].u.operand);
}
void JIT::emit_op_get_scoped_var(Instruction* currentInstruction)
@@ -644,7 +650,7 @@ void JIT::emit_op_resolve_skip(Instruction* currentInstruction)
void JIT::emit_op_resolve_global(Instruction* currentInstruction, bool)
{
// Fast case
- void* globalObject = currentInstruction[2].u.jsCell;
+ void* globalObject = m_codeBlock->globalObject();
unsigned currentIndex = m_globalResolveInfoIndex++;
void* structureAddress = &(m_codeBlock->globalResolveInfo(currentIndex).structure);
void* offsetAddr = &(m_codeBlock->globalResolveInfo(currentIndex).offset);
@@ -665,16 +671,15 @@ void JIT::emit_op_resolve_global(Instruction* currentInstruction, bool)
void JIT::emitSlow_op_resolve_global(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
{
unsigned dst = currentInstruction[1].u.operand;
- void* globalObject = currentInstruction[2].u.jsCell;
- Identifier* ident = &m_codeBlock->identifier(currentInstruction[3].u.operand);
+ Identifier* ident = &m_codeBlock->identifier(currentInstruction[2].u.operand);
unsigned currentIndex = m_globalResolveInfoIndex++;
linkSlowCase(iter);
JITStubCall stubCall(this, cti_op_resolve_global);
- stubCall.addArgument(ImmPtr(globalObject));
stubCall.addArgument(ImmPtr(ident));
stubCall.addArgument(Imm32(currentIndex));
+ stubCall.addArgument(regT0);
stubCall.call(dst);
}
@@ -1489,7 +1494,7 @@ void JIT::emitSlow_op_to_jsnumber(Instruction* currentInstruction, Vector<SlowCa
void JIT::emit_op_resolve_global_dynamic(Instruction* currentInstruction)
{
- int skip = currentInstruction[6].u.operand;
+ int skip = currentInstruction[5].u.operand;
emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT0);
while (skip--) {
@@ -1503,9 +1508,8 @@ void JIT::emit_op_resolve_global_dynamic(Instruction* currentInstruction)
void JIT::emitSlow_op_resolve_global_dynamic(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
{
unsigned dst = currentInstruction[1].u.operand;
- void* globalObject = currentInstruction[2].u.jsCell;
- Identifier* ident = &m_codeBlock->identifier(currentInstruction[3].u.operand);
- int skip = currentInstruction[6].u.operand;
+ Identifier* ident = &m_codeBlock->identifier(currentInstruction[2].u.operand);
+ int skip = currentInstruction[5].u.operand;
while (skip--)
linkSlowCase(iter);
JITStubCall resolveStubCall(this, cti_op_resolve);
@@ -1517,9 +1521,9 @@ void JIT::emitSlow_op_resolve_global_dynamic(Instruction* currentInstruction, Ve
linkSlowCase(iter); // We managed to skip all the nodes in the scope chain, but the cache missed.
JITStubCall stubCall(this, cti_op_resolve_global);
- stubCall.addArgument(ImmPtr(globalObject));
stubCall.addArgument(ImmPtr(ident));
stubCall.addArgument(Imm32(currentIndex));
+ stubCall.addArgument(regT0);
stubCall.call(dst);
}
diff --git a/JavaScriptCore/jit/JITOpcodes32_64.cpp b/JavaScriptCore/jit/JITOpcodes32_64.cpp
index 5622e9c..939aa8c 100644
--- a/JavaScriptCore/jit/JITOpcodes32_64.cpp
+++ b/JavaScriptCore/jit/JITOpcodes32_64.cpp
@@ -159,7 +159,14 @@ void JIT::privateCompileCTIMachineTrampolines(RefPtr<ExecutablePool>* executable
#endif
// All trampolines constructed! copy the code, link up calls, and set the pointers on the Machine object.
- LinkBuffer patchBuffer(this, m_globalData->executableAllocator.poolForSize(m_assembler.size()));
+ *executablePool = m_globalData->executableAllocator.poolForSize(m_assembler.size());
+ // We can't run without the JIT trampolines!
+ if (!*executablePool)
+ CRASH();
+ LinkBuffer patchBuffer(this, *executablePool, 0);
+ // We can't run without the JIT trampolines!
+ if (!patchBuffer.allocationSuccessful())
+ CRASH();
#if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS)
patchBuffer.link(string_failureCases1Call, FunctionPtr(cti_op_get_by_id_string_fail));
@@ -174,21 +181,20 @@ void JIT::privateCompileCTIMachineTrampolines(RefPtr<ExecutablePool>* executable
patchBuffer.link(callCompileCconstruct, FunctionPtr(cti_op_construct_jitCompile));
CodeRef finalCode = patchBuffer.finalizeCode();
- *executablePool = finalCode.m_executablePool;
- trampolines->ctiVirtualCall = trampolineAt(finalCode, virtualCallBegin);
- trampolines->ctiVirtualConstruct = trampolineAt(finalCode, virtualConstructBegin);
- trampolines->ctiNativeCall = trampolineAt(finalCode, nativeCallThunk);
- trampolines->ctiNativeConstruct = trampolineAt(finalCode, nativeConstructThunk);
+ trampolines->ctiVirtualCall = patchBuffer.trampolineAt(virtualCallBegin);
+ trampolines->ctiVirtualConstruct = patchBuffer.trampolineAt(virtualConstructBegin);
+ trampolines->ctiNativeCall = patchBuffer.trampolineAt(nativeCallThunk);
+ trampolines->ctiNativeConstruct = patchBuffer.trampolineAt(nativeConstructThunk);
#if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS)
- trampolines->ctiStringLengthTrampoline = trampolineAt(finalCode, stringLengthBegin);
+ trampolines->ctiStringLengthTrampoline = patchBuffer.trampolineAt(stringLengthBegin);
#endif
#if ENABLE(JIT_OPTIMIZE_CALL)
- trampolines->ctiVirtualCallLink = trampolineAt(finalCode, virtualCallLinkBegin);
- trampolines->ctiVirtualConstructLink = trampolineAt(finalCode, virtualConstructLinkBegin);
+ trampolines->ctiVirtualCallLink = patchBuffer.trampolineAt(virtualCallLinkBegin);
+ trampolines->ctiVirtualConstructLink = patchBuffer.trampolineAt(virtualConstructLinkBegin);
#endif
#if ENABLE(JIT_USE_SOFT_MODULO)
- trampolines->ctiSoftModulo = trampolineAt(finalCode, softModBegin);
+ trampolines->ctiSoftModulo = patchBuffer.trampolineAt(softModBegin);
#endif
}
@@ -356,12 +362,15 @@ JIT::CodePtr JIT::privateCompileCTINativeCall(PassRefPtr<ExecutablePool> executa
ret();
// All trampolines constructed! copy the code, link up calls, and set the pointers on the Machine object.
- LinkBuffer patchBuffer(this, executablePool);
+ LinkBuffer patchBuffer(this, executablePool, 0);
+ // We can't continue if we can't call a function!
+ if (!patchBuffer.allocationSuccessful())
+ CRASH();
patchBuffer.link(nativeCall, FunctionPtr(func));
+ patchBuffer.finalizeCode();
- CodeRef finalCode = patchBuffer.finalizeCode();
- return trampolineAt(finalCode, nativeCallThunk);
+ return patchBuffer.trampolineAt(nativeCallThunk);
}
void JIT::emit_op_mov(Instruction* currentInstruction)
@@ -516,9 +525,9 @@ void JIT::emit_op_new_func(Instruction* currentInstruction)
void JIT::emit_op_get_global_var(Instruction* currentInstruction)
{
int dst = currentInstruction[1].u.operand;
- JSGlobalObject* globalObject = static_cast<JSGlobalObject*>(currentInstruction[2].u.jsCell);
+ JSGlobalObject* globalObject = m_codeBlock->globalObject();
ASSERT(globalObject->isGlobalObject());
- int index = currentInstruction[3].u.operand;
+ int index = currentInstruction[2].u.operand;
loadPtr(&globalObject->d()->registers, regT2);
@@ -529,10 +538,10 @@ void JIT::emit_op_get_global_var(Instruction* currentInstruction)
void JIT::emit_op_put_global_var(Instruction* currentInstruction)
{
- JSGlobalObject* globalObject = static_cast<JSGlobalObject*>(currentInstruction[1].u.jsCell);
+ JSGlobalObject* globalObject = m_codeBlock->globalObject();
ASSERT(globalObject->isGlobalObject());
- int index = currentInstruction[2].u.operand;
- int value = currentInstruction[3].u.operand;
+ int index = currentInstruction[1].u.operand;
+ int value = currentInstruction[2].u.operand;
emitLoad(value, regT1, regT0);
@@ -669,7 +678,7 @@ void JIT::emit_op_resolve_global(Instruction* currentInstruction, bool dynamic)
// FIXME: Optimize to use patching instead of so many memory accesses.
unsigned dst = currentInstruction[1].u.operand;
- void* globalObject = currentInstruction[2].u.jsCell;
+ void* globalObject = m_codeBlock->globalObject();
unsigned currentIndex = m_globalResolveInfoIndex++;
void* structureAddress = &(m_codeBlock->globalResolveInfo(currentIndex).structure);
@@ -692,14 +701,12 @@ void JIT::emit_op_resolve_global(Instruction* currentInstruction, bool dynamic)
void JIT::emitSlow_op_resolve_global(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
{
unsigned dst = currentInstruction[1].u.operand;
- void* globalObject = currentInstruction[2].u.jsCell;
- Identifier* ident = &m_codeBlock->identifier(currentInstruction[3].u.operand);
+ Identifier* ident = &m_codeBlock->identifier(currentInstruction[2].u.operand);
unsigned currentIndex = m_globalResolveInfoIndex++;
linkSlowCase(iter);
JITStubCall stubCall(this, cti_op_resolve_global);
- stubCall.addArgument(ImmPtr(globalObject));
stubCall.addArgument(ImmPtr(ident));
stubCall.addArgument(Imm32(currentIndex));
stubCall.call(dst);
diff --git a/JavaScriptCore/jit/JITPropertyAccess.cpp b/JavaScriptCore/jit/JITPropertyAccess.cpp
index 10dcd3f..6b2a2fe 100644
--- a/JavaScriptCore/jit/JITPropertyAccess.cpp
+++ b/JavaScriptCore/jit/JITPropertyAccess.cpp
@@ -77,7 +77,10 @@ JIT::CodePtr JIT::stringGetByValStubGenerator(JSGlobalData* globalData, Executab
jit.move(Imm32(0), regT0);
jit.ret();
- LinkBuffer patchBuffer(&jit, pool);
+ LinkBuffer patchBuffer(&jit, pool, 0);
+ // We can't run without the JIT trampolines!
+ if (!patchBuffer.allocationSuccessful())
+ CRASH();
return patchBuffer.finalizeCode().m_code;
}
@@ -103,10 +106,10 @@ void JIT::emit_op_get_by_val(Instruction* currentInstruction)
emitJumpSlowCaseIfNotJSCell(regT0, base);
addSlowCase(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsArrayVPtr)));
- loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_vector)), regT2);
+ loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_storage)), regT2);
addSlowCase(branch32(AboveOrEqual, regT1, Address(regT0, OBJECT_OFFSETOF(JSArray, m_vectorLength))));
- loadPtr(BaseIndex(regT2, regT1, ScalePtr), regT0);
+ loadPtr(BaseIndex(regT2, regT1, ScalePtr, OBJECT_OFFSETOF(ArrayStorage, m_vector[0])), regT0);
addSlowCase(branchTestPtr(Zero, regT0));
emitPutVirtualRegister(dst);
@@ -214,21 +217,21 @@ void JIT::emit_op_put_by_val(Instruction* currentInstruction)
addSlowCase(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsArrayVPtr)));
addSlowCase(branch32(AboveOrEqual, regT1, Address(regT0, OBJECT_OFFSETOF(JSArray, m_vectorLength))));
- loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_vector)), regT2);
- Jump empty = branchTestPtr(Zero, BaseIndex(regT2, regT1, ScalePtr));
+ loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_storage)), regT2);
+ Jump empty = branchTestPtr(Zero, BaseIndex(regT2, regT1, ScalePtr, OBJECT_OFFSETOF(ArrayStorage, m_vector[0])));
Label storeResult(this);
emitGetVirtualRegister(value, regT0);
- storePtr(regT0, BaseIndex(regT2, regT1, ScalePtr));
+ storePtr(regT0, BaseIndex(regT2, regT1, ScalePtr, OBJECT_OFFSETOF(ArrayStorage, m_vector[0])));
Jump end = jump();
empty.link(this);
- add32(Imm32(1), Address(regT2, OBJECT_OFFSETOF(ArrayStorage, m_numValuesInVector)-OBJECT_OFFSETOF(ArrayStorage, m_vector)));
- branch32(Below, regT1, Address(regT2, OBJECT_OFFSETOF(ArrayStorage, m_length)-OBJECT_OFFSETOF(ArrayStorage, m_vector))).linkTo(storeResult, this);
+ add32(Imm32(1), Address(regT2, OBJECT_OFFSETOF(ArrayStorage, m_numValuesInVector)));
+ branch32(Below, regT1, Address(regT2, OBJECT_OFFSETOF(ArrayStorage, m_length))).linkTo(storeResult, this);
move(regT1, regT0);
add32(Imm32(1), regT0);
- store32(regT0, Address(regT2, OBJECT_OFFSETOF(ArrayStorage, m_length)-OBJECT_OFFSETOF(ArrayStorage, m_vector)));
+ store32(regT0, Address(regT2, OBJECT_OFFSETOF(ArrayStorage, m_length)));
jump().linkTo(storeResult, this);
end.link(this);
@@ -581,28 +584,35 @@ void JIT::compileGetDirectOffset(JSObject* base, RegisterID temp, RegisterID res
}
}
-void JIT::testPrototype(Structure* structure, JumpList& failureCases)
+void JIT::testPrototype(JSValue prototype, JumpList& failureCases)
{
- if (structure->m_prototype.isNull())
+ if (prototype.isNull())
return;
- move(ImmPtr(&asCell(structure->m_prototype)->m_structure), regT2);
- move(ImmPtr(asCell(structure->m_prototype)->m_structure), regT3);
- failureCases.append(branchPtr(NotEqual, Address(regT2), regT3));
+ // We have a special case for X86_64 here because X86 instructions that take immediate values
+ // only take 32 bit immediate values, wheras the pointer constants we are using here are 64 bit
+ // values. In the non X86_64 case, the generated code is slightly more efficient because it uses
+ // two less instructions and doesn't require any scratch registers.
+#if CPU(X86_64)
+ move(ImmPtr(asCell(prototype)->structure()), regT3);
+ failureCases.append(branchPtr(NotEqual, AbsoluteAddress(&asCell(prototype)->m_structure), regT3));
+#else
+ failureCases.append(branchPtr(NotEqual, AbsoluteAddress(&asCell(prototype)->m_structure), ImmPtr(asCell(prototype)->structure())));
+#endif
}
-void JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure* oldStructure, Structure* newStructure, size_t cachedOffset, StructureChain* chain, ReturnAddressPtr returnAddress, bool direct)
+bool JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure* oldStructure, Structure* newStructure, size_t cachedOffset, StructureChain* chain, ReturnAddressPtr returnAddress, bool direct)
{
JumpList failureCases;
// Check eax is an object of the right Structure.
failureCases.append(emitJumpIfNotJSCell(regT0));
failureCases.append(branchPtr(NotEqual, Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), ImmPtr(oldStructure)));
- testPrototype(oldStructure, failureCases);
+ testPrototype(oldStructure->storedPrototype(), failureCases);
// ecx = baseObject->m_structure
if (!direct) {
for (RefPtr<Structure>* it = chain->head(); *it; ++it)
- testPrototype(it->get(), failureCases);
+ testPrototype((*it)->storedPrototype(), failureCases);
}
Call callTarget;
@@ -642,7 +652,9 @@ void JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure
restoreArgumentReferenceForTrampoline();
Call failureCall = tailRecursiveCall();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
patchBuffer.link(failureCall, FunctionPtr(direct ? cti_op_put_by_id_direct_fail : cti_op_put_by_id_fail));
@@ -652,9 +664,10 @@ void JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure
}
CodeLocationLabel entryLabel = patchBuffer.finalizeCodeAddendum();
- stubInfo->stubRoutine = entryLabel;
RepatchBuffer repatchBuffer(m_codeBlock);
repatchBuffer.relinkCallerToTrampoline(returnAddress, entryLabel);
+ stubInfo->initPutByIdTransition(oldStructure, newStructure, chain, entryLabel);
+ return true;
}
void JIT::patchGetByIdSelf(CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, size_t cachedOffset, ReturnAddressPtr returnAddress)
@@ -717,22 +730,22 @@ void JIT::patchPutByIdReplace(CodeBlock* codeBlock, StructureStubInfo* stubInfo,
repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabel32AtOffset(patchOffsetPutByIdPropertyMapOffset), offset);
}
-void JIT::privateCompilePatchGetArrayLength(ReturnAddressPtr returnAddress)
+bool JIT::privateCompilePatchGetArrayLength(StructureStubInfo* stubInfo, ReturnAddressPtr returnAddress)
{
- StructureStubInfo* stubInfo = &m_codeBlock->getStubInfo(returnAddress);
-
// Check eax is an array
Jump failureCases1 = branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsArrayVPtr));
// Checks out okay! - get the length from the storage
- loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_vector)), regT3);
- load32(Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_length)-OBJECT_OFFSETOF(ArrayStorage, m_vector)), regT2);
+ loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_storage)), regT3);
+ load32(Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_length)), regT2);
Jump failureCases2 = branch32(Above, regT2, Imm32(JSImmediate::maxImmediateInt));
emitFastArithIntToImmNoCheck(regT2, regT0);
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
// Use the patch information to link the failure cases back to the original slow case routine.
CodeLocationLabel slowCaseBegin = stubInfo->callReturnLocation.labelAtOffset(-patchOffsetGetByIdSlowCaseCall);
@@ -744,7 +757,6 @@ void JIT::privateCompilePatchGetArrayLength(ReturnAddressPtr returnAddress)
// Track the stub we have created so that it will be deleted later.
CodeLocationLabel entryLabel = patchBuffer.finalizeCodeAddendum();
- stubInfo->stubRoutine = entryLabel;
// Finally patch the jump to slow case back in the hot path to jump here instead.
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
@@ -753,9 +765,11 @@ void JIT::privateCompilePatchGetArrayLength(ReturnAddressPtr returnAddress)
// We don't want to patch more than once - in future go to cti_op_put_by_id_generic.
repatchBuffer.relinkCallerToFunction(returnAddress, FunctionPtr(cti_op_get_by_id_array_fail));
+ stubInfo->stubRoutine = entryLabel;
+ return true;
}
-void JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame)
+bool JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame)
{
// The prototype object definitely exists (if this stub exists the CodeBlock is referencing a Structure that is
// referencing the prototype object - let's speculatively load it's table nice and early!)
@@ -795,7 +809,9 @@ void JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* str
} else
compileGetDirectOffset(protoObject, regT1, regT0, cachedOffset);
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
// Use the patch information to link the failure cases back to the original slow case routine.
CodeLocationLabel slowCaseBegin = stubInfo->callReturnLocation.labelAtOffset(-patchOffsetGetByIdSlowCaseCall);
@@ -813,7 +829,6 @@ void JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* str
}
// Track the stub we have created so that it will be deleted later.
CodeLocationLabel entryLabel = patchBuffer.finalizeCodeAddendum();
- stubInfo->stubRoutine = entryLabel;
// Finally patch the jump to slow case back in the hot path to jump here instead.
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
@@ -822,10 +837,15 @@ void JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* str
// We don't want to patch more than once - in future go to cti_op_put_by_id_generic.
repatchBuffer.relinkCallerToFunction(returnAddress, FunctionPtr(cti_op_get_by_id_proto_list));
+ stubInfo->initGetByIdProto(structure, prototypeStructure, entryLabel);
+ return true;
}
-void JIT::privateCompileGetByIdSelfList(StructureStubInfo* stubInfo, PolymorphicAccessStructureList* polymorphicStructures, int currentIndex, Structure* structure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
+bool JIT::privateCompileGetByIdSelfList(StructureStubInfo* stubInfo, Structure* structure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
{
+ PolymorphicAccessStructureList* polymorphicStructures = stubInfo->u.getByIdSelfList.structureList;
+ int currentIndex = stubInfo->u.getByIdSelfList.listSize;
+
Jump failureCase = checkStructure(regT0, structure);
bool needsStubLink = false;
if (slot.cachedPropertyType() == PropertySlot::Getter) {
@@ -852,7 +872,9 @@ void JIT::privateCompileGetByIdSelfList(StructureStubInfo* stubInfo, Polymorphic
compileGetDirectOffset(regT0, regT0, structure, cachedOffset);
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
if (needsStubLink) {
for (Vector<CallRecord>::iterator iter = m_calls.begin(); iter != m_calls.end(); ++iter) {
@@ -880,10 +902,15 @@ void JIT::privateCompileGetByIdSelfList(StructureStubInfo* stubInfo, Polymorphic
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
RepatchBuffer repatchBuffer(m_codeBlock);
repatchBuffer.relink(jumpLocation, entryLabel);
+ stubInfo->u.getByIdSelfList.listSize++;
+ return true;
}
-void JIT::privateCompileGetByIdProtoList(StructureStubInfo* stubInfo, PolymorphicAccessStructureList* prototypeStructures, int currentIndex, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, CallFrame* callFrame)
+bool JIT::privateCompileGetByIdProtoList(StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, CallFrame* callFrame)
{
+ PolymorphicAccessStructureList* prototypeStructures = stubInfo->u.getByIdProtoList.structureList;
+ int currentIndex = stubInfo->u.getByIdProtoList.listSize;
+
// The prototype object definitely exists (if this stub exists the CodeBlock is referencing a Structure that is
// referencing the prototype object - let's speculatively load it's table nice and early!)
JSObject* protoObject = asObject(structure->prototypeForLookup(callFrame));
@@ -923,7 +950,9 @@ void JIT::privateCompileGetByIdProtoList(StructureStubInfo* stubInfo, Polymorphi
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
if (needsStubLink) {
for (Vector<CallRecord>::iterator iter = m_calls.begin(); iter != m_calls.end(); ++iter) {
@@ -950,10 +979,15 @@ void JIT::privateCompileGetByIdProtoList(StructureStubInfo* stubInfo, Polymorphi
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
RepatchBuffer repatchBuffer(m_codeBlock);
repatchBuffer.relink(jumpLocation, entryLabel);
+ stubInfo->u.getByIdProtoList.listSize++;
+ return true;
}
-void JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, PolymorphicAccessStructureList* prototypeStructures, int currentIndex, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, CallFrame* callFrame)
+bool JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, CallFrame* callFrame)
{
+ PolymorphicAccessStructureList* prototypeStructures = stubInfo->u.getByIdProtoList.structureList;
+ int currentIndex = stubInfo->u.getByIdProtoList.listSize;
+
ASSERT(count);
JumpList bucketsOfFail;
@@ -962,20 +996,12 @@ void JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, Polymorphi
bucketsOfFail.append(baseObjectCheck);
Structure* currStructure = structure;
- RefPtr<Structure>* chainEntries = chain->head();
+ RefPtr<Structure>* it = chain->head();
JSObject* protoObject = 0;
- for (unsigned i = 0; i < count; ++i) {
+ for (unsigned i = 0; i < count; ++i, ++it) {
protoObject = asObject(currStructure->prototypeForLookup(callFrame));
- currStructure = chainEntries[i].get();
-
- // Check the prototype object's Structure had not changed.
- Structure** prototypeStructureAddress = &(protoObject->m_structure);
-#if CPU(X86_64)
- move(ImmPtr(currStructure), regT3);
- bucketsOfFail.append(branchPtr(NotEqual, AbsoluteAddress(prototypeStructureAddress), regT3));
-#else
- bucketsOfFail.append(branchPtr(NotEqual, AbsoluteAddress(prototypeStructureAddress), ImmPtr(currStructure)));
-#endif
+ currStructure = it->get();
+ testPrototype(protoObject, bucketsOfFail);
}
ASSERT(protoObject);
@@ -1000,7 +1026,9 @@ void JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, Polymorphi
compileGetDirectOffset(protoObject, regT1, regT0, cachedOffset);
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
if (needsStubLink) {
for (Vector<CallRecord>::iterator iter = m_calls.begin(); iter != m_calls.end(); ++iter) {
@@ -1028,9 +1056,11 @@ void JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, Polymorphi
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
RepatchBuffer repatchBuffer(m_codeBlock);
repatchBuffer.relink(jumpLocation, entryLabel);
+ stubInfo->u.getByIdProtoList.listSize++;
+ return true;
}
-void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame)
+bool JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame)
{
ASSERT(count);
@@ -1040,20 +1070,12 @@ void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* str
bucketsOfFail.append(checkStructure(regT0, structure));
Structure* currStructure = structure;
- RefPtr<Structure>* chainEntries = chain->head();
+ RefPtr<Structure>* it = chain->head();
JSObject* protoObject = 0;
- for (unsigned i = 0; i < count; ++i) {
+ for (unsigned i = 0; i < count; ++i, ++it) {
protoObject = asObject(currStructure->prototypeForLookup(callFrame));
- currStructure = chainEntries[i].get();
-
- // Check the prototype object's Structure had not changed.
- Structure** prototypeStructureAddress = &(protoObject->m_structure);
-#if CPU(X86_64)
- move(ImmPtr(currStructure), regT3);
- bucketsOfFail.append(branchPtr(NotEqual, AbsoluteAddress(prototypeStructureAddress), regT3));
-#else
- bucketsOfFail.append(branchPtr(NotEqual, AbsoluteAddress(prototypeStructureAddress), ImmPtr(currStructure)));
-#endif
+ currStructure = it->get();
+ testPrototype(protoObject, bucketsOfFail);
}
ASSERT(protoObject);
@@ -1078,7 +1100,9 @@ void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* str
compileGetDirectOffset(protoObject, regT1, regT0, cachedOffset);
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
if (needsStubLink) {
for (Vector<CallRecord>::iterator iter = m_calls.begin(); iter != m_calls.end(); ++iter) {
@@ -1095,7 +1119,6 @@ void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* str
// Track the stub we have created so that it will be deleted later.
CodeLocationLabel entryLabel = patchBuffer.finalizeCodeAddendum();
- stubInfo->stubRoutine = entryLabel;
// Finally patch the jump to slow case back in the hot path to jump here instead.
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
@@ -1104,6 +1127,8 @@ void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* str
// We don't want to patch more than once - in future go to cti_op_put_by_id_generic.
repatchBuffer.relinkCallerToFunction(returnAddress, FunctionPtr(cti_op_get_by_id_proto_list));
+ stubInfo->initGetByIdChain(structure, chain, entryLabel);
+ return true;
}
/* ------------------------------ END: !ENABLE / ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS) ------------------------------ */
diff --git a/JavaScriptCore/jit/JITPropertyAccess32_64.cpp b/JavaScriptCore/jit/JITPropertyAccess32_64.cpp
index 375d3e8..9239641 100644
--- a/JavaScriptCore/jit/JITPropertyAccess32_64.cpp
+++ b/JavaScriptCore/jit/JITPropertyAccess32_64.cpp
@@ -295,7 +295,10 @@ JIT::CodePtr JIT::stringGetByValStubGenerator(JSGlobalData* globalData, Executab
jit.move(Imm32(0), regT0);
jit.ret();
- LinkBuffer patchBuffer(&jit, pool);
+ LinkBuffer patchBuffer(&jit, pool, 0);
+ // We can't run without the JIT trampolines!
+ if (!patchBuffer.allocationSuccessful())
+ CRASH();
return patchBuffer.finalizeCode().m_code;
}
@@ -311,11 +314,11 @@ void JIT::emit_op_get_by_val(Instruction* currentInstruction)
emitJumpSlowCaseIfNotJSCell(base, regT1);
addSlowCase(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsArrayVPtr)));
- loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_vector)), regT3);
+ loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_storage)), regT3);
addSlowCase(branch32(AboveOrEqual, regT2, Address(regT0, OBJECT_OFFSETOF(JSArray, m_vectorLength))));
- load32(BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT1); // tag
- load32(BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT0); // payload
+ load32(BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT1); // tag
+ load32(BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT0); // payload
addSlowCase(branch32(Equal, regT1, Imm32(JSValue::EmptyValueTag)));
emitStore(dst, regT1, regT0);
@@ -364,22 +367,22 @@ void JIT::emit_op_put_by_val(Instruction* currentInstruction)
addSlowCase(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsArrayVPtr)));
addSlowCase(branch32(AboveOrEqual, regT2, Address(regT0, OBJECT_OFFSETOF(JSArray, m_vectorLength))));
- loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_vector)), regT3);
+ loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_storage)), regT3);
- Jump empty = branch32(Equal, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.tag)), Imm32(JSValue::EmptyValueTag));
+ Jump empty = branch32(Equal, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), Imm32(JSValue::EmptyValueTag));
Label storeResult(this);
emitLoad(value, regT1, regT0);
- store32(regT0, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.payload))); // payload
- store32(regT1, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.tag))); // tag
+ store32(regT0, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.payload))); // payload
+ store32(regT1, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.tag))); // tag
Jump end = jump();
empty.link(this);
- add32(Imm32(1), Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_numValuesInVector)-OBJECT_OFFSETOF(ArrayStorage, m_vector)));
- branch32(Below, regT2, Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_length)-OBJECT_OFFSETOF(ArrayStorage, m_vector))).linkTo(storeResult, this);
+ add32(Imm32(1), Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_numValuesInVector)));
+ branch32(Below, regT2, Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_length))).linkTo(storeResult, this);
add32(Imm32(1), regT2, regT0);
- store32(regT0, Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_length)-OBJECT_OFFSETOF(ArrayStorage, m_vector)));
+ store32(regT0, Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_length)));
jump().linkTo(storeResult, this);
end.link(this);
@@ -585,27 +588,36 @@ void JIT::compileGetDirectOffset(JSObject* base, RegisterID temp, RegisterID res
load32(Address(temp, offset + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), resultTag);
}
-void JIT::testPrototype(Structure* structure, JumpList& failureCases)
+void JIT::testPrototype(JSValue prototype, JumpList& failureCases)
{
- if (structure->m_prototype.isNull())
+ if (prototype.isNull())
return;
- failureCases.append(branchPtr(NotEqual, AbsoluteAddress(&asCell(structure->m_prototype)->m_structure), ImmPtr(asCell(structure->m_prototype)->m_structure)));
+ // We have a special case for X86_64 here because X86 instructions that take immediate values
+ // only take 32 bit immediate values, wheras the pointer constants we are using here are 64 bit
+ // values. In the non X86_64 case, the generated code is slightly more efficient because it uses
+ // two less instructions and doesn't require any scratch registers.
+#if CPU(X86_64)
+ move(ImmPtr(asCell(prototype)->structure()), regT3);
+ failureCases.append(branchPtr(NotEqual, AbsoluteAddress(&asCell(prototype)->m_structure), regT3));
+#else
+ failureCases.append(branchPtr(NotEqual, AbsoluteAddress(&asCell(prototype)->m_structure), ImmPtr(asCell(prototype)->structure())));
+#endif
}
-void JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure* oldStructure, Structure* newStructure, size_t cachedOffset, StructureChain* chain, ReturnAddressPtr returnAddress, bool direct)
+bool JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure* oldStructure, Structure* newStructure, size_t cachedOffset, StructureChain* chain, ReturnAddressPtr returnAddress, bool direct)
{
// It is assumed that regT0 contains the basePayload and regT1 contains the baseTag. The value can be found on the stack.
JumpList failureCases;
failureCases.append(branch32(NotEqual, regT1, Imm32(JSValue::CellTag)));
failureCases.append(branchPtr(NotEqual, Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), ImmPtr(oldStructure)));
- testPrototype(oldStructure, failureCases);
+ testPrototype(oldStructure->storedPrototype(), failureCases);
if (!direct) {
// Verify that nothing in the prototype chain has a setter for this property.
for (RefPtr<Structure>* it = chain->head(); *it; ++it)
- testPrototype(it->get(), failureCases);
+ testPrototype((*it)->storedPrototype(), failureCases);
}
// Reallocate property storage if needed.
@@ -644,8 +656,10 @@ void JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure
restoreArgumentReferenceForTrampoline();
Call failureCall = tailRecursiveCall();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
-
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
+
patchBuffer.link(failureCall, FunctionPtr(direct ? cti_op_put_by_id_direct_fail : cti_op_put_by_id_fail));
if (willNeedStorageRealloc) {
@@ -654,9 +668,10 @@ void JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure
}
CodeLocationLabel entryLabel = patchBuffer.finalizeCodeAddendum();
- stubInfo->stubRoutine = entryLabel;
RepatchBuffer repatchBuffer(m_codeBlock);
repatchBuffer.relinkCallerToTrampoline(returnAddress, entryLabel);
+ stubInfo->initPutByIdTransition(oldStructure, newStructure, chain, entryLabel);
+ return true;
}
void JIT::patchGetByIdSelf(CodeBlock* codeBlock, StructureStubInfo* stubInfo, Structure* structure, size_t cachedOffset, ReturnAddressPtr returnAddress)
@@ -721,26 +736,26 @@ void JIT::patchPutByIdReplace(CodeBlock* codeBlock, StructureStubInfo* stubInfo,
repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabel32AtOffset(patchOffsetPutByIdPropertyMapOffset2), offset + OBJECT_OFFSETOF(JSValue, u.asBits.tag)); // tag
}
-void JIT::privateCompilePatchGetArrayLength(ReturnAddressPtr returnAddress)
+bool JIT::privateCompilePatchGetArrayLength(StructureStubInfo* stubInfo, ReturnAddressPtr returnAddress)
{
- StructureStubInfo* stubInfo = &m_codeBlock->getStubInfo(returnAddress);
-
// regT0 holds a JSCell*
// Check for array
Jump failureCases1 = branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsArrayVPtr));
// Checks out okay! - get the length from the storage
- loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_vector)), regT2);
- load32(Address(regT2, OBJECT_OFFSETOF(ArrayStorage, m_length)-OBJECT_OFFSETOF(ArrayStorage, m_vector)), regT2);
+ loadPtr(Address(regT0, OBJECT_OFFSETOF(JSArray, m_storage)), regT2);
+ load32(Address(regT2, OBJECT_OFFSETOF(ArrayStorage, m_length)), regT2);
Jump failureCases2 = branch32(Above, regT2, Imm32(INT_MAX));
move(regT2, regT0);
move(Imm32(JSValue::Int32Tag), regT1);
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
-
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
+
// Use the patch information to link the failure cases back to the original slow case routine.
CodeLocationLabel slowCaseBegin = stubInfo->callReturnLocation.labelAtOffset(-patchOffsetGetByIdSlowCaseCall);
patchBuffer.link(failureCases1, slowCaseBegin);
@@ -751,8 +766,7 @@ void JIT::privateCompilePatchGetArrayLength(ReturnAddressPtr returnAddress)
// Track the stub we have created so that it will be deleted later.
CodeLocationLabel entryLabel = patchBuffer.finalizeCodeAddendum();
- stubInfo->stubRoutine = entryLabel;
-
+
// Finally patch the jump to slow case back in the hot path to jump here instead.
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
RepatchBuffer repatchBuffer(m_codeBlock);
@@ -760,9 +774,11 @@ void JIT::privateCompilePatchGetArrayLength(ReturnAddressPtr returnAddress)
// We don't want to patch more than once - in future go to cti_op_put_by_id_generic.
repatchBuffer.relinkCallerToFunction(returnAddress, FunctionPtr(cti_op_get_by_id_array_fail));
+ stubInfo->stubRoutine = entryLabel;
+ return true;
}
-void JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame)
+bool JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame)
{
// regT0 holds a JSCell*
@@ -803,8 +819,10 @@ void JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* str
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
-
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
+
// Use the patch information to link the failure cases back to the original slow case routine.
CodeLocationLabel slowCaseBegin = stubInfo->callReturnLocation.labelAtOffset(-patchOffsetGetByIdSlowCaseCall);
patchBuffer.link(failureCases1, slowCaseBegin);
@@ -822,7 +840,6 @@ void JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* str
// Track the stub we have created so that it will be deleted later.
CodeLocationLabel entryLabel = patchBuffer.finalizeCodeAddendum();
- stubInfo->stubRoutine = entryLabel;
// Finally patch the jump to slow case back in the hot path to jump here instead.
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
@@ -831,11 +848,16 @@ void JIT::privateCompileGetByIdProto(StructureStubInfo* stubInfo, Structure* str
// We don't want to patch more than once - in future go to cti_op_put_by_id_generic.
repatchBuffer.relinkCallerToFunction(returnAddress, FunctionPtr(cti_op_get_by_id_proto_list));
+ stubInfo->initGetByIdProto(structure, prototypeStructure, entryLabel);
+ return true;
}
-void JIT::privateCompileGetByIdSelfList(StructureStubInfo* stubInfo, PolymorphicAccessStructureList* polymorphicStructures, int currentIndex, Structure* structure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
+bool JIT::privateCompileGetByIdSelfList(StructureStubInfo* stubInfo, Structure* structure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset)
{
+ PolymorphicAccessStructureList* polymorphicStructures = stubInfo->u.getByIdSelfList.structureList;
+ int currentIndex = stubInfo->u.getByIdSelfList.listSize;
+
// regT0 holds a JSCell*
Jump failureCase = checkStructure(regT0, structure);
bool needsStubLink = false;
@@ -864,7 +886,10 @@ void JIT::privateCompileGetByIdSelfList(StructureStubInfo* stubInfo, Polymorphic
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
+
if (needsStubLink) {
for (Vector<CallRecord>::iterator iter = m_calls.begin(); iter != m_calls.end(); ++iter) {
if (iter->to)
@@ -890,10 +915,15 @@ void JIT::privateCompileGetByIdSelfList(StructureStubInfo* stubInfo, Polymorphic
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
RepatchBuffer repatchBuffer(m_codeBlock);
repatchBuffer.relink(jumpLocation, entryLabel);
+ stubInfo->u.getByIdSelfList.listSize++;
+ return true;
}
-void JIT::privateCompileGetByIdProtoList(StructureStubInfo* stubInfo, PolymorphicAccessStructureList* prototypeStructures, int currentIndex, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, CallFrame* callFrame)
+bool JIT::privateCompileGetByIdProtoList(StructureStubInfo* stubInfo, Structure* structure, Structure* prototypeStructure, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, CallFrame* callFrame)
{
+ PolymorphicAccessStructureList* prototypeStructures = stubInfo->u.getByIdProtoList.structureList;
+ int currentIndex = stubInfo->u.getByIdProtoList.listSize;
+
// regT0 holds a JSCell*
// The prototype object definitely exists (if this stub exists the CodeBlock is referencing a Structure that is
@@ -934,7 +964,10 @@ void JIT::privateCompileGetByIdProtoList(StructureStubInfo* stubInfo, Polymorphi
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
+
if (needsStubLink) {
for (Vector<CallRecord>::iterator iter = m_calls.begin(); iter != m_calls.end(); ++iter) {
if (iter->to)
@@ -959,10 +992,15 @@ void JIT::privateCompileGetByIdProtoList(StructureStubInfo* stubInfo, Polymorphi
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
RepatchBuffer repatchBuffer(m_codeBlock);
repatchBuffer.relink(jumpLocation, entryLabel);
+ stubInfo->u.getByIdProtoList.listSize++;
+ return true;
}
-void JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, PolymorphicAccessStructureList* prototypeStructures, int currentIndex, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, CallFrame* callFrame)
+bool JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, CallFrame* callFrame)
{
+ PolymorphicAccessStructureList* prototypeStructures = stubInfo->u.getByIdProtoList.structureList;
+ int currentIndex = stubInfo->u.getByIdProtoList.listSize;
+
// regT0 holds a JSCell*
ASSERT(count);
@@ -972,20 +1010,12 @@ void JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, Polymorphi
bucketsOfFail.append(checkStructure(regT0, structure));
Structure* currStructure = structure;
- RefPtr<Structure>* chainEntries = chain->head();
+ RefPtr<Structure>* it = chain->head();
JSObject* protoObject = 0;
- for (unsigned i = 0; i < count; ++i) {
+ for (unsigned i = 0; i < count; ++i, ++it) {
protoObject = asObject(currStructure->prototypeForLookup(callFrame));
- currStructure = chainEntries[i].get();
-
- // Check the prototype object's Structure had not changed.
- Structure** prototypeStructureAddress = &(protoObject->m_structure);
-#if CPU(X86_64)
- move(ImmPtr(currStructure), regT3);
- bucketsOfFail.append(branchPtr(NotEqual, AbsoluteAddress(prototypeStructureAddress), regT3));
-#else
- bucketsOfFail.append(branchPtr(NotEqual, AbsoluteAddress(prototypeStructureAddress), ImmPtr(currStructure)));
-#endif
+ currStructure = it->get();
+ testPrototype(protoObject, bucketsOfFail);
}
ASSERT(protoObject);
@@ -1011,7 +1041,10 @@ void JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, Polymorphi
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
+
if (needsStubLink) {
for (Vector<CallRecord>::iterator iter = m_calls.begin(); iter != m_calls.end(); ++iter) {
if (iter->to)
@@ -1037,9 +1070,11 @@ void JIT::privateCompileGetByIdChainList(StructureStubInfo* stubInfo, Polymorphi
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
RepatchBuffer repatchBuffer(m_codeBlock);
repatchBuffer.relink(jumpLocation, entryLabel);
+ stubInfo->u.getByIdProtoList.listSize++;
+ return true;
}
-void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame)
+bool JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* structure, StructureChain* chain, size_t count, const Identifier& ident, const PropertySlot& slot, size_t cachedOffset, ReturnAddressPtr returnAddress, CallFrame* callFrame)
{
// regT0 holds a JSCell*
ASSERT(count);
@@ -1050,20 +1085,12 @@ void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* str
bucketsOfFail.append(checkStructure(regT0, structure));
Structure* currStructure = structure;
- RefPtr<Structure>* chainEntries = chain->head();
+ RefPtr<Structure>* it = chain->head();
JSObject* protoObject = 0;
- for (unsigned i = 0; i < count; ++i) {
+ for (unsigned i = 0; i < count; ++i, ++it) {
protoObject = asObject(currStructure->prototypeForLookup(callFrame));
- currStructure = chainEntries[i].get();
-
- // Check the prototype object's Structure had not changed.
- Structure** prototypeStructureAddress = &(protoObject->m_structure);
-#if CPU(X86_64)
- move(ImmPtr(currStructure), regT3);
- bucketsOfFail.append(branchPtr(NotEqual, AbsoluteAddress(prototypeStructureAddress), regT3));
-#else
- bucketsOfFail.append(branchPtr(NotEqual, AbsoluteAddress(prototypeStructureAddress), ImmPtr(currStructure)));
-#endif
+ currStructure = it->get();
+ testPrototype(protoObject, bucketsOfFail);
}
ASSERT(protoObject);
@@ -1088,7 +1115,10 @@ void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* str
compileGetDirectOffset(protoObject, regT2, regT1, regT0, cachedOffset);
Jump success = jump();
- LinkBuffer patchBuffer(this, m_codeBlock->executablePool());
+ LinkBuffer patchBuffer(this, m_codeBlock->executablePool(), 0);
+ if (!patchBuffer.allocationSuccessful())
+ return false;
+
if (needsStubLink) {
for (Vector<CallRecord>::iterator iter = m_calls.begin(); iter != m_calls.end(); ++iter) {
if (iter->to)
@@ -1103,8 +1133,7 @@ void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* str
// Track the stub we have created so that it will be deleted later.
CodeLocationLabel entryLabel = patchBuffer.finalizeCodeAddendum();
- stubInfo->stubRoutine = entryLabel;
-
+
// Finally patch the jump to slow case back in the hot path to jump here instead.
CodeLocationJump jumpLocation = stubInfo->hotPathBegin.jumpAtOffset(patchOffsetGetByIdBranchToSlowCase);
RepatchBuffer repatchBuffer(m_codeBlock);
@@ -1112,6 +1141,8 @@ void JIT::privateCompileGetByIdChain(StructureStubInfo* stubInfo, Structure* str
// We don't want to patch more than once - in future go to cti_op_put_by_id_generic.
repatchBuffer.relinkCallerToFunction(returnAddress, FunctionPtr(cti_op_get_by_id_proto_list));
+ stubInfo->initGetByIdChain(structure, chain, entryLabel);
+ return true;
}
/* ------------------------------ END: !ENABLE / ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS) ------------------------------ */
diff --git a/JavaScriptCore/jit/JITStubs.cpp b/JavaScriptCore/jit/JITStubs.cpp
index f088b6e..c4ff0ca 100644
--- a/JavaScriptCore/jit/JITStubs.cpp
+++ b/JavaScriptCore/jit/JITStubs.cpp
@@ -71,7 +71,7 @@ namespace JSC {
#define SYMBOL_STRING(name) #name
#endif
-#if OS(IPHONE_OS)
+#if OS(IOS)
#define THUMB_FUNC_PARAM(name) SYMBOL_STRING(name)
#else
#define THUMB_FUNC_PARAM(name)
@@ -239,7 +239,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
#define EXCEPTION_OFFSET 0x58
#define ENABLE_PROFILER_REFERENCE_OFFSET 0x60
-#elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
+#elif (COMPILER(GCC) || COMPILER(RVCT)) && CPU(ARM_TRADITIONAL)
#define THUNK_RETURN_ADDRESS_OFFSET 64
#define PRESERVEDR4_OFFSET 68
@@ -304,6 +304,12 @@ extern "C" {
}
}
+#elif COMPILER(MSVC) && CPU(ARM_TRADITIONAL)
+
+#define THUNK_RETURN_ADDRESS_OFFSET 64
+#define PRESERVEDR4_OFFSET 68
+// See DEFINE_STUB_FUNCTION for more information.
+
#else
#error "JIT not supported on this platform."
#endif
@@ -451,7 +457,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
#define EXCEPTION_OFFSET 0x38
#define ENABLE_PROFILER_REFERENCE_OFFSET 0x40
-#elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
+#elif (COMPILER(GCC) || COMPILER(RVCT)) && CPU(ARM_TRADITIONAL)
#define THUNK_RETURN_ADDRESS_OFFSET 32
#define PRESERVEDR4_OFFSET 36
@@ -548,48 +554,6 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
".end " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
);
-#elif COMPILER(RVCT) && CPU(ARM_TRADITIONAL)
-
-#define THUNK_RETURN_ADDRESS_OFFSET 32
-#define PRESERVEDR4_OFFSET 36
-
-__asm EncodedJSValue ctiTrampoline(void*, RegisterFile*, CallFrame*, JSValue*, Profiler**, JSGlobalData*)
-{
- ARM
- stmdb sp!, {r1-r3}
- stmdb sp!, {r4-r8, lr}
- sub sp, sp, #36
- mov r4, r2
- mov r5, #512
- mov lr, pc
- bx r0
- add sp, sp, #36
- ldmia sp!, {r4-r8, lr}
- add sp, sp, #12
- bx lr
-}
-
-__asm void ctiVMThrowTrampoline()
-{
- ARM
- PRESERVE8
- mov r0, sp
- bl cti_vm_throw
- add sp, sp, #36
- ldmia sp!, {r4-r8, lr}
- add sp, sp, #12
- bx lr
-}
-
-__asm void ctiOpThrowNotCaught()
-{
- ARM
- add sp, sp, #36
- ldmia sp!, {r4-r8, lr}
- add sp, sp, #12
- bx lr
-}
-
#elif COMPILER(MSVC) && CPU(X86)
// These ASSERTs remind you that, if you change the layout of JITStackFrame, you
@@ -649,6 +613,12 @@ extern "C" {
}
}
+#elif COMPILER(MSVC) && CPU(ARM_TRADITIONAL)
+
+#define THUNK_RETURN_ADDRESS_OFFSET 32
+#define PRESERVEDR4_OFFSET 36
+// See DEFINE_STUB_FUNCTION for more information.
+
#else
#error "JIT not supported on this platform."
#endif
@@ -755,6 +725,44 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
"mov pc, lr" "\n"
);
+#elif COMPILER(RVCT) && CPU(ARM_TRADITIONAL)
+
+__asm EncodedJSValue ctiTrampoline(void*, RegisterFile*, CallFrame*, JSValue*, Profiler**, JSGlobalData*)
+{
+ ARM
+ stmdb sp!, {r1-r3}
+ stmdb sp!, {r4-r8, lr}
+ sub sp, sp, # PRESERVEDR4_OFFSET
+ mov r4, r2
+ mov r5, #512
+ mov lr, pc
+ bx r0
+ add sp, sp, # PRESERVEDR4_OFFSET
+ ldmia sp!, {r4-r8, lr}
+ add sp, sp, #12
+ bx lr
+}
+
+__asm void ctiVMThrowTrampoline()
+{
+ ARM
+ PRESERVE8
+ mov r0, sp
+ bl cti_vm_throw
+ add sp, sp, # PRESERVEDR4_OFFSET
+ ldmia sp!, {r4-r8, lr}
+ add sp, sp, #12
+ bx lr
+}
+
+__asm void ctiOpThrowNotCaught()
+{
+ ARM
+ add sp, sp, # PRESERVEDR4_OFFSET
+ ldmia sp!, {r4-r8, lr}
+ add sp, sp, #12
+ bx lr
+}
#endif
#if ENABLE(OPCODE_SAMPLING)
@@ -815,111 +823,89 @@ JITThunks::~JITThunks()
#if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS)
-NEVER_INLINE void JITThunks::tryCachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, ReturnAddressPtr returnAddress, JSValue baseValue, const PutPropertySlot& slot, StructureStubInfo* stubInfo, bool direct)
+NEVER_INLINE bool JITThunks::tryCachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, ReturnAddressPtr returnAddress, JSValue baseValue, const PutPropertySlot& slot, StructureStubInfo* stubInfo, bool direct)
{
// The interpreter checks for recursion here; I do not believe this can occur in CTI.
if (!baseValue.isCell())
- return;
+ return false;
// Uncacheable: give up.
- if (!slot.isCacheable()) {
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(direct ? cti_op_put_by_id_direct_generic : cti_op_put_by_id_generic));
- return;
- }
+ if (!slot.isCacheable())
+ return false;
JSCell* baseCell = asCell(baseValue);
Structure* structure = baseCell->structure();
- if (structure->isUncacheableDictionary()) {
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(direct ? cti_op_put_by_id_direct_generic : cti_op_put_by_id_generic));
- return;
- }
+ if (structure->isUncacheableDictionary())
+ return false;
// If baseCell != base, then baseCell must be a proxy for another object.
- if (baseCell != slot.base()) {
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(direct ? cti_op_put_by_id_direct_generic : cti_op_put_by_id_generic));
- return;
- }
+ if (baseCell != slot.base())
+ return false;
// Cache hit: Specialize instruction and ref Structures.
// Structure transition, cache transition info
if (slot.type() == PutPropertySlot::NewProperty) {
- if (structure->isDictionary()) {
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(direct ? cti_op_put_by_id_direct_generic : cti_op_put_by_id_generic));
- return;
- }
+ if (structure->isDictionary())
+ return false;
// put_by_id_transition checks the prototype chain for setters.
normalizePrototypeChain(callFrame, baseCell);
StructureChain* prototypeChain = structure->prototypeChain(callFrame);
- stubInfo->initPutByIdTransition(structure->previousID(), structure, prototypeChain);
- JIT::compilePutByIdTransition(callFrame->scopeChain()->globalData, codeBlock, stubInfo, structure->previousID(), structure, slot.cachedOffset(), prototypeChain, returnAddress, direct);
- return;
+ return JIT::compilePutByIdTransition(callFrame->scopeChain()->globalData, codeBlock, stubInfo, structure->previousID(), structure, slot.cachedOffset(), prototypeChain, returnAddress, direct);
}
-
- stubInfo->initPutByIdReplace(structure);
JIT::patchPutByIdReplace(codeBlock, stubInfo, structure, slot.cachedOffset(), returnAddress, direct);
+ stubInfo->initPutByIdReplace(structure);
+ return true;
}
-NEVER_INLINE void JITThunks::tryCacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, ReturnAddressPtr returnAddress, JSValue baseValue, const Identifier& propertyName, const PropertySlot& slot, StructureStubInfo* stubInfo)
+NEVER_INLINE bool JITThunks::tryCacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, ReturnAddressPtr returnAddress, JSValue baseValue, const Identifier& propertyName, const PropertySlot& slot, StructureStubInfo* stubInfo)
{
// FIXME: Write a test that proves we need to check for recursion here just
// like the interpreter does, then add a check for recursion.
// FIXME: Cache property access for immediates.
- if (!baseValue.isCell()) {
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(cti_op_get_by_id_generic));
- return;
- }
+ if (!baseValue.isCell())
+ return false;
JSGlobalData* globalData = &callFrame->globalData();
- if (isJSArray(globalData, baseValue) && propertyName == callFrame->propertyNames().length) {
- JIT::compilePatchGetArrayLength(callFrame->scopeChain()->globalData, codeBlock, returnAddress);
- return;
- }
+ if (isJSArray(globalData, baseValue) && propertyName == callFrame->propertyNames().length)
+ return JIT::compilePatchGetArrayLength(callFrame->scopeChain()->globalData, codeBlock, stubInfo, returnAddress);
if (isJSString(globalData, baseValue) && propertyName == callFrame->propertyNames().length) {
// The tradeoff of compiling an patched inline string length access routine does not seem
// to pay off, so we currently only do this for arrays.
ctiPatchCallByReturnAddress(codeBlock, returnAddress, globalData->jitStubs->ctiStringLengthTrampoline());
- return;
+ return true;
}
// Uncacheable: give up.
- if (!slot.isCacheable()) {
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(cti_op_get_by_id_generic));
- return;
- }
+ if (!slot.isCacheable())
+ return false;
JSCell* baseCell = asCell(baseValue);
Structure* structure = baseCell->structure();
- if (structure->isUncacheableDictionary()) {
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(cti_op_get_by_id_generic));
- return;
- }
+ if (structure->isUncacheableDictionary())
+ return false;
// Cache hit: Specialize instruction and ref Structures.
if (slot.slotBase() == baseValue) {
- // set this up, so derefStructures can do it's job.
- stubInfo->initGetByIdSelf(structure);
if (slot.cachedPropertyType() != PropertySlot::Value)
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(cti_op_get_by_id_self_fail));
- else
- JIT::patchGetByIdSelf(codeBlock, stubInfo, structure, slot.cachedOffset(), returnAddress);
- return;
+ return false;
+ JIT::patchGetByIdSelf(codeBlock, stubInfo, structure, slot.cachedOffset(), returnAddress);
+ stubInfo->initGetByIdSelf(structure);
+ return true;
}
- if (structure->isDictionary()) {
- ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(cti_op_get_by_id_generic));
- return;
- }
+ if (structure->isDictionary())
+ return false;
if (slot.slotBase() == structure->prototypeForLookup(callFrame)) {
ASSERT(slot.slotBase().isObject());
@@ -933,25 +919,20 @@ NEVER_INLINE void JITThunks::tryCacheGetByID(CallFrame* callFrame, CodeBlock* co
slotBaseObject->flattenDictionaryObject();
offset = slotBaseObject->structure()->get(propertyName);
}
-
- stubInfo->initGetByIdProto(structure, slotBaseObject->structure());
-
ASSERT(!structure->isDictionary());
ASSERT(!slotBaseObject->structure()->isDictionary());
- JIT::compileGetByIdProto(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, structure, slotBaseObject->structure(), propertyName, slot, offset, returnAddress);
- return;
+ return JIT::compileGetByIdProto(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, structure, slotBaseObject->structure(), propertyName, slot, offset, returnAddress);
}
size_t offset = slot.cachedOffset();
size_t count = normalizePrototypeChain(callFrame, baseValue, slot.slotBase(), propertyName, offset);
if (!count) {
stubInfo->accessType = access_get_by_id_generic;
- return;
+ return true;
}
StructureChain* prototypeChain = structure->prototypeChain(callFrame);
- stubInfo->initGetByIdChain(structure, prototypeChain);
- JIT::compileGetByIdChain(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, structure, prototypeChain, count, propertyName, slot, offset, returnAddress);
+ return JIT::compileGetByIdChain(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, structure, prototypeChain, count, propertyName, slot, offset, returnAddress);
}
#endif // ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS)
@@ -1152,9 +1133,9 @@ RVCT(__asm #rtype# cti_#op#(STUB_ARGS_DECLARATION))
RVCT({)
RVCT( ARM)
RVCT( IMPORT JITStubThunked_#op#)
-RVCT( str lr, [sp, ##offset#])
+RVCT( str lr, [sp, # THUNK_RETURN_ADDRESS_OFFSET])
RVCT( bl JITStubThunked_#op#)
-RVCT( ldr lr, [sp, ##offset#])
+RVCT( ldr lr, [sp, # THUNK_RETURN_ADDRESS_OFFSET])
RVCT( bx lr)
RVCT(})
RVCT()
@@ -1163,6 +1144,62 @@ RVCT()
/* Include the generated file */
#include "GeneratedJITStubs_RVCT.h"
+#elif CPU(ARM_TRADITIONAL) && COMPILER(MSVC)
+
+#define DEFINE_STUB_FUNCTION(rtype, op) extern "C" rtype JITStubThunked_##op(STUB_ARGS_DECLARATION)
+
+/* The following is a workaround for MSVC toolchain; inline assembler is not supported */
+
+/* The following section is a template to generate code for GeneratedJITStubs_MSVC.asm */
+/* The pattern "#xxx#" will be replaced with "xxx" */
+
+/*
+MSVC_BEGIN( AREA Trampoline, CODE)
+MSVC_BEGIN()
+MSVC_BEGIN( EXPORT ctiTrampoline)
+MSVC_BEGIN( EXPORT ctiVMThrowTrampoline)
+MSVC_BEGIN( EXPORT ctiOpThrowNotCaught)
+MSVC_BEGIN()
+MSVC_BEGIN(ctiTrampoline PROC)
+MSVC_BEGIN( stmdb sp!, {r1-r3})
+MSVC_BEGIN( stmdb sp!, {r4-r8, lr})
+MSVC_BEGIN( sub sp, sp, ##offset#+4)
+MSVC_BEGIN( mov r4, r2)
+MSVC_BEGIN( mov r5, #512)
+MSVC_BEGIN( ; r0 contains the code)
+MSVC_BEGIN( mov lr, pc)
+MSVC_BEGIN( bx r0)
+MSVC_BEGIN( add sp, sp, ##offset#+4)
+MSVC_BEGIN( ldmia sp!, {r4-r8, lr})
+MSVC_BEGIN( add sp, sp, #12)
+MSVC_BEGIN( bx lr)
+MSVC_BEGIN(ctiTrampoline ENDP)
+MSVC_BEGIN()
+MSVC_BEGIN(ctiVMThrowTrampoline PROC)
+MSVC_BEGIN( mov r0, sp)
+MSVC_BEGIN( mov lr, pc)
+MSVC_BEGIN( bl cti_vm_throw)
+MSVC_BEGIN(ctiOpThrowNotCaught)
+MSVC_BEGIN( add sp, sp, ##offset#+4)
+MSVC_BEGIN( ldmia sp!, {r4-r8, lr})
+MSVC_BEGIN( add sp, sp, #12)
+MSVC_BEGIN( bx lr)
+MSVC_BEGIN(ctiVMThrowTrampoline ENDP)
+MSVC_BEGIN()
+
+MSVC( EXPORT cti_#op#)
+MSVC( IMPORT JITStubThunked_#op#)
+MSVC(cti_#op# PROC)
+MSVC( str lr, [sp, ##offset#])
+MSVC( bl JITStubThunked_#op#)
+MSVC( ldr lr, [sp, ##offset#])
+MSVC( bx lr)
+MSVC(cti_#op# ENDP)
+MSVC()
+
+MSVC_END( END)
+*/
+
#else
#define DEFINE_STUB_FUNCTION(rtype, op) rtype JIT_STUB cti_##op(STUB_ARGS_DECLARATION)
#endif
@@ -1348,9 +1385,13 @@ DEFINE_STUB_FUNCTION(void, op_put_by_id)
StructureStubInfo* stubInfo = &codeBlock->getStubInfo(STUB_RETURN_ADDRESS);
if (!stubInfo->seenOnce())
stubInfo->setSeen();
- else
- JITThunks::tryCachePutByID(callFrame, codeBlock, STUB_RETURN_ADDRESS, stackFrame.args[0].jsValue(), slot, stubInfo, false);
-
+ else {
+ JSValue baseValue = stackFrame.args[0].jsValue();
+ bool cached = JITThunks::tryCachePutByID(callFrame, codeBlock, STUB_RETURN_ADDRESS, baseValue, slot, stubInfo, false);
+ if (!cached && baseValue.isCell())
+ ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_put_by_id_generic));
+ }
+
CHECK_FOR_EXCEPTION_AT_END();
}
@@ -1367,9 +1408,13 @@ DEFINE_STUB_FUNCTION(void, op_put_by_id_direct)
StructureStubInfo* stubInfo = &codeBlock->getStubInfo(STUB_RETURN_ADDRESS);
if (!stubInfo->seenOnce())
stubInfo->setSeen();
- else
- JITThunks::tryCachePutByID(callFrame, codeBlock, STUB_RETURN_ADDRESS, stackFrame.args[0].jsValue(), slot, stubInfo, true);
-
+ else {
+ JSValue baseValue = stackFrame.args[0].jsValue();
+ bool cached = JITThunks::tryCachePutByID(callFrame, codeBlock, STUB_RETURN_ADDRESS, baseValue, slot, stubInfo, true);
+ if (!cached && baseValue.isCell())
+ ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_put_by_id_direct_generic));
+ }
+
CHECK_FOR_EXCEPTION_AT_END();
}
@@ -1501,8 +1546,11 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id)
StructureStubInfo* stubInfo = &codeBlock->getStubInfo(STUB_RETURN_ADDRESS);
if (!stubInfo->seenOnce())
stubInfo->setSeen();
- else
- JITThunks::tryCacheGetByID(callFrame, codeBlock, STUB_RETURN_ADDRESS, baseValue, ident, slot, stubInfo);
+ else {
+ bool cached = JITThunks::tryCacheGetByID(callFrame, codeBlock, STUB_RETURN_ADDRESS, baseValue, ident, slot, stubInfo);
+ if (!cached)
+ ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_generic));
+ }
CHECK_FOR_EXCEPTION_AT_END();
return JSValue::encode(result);
@@ -1531,57 +1579,28 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_self_fail)
ASSERT(slot.slotBase().isObject());
- PolymorphicAccessStructureList* polymorphicStructureList;
- int listIndex = 1;
-
- if (stubInfo->accessType == access_get_by_id_self) {
- ASSERT(!stubInfo->stubRoutine);
- polymorphicStructureList = new PolymorphicAccessStructureList(CodeLocationLabel(), stubInfo->u.getByIdSelf.baseObjectStructure);
- stubInfo->initGetByIdSelfList(polymorphicStructureList, 1);
- } else {
- polymorphicStructureList = stubInfo->u.getByIdSelfList.structureList;
- listIndex = stubInfo->u.getByIdSelfList.listSize;
- }
- if (listIndex < POLYMORPHIC_LIST_CACHE_SIZE) {
- stubInfo->u.getByIdSelfList.listSize++;
- JIT::compileGetByIdSelfList(callFrame->scopeChain()->globalData, codeBlock, stubInfo, polymorphicStructureList, listIndex, asCell(baseValue)->structure(), ident, slot, slot.cachedOffset());
+ // If this is a regular self access (not yet upgraded to list), then switch the stubInfo over.
+ if (stubInfo->accessType == access_get_by_id_self)
+ stubInfo->initGetByIdSelfList(new PolymorphicAccessStructureList(stubInfo->stubRoutine, stubInfo->u.getByIdSelf.baseObjectStructure));
- if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
- ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_generic));
+ // If there is room in the list, try to add a cached entry.
+ if (stubInfo->u.getByIdSelfList.listSize < POLYMORPHIC_LIST_CACHE_SIZE) {
+ bool cached = JIT::compileGetByIdSelfList(callFrame->scopeChain()->globalData, codeBlock, stubInfo, asCell(baseValue)->structure(), ident, slot, slot.cachedOffset());
+ if (cached)
+ return JSValue::encode(result);
}
- } else
- ctiPatchCallByReturnAddress(callFrame->codeBlock(), STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_generic));
+ }
+ ctiPatchCallByReturnAddress(callFrame->codeBlock(), STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_generic));
return JSValue::encode(result);
}
-static PolymorphicAccessStructureList* getPolymorphicAccessStructureListSlot(StructureStubInfo* stubInfo, int& listIndex)
-{
- PolymorphicAccessStructureList* prototypeStructureList = 0;
- listIndex = 1;
-
- switch (stubInfo->accessType) {
- case access_get_by_id_proto:
- prototypeStructureList = new PolymorphicAccessStructureList(stubInfo->stubRoutine, stubInfo->u.getByIdProto.baseObjectStructure, stubInfo->u.getByIdProto.prototypeStructure);
- stubInfo->stubRoutine = CodeLocationLabel();
- stubInfo->initGetByIdProtoList(prototypeStructureList, 2);
- break;
- case access_get_by_id_chain:
- prototypeStructureList = new PolymorphicAccessStructureList(stubInfo->stubRoutine, stubInfo->u.getByIdChain.baseObjectStructure, stubInfo->u.getByIdChain.chain);
- stubInfo->stubRoutine = CodeLocationLabel();
- stubInfo->initGetByIdProtoList(prototypeStructureList, 2);
- break;
- case access_get_by_id_proto_list:
- prototypeStructureList = stubInfo->u.getByIdProtoList.structureList;
- listIndex = stubInfo->u.getByIdProtoList.listSize;
- if (listIndex < POLYMORPHIC_LIST_CACHE_SIZE)
- stubInfo->u.getByIdProtoList.listSize++;
- break;
- default:
- ASSERT_NOT_REACHED();
- }
-
- ASSERT(listIndex <= POLYMORPHIC_LIST_CACHE_SIZE);
- return prototypeStructureList;
+static void setupPolymorphicProtoList(StructureStubInfo* stubInfo)
+{
+ if (stubInfo->accessType == access_get_by_id_proto)
+ stubInfo->initGetByIdProtoList(new PolymorphicAccessStructureList(stubInfo->stubRoutine, stubInfo->u.getByIdProto.baseObjectStructure, stubInfo->u.getByIdProto.prototypeStructure));
+ else if (stubInfo->accessType == access_get_by_id_chain)
+ stubInfo->initGetByIdProtoList(new PolymorphicAccessStructureList(stubInfo->stubRoutine, stubInfo->u.getByIdChain.baseObjectStructure, stubInfo->u.getByIdChain.chain));
+ ASSERT(stubInfo->accessType == access_get_by_id_proto_list);
}
DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_getter_stub)
@@ -1642,40 +1661,36 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_get_by_id_proto_list)
size_t offset = slot.cachedOffset();
- if (slot.slotBase() == baseValue)
- ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_fail));
- else if (slot.slotBase() == asCell(baseValue)->structure()->prototypeForLookup(callFrame)) {
- ASSERT(!asCell(baseValue)->structure()->isDictionary());
- // Since we're accessing a prototype in a loop, it's a good bet that it
- // should not be treated as a dictionary.
- if (slotBaseObject->structure()->isDictionary()) {
- slotBaseObject->flattenDictionaryObject();
- offset = slotBaseObject->structure()->get(propertyName);
- }
-
- int listIndex;
- PolymorphicAccessStructureList* prototypeStructureList = getPolymorphicAccessStructureListSlot(stubInfo, listIndex);
- if (listIndex < POLYMORPHIC_LIST_CACHE_SIZE) {
- JIT::compileGetByIdProtoList(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, prototypeStructureList, listIndex, structure, slotBaseObject->structure(), propertyName, slot, offset);
-
- if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
- ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_list_full));
- }
- } else if (size_t count = normalizePrototypeChain(callFrame, baseValue, slot.slotBase(), propertyName, offset)) {
- ASSERT(!asCell(baseValue)->structure()->isDictionary());
- int listIndex;
- PolymorphicAccessStructureList* prototypeStructureList = getPolymorphicAccessStructureListSlot(stubInfo, listIndex);
-
- if (listIndex < POLYMORPHIC_LIST_CACHE_SIZE) {
- StructureChain* protoChain = structure->prototypeChain(callFrame);
- JIT::compileGetByIdChainList(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, prototypeStructureList, listIndex, structure, protoChain, count, propertyName, slot, offset);
+ // Don't mix self & proto/chain accesses in the same list
+ if (slot.slotBase() != baseValue) {
+ if (slot.slotBase() == asCell(baseValue)->structure()->prototypeForLookup(callFrame)) {
+ ASSERT(!asCell(baseValue)->structure()->isDictionary());
+ // Since we're accessing a prototype in a loop, it's a good bet that it
+ // should not be treated as a dictionary.
+ if (slotBaseObject->structure()->isDictionary()) {
+ slotBaseObject->flattenDictionaryObject();
+ offset = slotBaseObject->structure()->get(propertyName);
+ }
- if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
- ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_list_full));
+ setupPolymorphicProtoList(stubInfo);
+ if (stubInfo->u.getByIdProtoList.listSize < POLYMORPHIC_LIST_CACHE_SIZE) {
+ bool cached = JIT::compileGetByIdProtoList(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, structure, slotBaseObject->structure(), propertyName, slot, offset);
+ if (cached)
+ return JSValue::encode(result);
+ }
+ } else if (size_t count = normalizePrototypeChain(callFrame, baseValue, slot.slotBase(), propertyName, offset)) {
+ ASSERT(!asCell(baseValue)->structure()->isDictionary());
+
+ setupPolymorphicProtoList(stubInfo);
+ if (stubInfo->u.getByIdProtoList.listSize < POLYMORPHIC_LIST_CACHE_SIZE) {
+ bool cached = JIT::compileGetByIdChainList(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, structure, structure->prototypeChain(callFrame), count, propertyName, slot, offset);
+ if (cached)
+ return JSValue::encode(result);
+ }
}
- } else
- ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_fail));
+ }
+ ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_fail));
return JSValue::encode(result);
}
@@ -2611,16 +2626,17 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_global)
STUB_INIT_STACK_FRAME(stackFrame);
CallFrame* callFrame = stackFrame.callFrame;
- JSGlobalObject* globalObject = stackFrame.args[0].globalObject();
- Identifier& ident = stackFrame.args[1].identifier();
- unsigned globalResolveInfoIndex = stackFrame.args[2].int32();
+ CodeBlock* codeBlock = callFrame->codeBlock();
+ JSGlobalObject* globalObject = codeBlock->globalObject();
+ Identifier& ident = stackFrame.args[0].identifier();
+ unsigned globalResolveInfoIndex = stackFrame.args[1].int32();
ASSERT(globalObject->isGlobalObject());
PropertySlot slot(globalObject);
if (globalObject->getPropertySlot(callFrame, ident, slot)) {
JSValue result = slot.getValue(callFrame, ident);
if (slot.isCacheableValue() && !globalObject->structure()->isUncacheableDictionary() && slot.slotBase() == globalObject) {
- GlobalResolveInfo& globalResolveInfo = callFrame->codeBlock()->globalResolveInfo(globalResolveInfoIndex);
+ GlobalResolveInfo& globalResolveInfo = codeBlock->globalResolveInfo(globalResolveInfoIndex);
if (globalResolveInfo.structure)
globalResolveInfo.structure->deref();
globalObject->structure()->ref();
@@ -2633,8 +2649,8 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_resolve_global)
return JSValue::encode(result);
}
- unsigned vPCIndex = callFrame->codeBlock()->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
- stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, callFrame->codeBlock());
+ unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS);
+ stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock);
VM_THROW_EXCEPTION();
}
diff --git a/JavaScriptCore/jit/JITStubs.h b/JavaScriptCore/jit/JITStubs.h
index 306e475..94e319f 100644
--- a/JavaScriptCore/jit/JITStubs.h
+++ b/JavaScriptCore/jit/JITStubs.h
@@ -252,8 +252,8 @@ namespace JSC {
JITThunks(JSGlobalData*);
~JITThunks();
- static void tryCacheGetByID(CallFrame*, CodeBlock*, ReturnAddressPtr returnAddress, JSValue baseValue, const Identifier& propertyName, const PropertySlot&, StructureStubInfo* stubInfo);
- static void tryCachePutByID(CallFrame*, CodeBlock*, ReturnAddressPtr returnAddress, JSValue baseValue, const PutPropertySlot&, StructureStubInfo* stubInfo, bool direct);
+ static bool tryCacheGetByID(CallFrame*, CodeBlock*, ReturnAddressPtr returnAddress, JSValue baseValue, const Identifier& propertyName, const PropertySlot&, StructureStubInfo* stubInfo);
+ static bool tryCachePutByID(CallFrame*, CodeBlock*, ReturnAddressPtr returnAddress, JSValue baseValue, const PutPropertySlot&, StructureStubInfo* stubInfo, bool direct);
MacroAssemblerCodePtr ctiStringLengthTrampoline() { return m_trampolineStructure.ctiStringLengthTrampoline; }
MacroAssemblerCodePtr ctiVirtualCallLink() { return m_trampolineStructure.ctiVirtualCallLink; }
diff --git a/JavaScriptCore/jit/JSInterfaceJIT.h b/JavaScriptCore/jit/JSInterfaceJIT.h
index c85b94d..031bfa8 100644
--- a/JavaScriptCore/jit/JSInterfaceJIT.h
+++ b/JavaScriptCore/jit/JSInterfaceJIT.h
@@ -177,7 +177,7 @@ namespace JSC {
};
struct ThunkHelpers {
- static unsigned stringImplDataOffset() { return WebCore::StringImpl::dataOffset(); }
+ static unsigned stringImplDataOffset() { return StringImpl::dataOffset(); }
static unsigned jsStringLengthOffset() { return OBJECT_OFFSETOF(JSString, m_length); }
static unsigned jsStringValueOffset() { return OBJECT_OFFSETOF(JSString, m_value); }
};
diff --git a/JavaScriptCore/jit/SpecializedThunkJIT.h b/JavaScriptCore/jit/SpecializedThunkJIT.h
index 00f7aef..ba95498 100644
--- a/JavaScriptCore/jit/SpecializedThunkJIT.h
+++ b/JavaScriptCore/jit/SpecializedThunkJIT.h
@@ -129,7 +129,10 @@ namespace JSC {
MacroAssemblerCodePtr finalize(MacroAssemblerCodePtr fallback)
{
- LinkBuffer patchBuffer(this, m_pool.get());
+ LinkBuffer patchBuffer(this, m_pool.get(), 0);
+ // We can't continue if we can't call a function!
+ if (!patchBuffer.allocationSuccessful())
+ CRASH();
patchBuffer.link(m_failures, CodeLocationLabel(fallback));
return patchBuffer.finalizeCode().m_code;
}
diff --git a/JavaScriptCore/jsc.pro b/JavaScriptCore/jsc.pro
index 20b8521..6f3831e 100644
--- a/JavaScriptCore/jsc.pro
+++ b/JavaScriptCore/jsc.pro
@@ -30,4 +30,8 @@ symbian {
mac {
LIBS_PRIVATE += -framework AppKit
-} \ No newline at end of file
+}
+
+# Prevent warnings about difference in visibility on Mac OS X
+contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
+unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
diff --git a/JavaScriptCore/parser/Lexer.cpp b/JavaScriptCore/parser/Lexer.cpp
index d7a122e..877e89a 100644
--- a/JavaScriptCore/parser/Lexer.cpp
+++ b/JavaScriptCore/parser/Lexer.cpp
@@ -399,6 +399,60 @@ inline void Lexer::record16(int c)
record16(UChar(static_cast<unsigned short>(c)));
}
+ALWAYS_INLINE JSTokenType Lexer::parseIdentifier(JSTokenData* lvalp, LexType lexType)
+{
+ bool bufferRequired = false;
+ const UChar* identifierStart = currentCharacter();
+ int identifierLength;
+
+ while (true) {
+ if (LIKELY(isIdentPart(m_current))) {
+ shift();
+ continue;
+ }
+ if (LIKELY(m_current != '\\'))
+ break;
+
+ // \uXXXX unicode characters.
+ bufferRequired = true;
+ if (identifierStart != currentCharacter())
+ m_buffer16.append(identifierStart, currentCharacter() - identifierStart);
+ shift();
+ if (UNLIKELY(m_current != 'u'))
+ return ERRORTOK;
+ shift();
+ int character = getUnicodeCharacter();
+ if (UNLIKELY(character == -1))
+ return ERRORTOK;
+ if (UNLIKELY(m_buffer16.size() ? !isIdentPart(character) : !isIdentStart(character)))
+ return ERRORTOK;
+ record16(character);
+ identifierStart = currentCharacter();
+ }
+
+ if (!bufferRequired)
+ identifierLength = currentCharacter() - identifierStart;
+ else {
+ if (identifierStart != currentCharacter())
+ m_buffer16.append(identifierStart, currentCharacter() - identifierStart);
+ identifierStart = m_buffer16.data();
+ identifierLength = m_buffer16.size();
+ }
+
+ const Identifier* ident = makeIdentifier(identifierStart, identifierLength);
+ lvalp->ident = ident;
+ m_delimited = false;
+
+ if (LIKELY(!bufferRequired && lexType == IdentifyReservedWords)) {
+ // Keywords must not be recognized if there was an \uXXXX in the identifier.
+ const HashEntry* entry = m_keywordTable.entry(m_globalData, *ident);
+ return entry ? static_cast<JSTokenType>(entry->lexerValue()) : IDENT;
+ }
+
+ m_buffer16.resize(0);
+ return IDENT;
+}
+
ALWAYS_INLINE bool Lexer::parseString(JSTokenData* lvalp)
{
int stringQuoteCharacter = m_current;
@@ -488,7 +542,6 @@ JSTokenType Lexer::lex(JSTokenData* lvalp, JSTokenInfo* llocp, LexType lexType)
ASSERT(m_buffer16.isEmpty());
JSTokenType token = ERRORTOK;
- int identChar = 0;
m_terminator = false;
start:
@@ -753,8 +806,6 @@ start:
shift();
token = CLOSEBRACE;
break;
- case CharacterBackSlash:
- goto startIdentifierWithBackslash;
case CharacterZero:
goto startNumberWithZeroDigit;
case CharacterNumber:
@@ -768,7 +819,10 @@ start:
break;
case CharacterIdentifierStart:
ASSERT(isIdentStart(m_current));
- goto startIdentifierOrKeyword;
+ // Fall through into CharacterBackSlash.
+ case CharacterBackSlash:
+ token = parseIdentifier(lvalp, lexType);
+ break;
case CharacterLineTerminator:
ASSERT(isLineTerminator(m_current));
shiftLineTerminator();
@@ -789,53 +843,6 @@ start:
m_atLineStart = false;
goto returnToken;
-startIdentifierWithBackslash: {
- shift();
- if (UNLIKELY(m_current != 'u'))
- goto returnError;
- shift();
-
- identChar = getUnicodeCharacter();
- if (UNLIKELY(identChar == -1))
- goto returnError;
- if (UNLIKELY(!isIdentStart(identChar)))
- goto returnError;
- goto inIdentifierAfterCharacterCheck;
-}
-
-startIdentifierOrKeyword: {
- const UChar* identifierStart = currentCharacter();
- shift();
- while (isIdentPart(m_current))
- shift();
- if (LIKELY(m_current != '\\')) {
- // Fast case for idents which does not contain \uCCCC characters
- lvalp->ident = makeIdentifier(identifierStart, currentCharacter() - identifierStart);
- goto doneIdentifierOrKeyword;
- }
- m_buffer16.append(identifierStart, currentCharacter() - identifierStart);
-}
-
- do {
- shift();
- if (UNLIKELY(m_current != 'u'))
- goto returnError;
- shift();
- identChar = getUnicodeCharacter();
- if (UNLIKELY(identChar == -1))
- goto returnError;
- if (UNLIKELY(!isIdentPart(identChar)))
- goto returnError;
-inIdentifierAfterCharacterCheck:
- record16(identChar);
-
- while (isIdentPart(m_current)) {
- record16(m_current);
- shift();
- }
- } while (UNLIKELY(m_current == '\\'));
- goto doneIdentifier;
-
inSingleLineComment:
while (!isLineTerminator(m_current)) {
if (UNLIKELY(m_current == -1))
@@ -1008,27 +1015,7 @@ doneNumeric:
doneSemicolon:
token = SEMICOLON;
m_delimited = true;
- goto returnToken;
-
-doneIdentifier:
- m_atLineStart = false;
- m_delimited = false;
- lvalp->ident = makeIdentifier(m_buffer16.data(), m_buffer16.size());
- m_buffer16.resize(0);
- token = IDENT;
- goto returnToken;
-
-doneIdentifierOrKeyword: {
- m_atLineStart = false;
- m_delimited = false;
- m_buffer16.resize(0);
- if (lexType == IdentifyReservedWords) {
- const HashEntry* entry = m_keywordTable.entry(m_globalData, *lvalp->ident);
- token = entry ? static_cast<JSTokenType>(entry->lexerValue()) : IDENT;
- } else
- token = IDENT;
// Fall through into returnToken.
-}
returnToken: {
int lineNumber = m_lineNumber;
diff --git a/JavaScriptCore/parser/Lexer.h b/JavaScriptCore/parser/Lexer.h
index 4f7af44..3d97cc1 100644
--- a/JavaScriptCore/parser/Lexer.h
+++ b/JavaScriptCore/parser/Lexer.h
@@ -94,6 +94,7 @@ namespace JSC {
ALWAYS_INLINE bool lastTokenWasRestrKeyword() const;
+ ALWAYS_INLINE JSTokenType parseIdentifier(JSTokenData*, LexType);
ALWAYS_INLINE bool parseString(JSTokenData* lvalp);
static const size_t initialReadBufferCapacity = 32;
diff --git a/JavaScriptCore/profiler/ProfilerServer.mm b/JavaScriptCore/profiler/ProfilerServer.mm
index a3944de..7d87f96 100644
--- a/JavaScriptCore/profiler/ProfilerServer.mm
+++ b/JavaScriptCore/profiler/ProfilerServer.mm
@@ -30,7 +30,7 @@
#import "JSRetainPtr.h"
#import <Foundation/Foundation.h>
-#if PLATFORM(IPHONE_SIMULATOR)
+#if PLATFORM(IOS_SIMULATOR)
#import <Foundation/NSDistributedNotificationCenter.h>
#endif
@@ -65,7 +65,7 @@
if ([defaults boolForKey:@"EnableJSProfiling"])
[self startProfiling];
-#if !PLATFORM(IPHONE) || PLATFORM(IPHONE_SIMULATOR)
+#if !PLATFORM(IOS) || PLATFORM(IOS_SIMULATOR)
// FIXME: <rdar://problem/6546135>
// The catch-all notifications
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(startProfiling) name:@"ProfilerServerStartNotification" object:nil];
@@ -76,7 +76,7 @@
NSProcessInfo *processInfo = [NSProcessInfo processInfo];
_serverName = [[NSString alloc] initWithFormat:@"ProfilerServer-%d", [processInfo processIdentifier]];
-#if !PLATFORM(IPHONE) || PLATFORM(IPHONE_SIMULATOR)
+#if !PLATFORM(IOS) || PLATFORM(IOS_SIMULATOR)
// FIXME: <rdar://problem/6546135>
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(startProfiling) name:[_serverName stringByAppendingString:@"-Start"] object:nil];
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(stopProfiling) name:[_serverName stringByAppendingString:@"-Stop"] object:nil];
diff --git a/JavaScriptCore/runtime/AlignedMemoryAllocator.h b/JavaScriptCore/runtime/AlignedMemoryAllocator.h
new file mode 100644
index 0000000..e682eb3
--- /dev/null
+++ b/JavaScriptCore/runtime/AlignedMemoryAllocator.h
@@ -0,0 +1,239 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef AlignedMemoryAllocator_h
+#define AlignedMemoryAllocator_h
+
+#include <wtf/Bitmap.h>
+#include <wtf/PageReservation.h>
+
+namespace JSC {
+
+struct AlignedMemoryAllocatorConstants {
+// Set sane defaults if -D<flagname=value> wasn't provided via compiler args
+#if defined(JSCCOLLECTOR_VIRTUALMEM_RESERVATION)
+ // Keep backwards compatibility with symbian build system
+ static const size_t virtualMemoryReservation = JSCCOLLECTOR_VIRTUALMEM_RESERVATION;
+#elif defined(__WINS__)
+ // Emulator has limited virtual address space
+ static const size_t virtualMemoryReservation = 0x400000;
+#else
+ // HW has plenty of virtual addresses
+ static const size_t virtualMemoryReservation = 0x8000000;
+#endif
+};
+
+template<size_t blockSize> class AlignedMemory;
+template<size_t blockSize> class AlignedMemoryAllocator;
+
+#if HAVE(PAGE_ALLOCATE_ALIGNED)
+
+template<size_t blockSize>
+class AlignedMemoryAllocator;
+
+template<size_t blockSize>
+class AlignedMemory {
+public:
+ void deallocate();
+ void* base();
+
+private:
+ friend class AlignedMemoryAllocator<blockSize>;
+
+ AlignedMemory(PageAllocation);
+
+ PageAllocation m_allocation;
+};
+
+template<size_t blockSize>
+class AlignedMemoryAllocator {
+public:
+ void destroy();
+ AlignedMemory<blockSize> allocate();
+};
+
+template<size_t blockSize>
+inline void AlignedMemoryAllocator<blockSize>::destroy()
+{
+}
+
+template<size_t blockSize>
+inline AlignedMemory<blockSize> AlignedMemoryAllocator<blockSize>::allocate()
+{
+ return AlignedMemory<blockSize>(PageAllocation::allocateAligned(blockSize, PageAllocation::JSGCHeapPages));
+}
+
+template<size_t blockSize>
+inline void AlignedMemory<blockSize>::deallocate()
+{
+ m_allocation.deallocate();
+}
+
+template<size_t blockSize>
+inline void* AlignedMemory<blockSize>::base()
+{
+ return m_allocation.base();
+}
+
+template<size_t blockSize>
+inline AlignedMemory<blockSize>::AlignedMemory(PageAllocation allocation)
+ : m_allocation(allocation)
+{
+}
+
+#else
+
+template<size_t blockSize>
+class AlignedMemory {
+public:
+ void deallocate();
+ void* base();
+
+private:
+ friend class AlignedMemoryAllocator<blockSize>;
+
+ AlignedMemory(void* base, AlignedMemoryAllocator<blockSize>* allocator);
+
+ void* m_base;
+ AlignedMemoryAllocator<blockSize>* m_allocator;
+};
+
+template<size_t blockSize>
+class AlignedMemoryAllocator {
+public:
+ AlignedMemoryAllocator();
+ ~AlignedMemoryAllocator();
+
+ void destroy();
+ AlignedMemory<blockSize> allocate();
+ void free(AlignedMemory<blockSize>);
+
+private:
+ static const size_t reservationSize = AlignedMemoryAllocatorConstants::virtualMemoryReservation;
+ static const size_t bitmapSize = reservationSize / blockSize;
+
+ PageReservation m_reservation;
+ size_t m_nextFree;
+ uintptr_t m_reservationBase;
+ WTF::Bitmap<bitmapSize> m_bitmap;
+};
+
+template<size_t blockSize>
+AlignedMemoryAllocator<blockSize>::AlignedMemoryAllocator()
+ : m_reservation(PageReservation::reserve(reservationSize + blockSize, PageAllocation::JSGCHeapPages))
+ , m_nextFree(0)
+{
+ // check that blockSize and reservationSize are powers of two
+ ASSERT(!(blockSize & (blockSize - 1)));
+ ASSERT(!(reservationSize & (reservationSize - 1)));
+
+ // check that blockSize is a multiple of pageSize and that
+ // reservationSize is a multiple of blockSize
+ ASSERT(!(blockSize & (PageAllocation::pageSize() - 1)));
+ ASSERT(!(reservationSize & (blockSize - 1)));
+
+ ASSERT(m_reservation);
+
+ m_reservationBase = reinterpret_cast<uintptr_t>(m_reservation.base());
+ m_reservationBase = (m_reservationBase + blockSize) & ~(blockSize - 1);
+}
+
+template<size_t blockSize>
+AlignedMemoryAllocator<blockSize>::~AlignedMemoryAllocator()
+{
+ destroy();
+ m_reservation.deallocate();
+}
+
+template<size_t blockSize>
+inline void AlignedMemoryAllocator<blockSize>::destroy()
+{
+ for (unsigned i = 0; i < bitmapSize; ++i) {
+ if (m_bitmap.get(i)) {
+ void* blockAddress = reinterpret_cast<void*>(m_reservationBase + m_nextFree * blockSize);
+ m_reservation.decommit(blockAddress, blockSize);
+
+ m_bitmap.clear(i);
+ }
+ }
+}
+
+template<size_t blockSize>
+AlignedMemory<blockSize> AlignedMemoryAllocator<blockSize>::allocate()
+{
+ while (m_nextFree < bitmapSize) {
+ if (!m_bitmap.get(m_nextFree)) {
+ void* blockAddress = reinterpret_cast<void*>(m_reservationBase + m_nextFree * blockSize);
+ m_reservation.commit(blockAddress, blockSize);
+
+ m_bitmap.set(m_nextFree);
+ ++m_nextFree;
+
+ return AlignedMemory<blockSize>(blockAddress, this);
+ }
+ m_bitmap.advanceToNextFreeBit(m_nextFree);
+ }
+
+ if (m_bitmap.isFull())
+ return AlignedMemory<blockSize>(0, this);
+
+ m_nextFree = 0;
+
+ return allocate();
+}
+
+template<size_t blockSize>
+void AlignedMemoryAllocator<blockSize>::free(AlignedMemory<blockSize> allocation)
+{
+ ASSERT(allocation.base());
+ m_reservation.decommit(allocation.base(), blockSize);
+
+ size_t diff = (reinterpret_cast<uintptr_t>(allocation.base()) - m_reservationBase);
+ ASSERT(!(diff & (blockSize - 1)));
+
+ size_t i = diff / blockSize;
+ ASSERT(m_bitmap.get(i));
+
+ m_bitmap.clear(i);
+}
+
+template<size_t blockSize>
+inline void AlignedMemory<blockSize>::deallocate()
+{
+ m_allocator->free(*this);
+}
+
+template<size_t blockSize>
+inline void* AlignedMemory<blockSize>::base()
+{
+ return m_base;
+}
+
+template<size_t blockSize>
+AlignedMemory<blockSize>::AlignedMemory(void* base, AlignedMemoryAllocator<blockSize>* allocator)
+ : m_base(base)
+ , m_allocator(allocator)
+{
+}
+
+#endif
+
+}
+
+#endif
diff --git a/JavaScriptCore/runtime/Collector.cpp b/JavaScriptCore/runtime/Collector.cpp
index 38f3ce5..4a81913 100644
--- a/JavaScriptCore/runtime/Collector.cpp
+++ b/JavaScriptCore/runtime/Collector.cpp
@@ -25,6 +25,7 @@
#include "CallFrame.h"
#include "CodeBlock.h"
#include "CollectorHeapIterator.h"
+#include "GCActivityCallback.h"
#include "Interpreter.h"
#include "JSArray.h"
#include "JSGlobalObject.h"
@@ -135,14 +136,13 @@ Heap::Heap(JSGlobalData* globalData)
, m_registeredThreads(0)
, m_currentThreadRegistrar(0)
#endif
-#if OS(SYMBIAN)
- , m_blockallocator(JSCCOLLECTOR_VIRTUALMEM_RESERVATION, BLOCK_SIZE)
-#endif
, m_globalData(globalData)
{
ASSERT(globalData);
memset(&m_heap, 0, sizeof(CollectorHeap));
allocateBlock();
+ m_activityCallback = DefaultGCActivityCallback::create(this);
+ (*m_activityCallback)();
}
Heap::~Heap()
@@ -170,6 +170,9 @@ void Heap::destroy()
freeBlocks();
+ for (unsigned i = 0; i < m_weakGCHandlePools.size(); ++i)
+ m_weakGCHandlePools[i].deallocate();
+
#if ENABLE(JSC_MULTIPLE_THREADS)
if (m_currentThreadRegistrar) {
int error = pthread_key_delete(m_currentThreadRegistrar);
@@ -183,63 +186,19 @@ void Heap::destroy()
t = next;
}
#endif
-#if OS(SYMBIAN)
m_blockallocator.destroy();
-#endif
m_globalData = 0;
}
NEVER_INLINE CollectorBlock* Heap::allocateBlock()
{
-#if OS(DARWIN)
- vm_address_t address = 0;
- vm_map(current_task(), &address, BLOCK_SIZE, BLOCK_OFFSET_MASK, VM_FLAGS_ANYWHERE | VM_TAG_FOR_COLLECTOR_MEMORY, MEMORY_OBJECT_NULL, 0, FALSE, VM_PROT_DEFAULT, VM_PROT_DEFAULT, VM_INHERIT_DEFAULT);
-#elif OS(SYMBIAN)
- void* address = m_blockallocator.alloc();
- if (!address)
+ AlignedCollectorBlock allocation = m_blockallocator.allocate();
+ CollectorBlock* block = static_cast<CollectorBlock*>(allocation.base());
+ if (!block)
CRASH();
-#elif OS(WINCE)
- void* address = VirtualAlloc(NULL, BLOCK_SIZE, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
-#elif OS(WINDOWS)
-#if COMPILER(MINGW) && !COMPILER(MINGW64)
- void* address = __mingw_aligned_malloc(BLOCK_SIZE, BLOCK_SIZE);
-#else
- void* address = _aligned_malloc(BLOCK_SIZE, BLOCK_SIZE);
-#endif
- memset(address, 0, BLOCK_SIZE);
-#elif HAVE(POSIX_MEMALIGN)
- void* address;
- posix_memalign(&address, BLOCK_SIZE, BLOCK_SIZE);
-#else
-
-#if ENABLE(JSC_MULTIPLE_THREADS)
-#error Need to initialize pagesize safely.
-#endif
- static size_t pagesize = getpagesize();
-
- size_t extra = 0;
- if (BLOCK_SIZE > pagesize)
- extra = BLOCK_SIZE - pagesize;
-
- void* mmapResult = mmap(NULL, BLOCK_SIZE + extra, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
- uintptr_t address = reinterpret_cast<uintptr_t>(mmapResult);
-
- size_t adjust = 0;
- if ((address & BLOCK_OFFSET_MASK) != 0)
- adjust = BLOCK_SIZE - (address & BLOCK_OFFSET_MASK);
-
- if (adjust > 0)
- munmap(reinterpret_cast<char*>(address), adjust);
-
- if (adjust < extra)
- munmap(reinterpret_cast<char*>(address + adjust + BLOCK_SIZE), extra - adjust);
-
- address += adjust;
-#endif
// Initialize block.
- CollectorBlock* block = reinterpret_cast<CollectorBlock*>(address);
block->heap = this;
clearMarkBits(block);
@@ -251,14 +210,14 @@ NEVER_INLINE CollectorBlock* Heap::allocateBlock()
size_t numBlocks = m_heap.numBlocks;
if (m_heap.usedBlocks == numBlocks) {
- static const size_t maxNumBlocks = ULONG_MAX / sizeof(CollectorBlock*) / GROWTH_FACTOR;
+ static const size_t maxNumBlocks = ULONG_MAX / sizeof(AlignedCollectorBlock) / GROWTH_FACTOR;
if (numBlocks > maxNumBlocks)
CRASH();
numBlocks = max(MIN_ARRAY_SIZE, numBlocks * GROWTH_FACTOR);
m_heap.numBlocks = numBlocks;
- m_heap.blocks = static_cast<CollectorBlock**>(fastRealloc(m_heap.blocks, numBlocks * sizeof(CollectorBlock*)));
+ m_heap.blocks = static_cast<AlignedCollectorBlock*>(fastRealloc(m_heap.blocks, numBlocks * sizeof(AlignedCollectorBlock)));
}
- m_heap.blocks[m_heap.usedBlocks++] = block;
+ m_heap.blocks[m_heap.usedBlocks++] = allocation;
return block;
}
@@ -271,7 +230,7 @@ NEVER_INLINE void Heap::freeBlock(size_t block)
ObjectIterator end(m_heap, block + 1);
for ( ; it != end; ++it)
(*it)->~JSCell();
- freeBlockPtr(m_heap.blocks[block]);
+ m_heap.blocks[block].deallocate();
// swap with the last block so we compact as we go
m_heap.blocks[block] = m_heap.blocks[m_heap.usedBlocks - 1];
@@ -279,31 +238,10 @@ NEVER_INLINE void Heap::freeBlock(size_t block)
if (m_heap.numBlocks > MIN_ARRAY_SIZE && m_heap.usedBlocks < m_heap.numBlocks / LOW_WATER_FACTOR) {
m_heap.numBlocks = m_heap.numBlocks / GROWTH_FACTOR;
- m_heap.blocks = static_cast<CollectorBlock**>(fastRealloc(m_heap.blocks, m_heap.numBlocks * sizeof(CollectorBlock*)));
+ m_heap.blocks = static_cast<AlignedCollectorBlock*>(fastRealloc(m_heap.blocks, m_heap.numBlocks * sizeof(AlignedCollectorBlock)));
}
}
-NEVER_INLINE void Heap::freeBlockPtr(CollectorBlock* block)
-{
-#if OS(DARWIN)
- vm_deallocate(current_task(), reinterpret_cast<vm_address_t>(block), BLOCK_SIZE);
-#elif OS(SYMBIAN)
- m_blockallocator.free(reinterpret_cast<void*>(block));
-#elif OS(WINCE)
- VirtualFree(block, 0, MEM_RELEASE);
-#elif OS(WINDOWS)
-#if COMPILER(MINGW) && !COMPILER(MINGW64)
- __mingw_aligned_free(block);
-#else
- _aligned_free(block);
-#endif
-#elif HAVE(POSIX_MEMALIGN)
- free(block);
-#else
- munmap(reinterpret_cast<char*>(block), BLOCK_SIZE);
-#endif
-}
-
void Heap::freeBlocks()
{
ProtectCountSet protectedValuesCopy = m_protectedValues;
@@ -327,7 +265,7 @@ void Heap::freeBlocks()
it->first->~JSCell();
for (size_t block = 0; block < m_heap.usedBlocks; ++block)
- freeBlockPtr(m_heap.blocks[block]);
+ m_heap.blocks[block].deallocate();
fastFree(m_heap.blocks);
@@ -380,7 +318,7 @@ allocate:
do {
ASSERT(m_heap.nextBlock < m_heap.usedBlocks);
- Block* block = reinterpret_cast<Block*>(m_heap.blocks[m_heap.nextBlock]);
+ Block* block = m_heap.collectorBlock(m_heap.nextBlock);
do {
ASSERT(m_heap.nextCell < HeapConstants::cellsPerBlock);
if (!block->marked.get(m_heap.nextCell)) { // Always false for the last cell in the block
@@ -435,10 +373,10 @@ void Heap::shrinkBlocks(size_t neededBlocks)
// Clear the always-on last bit, so isEmpty() isn't fooled by it.
for (size_t i = 0; i < m_heap.usedBlocks; ++i)
- m_heap.blocks[i]->marked.clear(HeapConstants::cellsPerBlock - 1);
+ m_heap.collectorBlock(i)->marked.clear(HeapConstants::cellsPerBlock - 1);
for (size_t i = 0; i != m_heap.usedBlocks && m_heap.usedBlocks != neededBlocks; ) {
- if (m_heap.blocks[i]->marked.isEmpty()) {
+ if (m_heap.collectorBlock(i)->marked.isEmpty()) {
freeBlock(i);
} else
++i;
@@ -446,7 +384,7 @@ void Heap::shrinkBlocks(size_t neededBlocks)
// Reset the always-on last bit.
for (size_t i = 0; i < m_heap.usedBlocks; ++i)
- m_heap.blocks[i]->marked.set(HeapConstants::cellsPerBlock - 1);
+ m_heap.collectorBlock(i)->marked.set(HeapConstants::cellsPerBlock - 1);
}
#if OS(WINCE)
@@ -741,7 +679,6 @@ void Heap::markConservatively(MarkStack& markStack, void* start, void* end)
char** p = static_cast<char**>(start);
char** e = static_cast<char**>(end);
- CollectorBlock** blocks = m_heap.blocks;
while (p != e) {
char* x = *p++;
if (isPossibleCell(x)) {
@@ -757,7 +694,7 @@ void Heap::markConservatively(MarkStack& markStack, void* start, void* end)
CollectorBlock* blockAddr = reinterpret_cast<CollectorBlock*>(xAsBits - offset);
usedBlocks = m_heap.usedBlocks;
for (size_t block = 0; block < usedBlocks; block++) {
- if (blocks[block] != blockAddr)
+ if (m_heap.collectorBlock(block) != blockAddr)
continue;
markStack.append(reinterpret_cast<JSCell*>(xAsBits));
markStack.drain();
@@ -972,6 +909,36 @@ void Heap::markStackObjectsConservatively(MarkStack& markStack)
#endif
}
+void Heap::updateWeakGCHandles()
+{
+ for (unsigned i = 0; i < m_weakGCHandlePools.size(); ++i)
+ weakGCHandlePool(i)->update();
+}
+
+void WeakGCHandlePool::update()
+{
+ for (unsigned i = 1; i < WeakGCHandlePool::numPoolEntries; ++i) {
+ if (m_entries[i].isValidPtr()) {
+ JSCell* cell = m_entries[i].get();
+ if (!cell || !Heap::isCellMarked(cell))
+ m_entries[i].invalidate();
+ }
+ }
+}
+
+WeakGCHandle* Heap::addWeakGCHandle(JSCell* ptr)
+{
+ for (unsigned i = 0; i < m_weakGCHandlePools.size(); ++i)
+ if (!weakGCHandlePool(i)->isFull())
+ return weakGCHandlePool(i)->allocate(ptr);
+
+ AlignedMemory<WeakGCHandlePool::poolSize> allocation = m_weakGCHandlePoolAllocator.allocate();
+ m_weakGCHandlePools.append(allocation);
+
+ WeakGCHandlePool* pool = new (allocation) WeakGCHandlePool();
+ return pool->allocate(ptr);
+}
+
void Heap::protect(JSValue k)
{
ASSERT(k);
@@ -1006,7 +973,7 @@ void Heap::markProtectedObjects(MarkStack& markStack)
void Heap::clearMarkBits()
{
for (size_t i = 0; i < m_heap.usedBlocks; ++i)
- clearMarkBits(m_heap.blocks[i]);
+ clearMarkBits(m_heap.collectorBlock(i));
}
void Heap::clearMarkBits(CollectorBlock* block)
@@ -1025,9 +992,9 @@ size_t Heap::markedCells(size_t startBlock, size_t startCell) const
return 0;
size_t result = 0;
- result += m_heap.blocks[startBlock]->marked.count(startCell);
+ result += m_heap.collectorBlock(startBlock)->marked.count(startCell);
for (size_t i = startBlock + 1; i < m_heap.usedBlocks; ++i)
- result += m_heap.blocks[i]->marked.count();
+ result += m_heap.collectorBlock(i)->marked.count();
return result;
}
@@ -1108,6 +1075,8 @@ void Heap::markRoots()
markStack.drain();
markStack.compact();
+ updateWeakGCHandles();
+
m_heap.operationInProgress = NoOperation;
}
@@ -1236,6 +1205,8 @@ void Heap::reset()
resizeBlocks();
JAVASCRIPTCORE_GC_END();
+
+ (*m_activityCallback)();
}
void Heap::collectAllGarbage()
@@ -1272,4 +1243,9 @@ LiveObjectIterator Heap::primaryHeapEnd()
return LiveObjectIterator(m_heap, m_heap.usedBlocks);
}
+void Heap::setActivityCallback(PassOwnPtr<GCActivityCallback> activityCallback)
+{
+ m_activityCallback = activityCallback;
+}
+
} // namespace JSC
diff --git a/JavaScriptCore/runtime/Collector.h b/JavaScriptCore/runtime/Collector.h
index 1dc9445..38c178b 100644
--- a/JavaScriptCore/runtime/Collector.h
+++ b/JavaScriptCore/runtime/Collector.h
@@ -22,13 +22,18 @@
#ifndef Collector_h
#define Collector_h
+#include "AlignedMemoryAllocator.h"
+#include "GCHandle.h"
#include <stddef.h>
#include <string.h>
+#include <wtf/Bitmap.h>
#include <wtf/FixedArray.h>
#include <wtf/HashCountedSet.h>
#include <wtf/HashSet.h>
#include <wtf/Noncopyable.h>
#include <wtf/OwnPtr.h>
+#include <wtf/PageAllocation.h>
+#include <wtf/PassOwnPtr.h>
#include <wtf/StdLibExtras.h>
#include <wtf/Threading.h>
@@ -36,15 +41,12 @@
#include <pthread.h>
#endif
-#if OS(SYMBIAN)
-#include <wtf/symbian/BlockAllocatorSymbian.h>
-#endif
-
#define ASSERT_CLASS_FITS_IN_CELL(class) COMPILE_ASSERT(sizeof(class) <= CELL_SIZE, class_fits_in_cell)
namespace JSC {
class CollectorBlock;
+ class GCActivityCallback;
class JSCell;
class JSGlobalData;
class JSValue;
@@ -55,10 +57,19 @@ namespace JSC {
class LiveObjectIterator;
+#if OS(WINCE) || OS(SYMBIAN)
+ const size_t BLOCK_SIZE = 64 * 1024; // 64k
+#else
+ const size_t BLOCK_SIZE = 256 * 1024; // 256k
+#endif
+
+ typedef AlignedMemoryAllocator<BLOCK_SIZE> CollectorBlockAllocator;
+ typedef AlignedMemory<BLOCK_SIZE> AlignedCollectorBlock;
+
struct CollectorHeap {
size_t nextBlock;
size_t nextCell;
- CollectorBlock** blocks;
+ AlignedCollectorBlock* blocks;
void* nextNumber;
@@ -69,6 +80,11 @@ namespace JSC {
bool didShrink;
OperationInProgress operationInProgress;
+
+ CollectorBlock* collectorBlock(size_t index) const
+ {
+ return static_cast<CollectorBlock*>(blocks[index].base());
+ }
};
class Heap : public Noncopyable {
@@ -82,6 +98,7 @@ namespace JSC {
bool isBusy(); // true if an allocation or collection is in progress
void collectAllGarbage();
+ void setActivityCallback(PassOwnPtr<GCActivityCallback>);
static const size_t minExtraCost = 256;
static const size_t maxExtraCost = 1024 * 1024;
@@ -115,6 +132,8 @@ namespace JSC {
static bool isCellMarked(const JSCell*);
static void markCell(JSCell*);
+ WeakGCHandle* addWeakGCHandle(JSCell*);
+
void markConservatively(MarkStack&, void* start, void* end);
HashSet<MarkedArgumentBuffer*>& markListSet() { if (!m_markListSet) m_markListSet = new HashSet<MarkedArgumentBuffer*>; return *m_markListSet; }
@@ -137,7 +156,6 @@ namespace JSC {
NEVER_INLINE CollectorBlock* allocateBlock();
NEVER_INLINE void freeBlock(size_t);
- NEVER_INLINE void freeBlockPtr(CollectorBlock*);
void freeBlocks();
void resizeBlocks();
void growBlocks(size_t neededBlocks);
@@ -157,14 +175,20 @@ namespace JSC {
void markOtherThreadConservatively(MarkStack&, Thread*);
void markStackObjectsConservatively(MarkStack&);
+ void updateWeakGCHandles();
+ WeakGCHandlePool* weakGCHandlePool(size_t index);
+
typedef HashCountedSet<JSCell*> ProtectCountSet;
CollectorHeap m_heap;
ProtectCountSet m_protectedValues;
+ WTF::Vector<AlignedMemory<WeakGCHandlePool::poolSize> > m_weakGCHandlePools;
HashSet<MarkedArgumentBuffer*>* m_markListSet;
+ OwnPtr<GCActivityCallback> m_activityCallback;
+
#if ENABLE(JSC_MULTIPLE_THREADS)
void makeUsableFromMultipleThreads();
@@ -176,21 +200,14 @@ namespace JSC {
pthread_key_t m_currentThreadRegistrar;
#endif
-#if OS(SYMBIAN)
// Allocates collector blocks with correct alignment
- WTF::AlignedBlockAllocator m_blockallocator;
-#endif
+ CollectorBlockAllocator m_blockallocator;
+ WeakGCHandlePool::Allocator m_weakGCHandlePoolAllocator;
JSGlobalData* m_globalData;
};
// tunable parameters
-#if OS(WINCE) || OS(SYMBIAN)
- const size_t BLOCK_SIZE = 64 * 1024; // 64k
-#else
- const size_t BLOCK_SIZE = 64 * 4096; // 256k
-#endif
-
// derived constants
const size_t BLOCK_OFFSET_MASK = BLOCK_SIZE - 1;
const size_t BLOCK_MASK = ~BLOCK_OFFSET_MASK;
@@ -294,6 +311,11 @@ namespace JSC {
return result;
}
+
+ inline WeakGCHandlePool* Heap::weakGCHandlePool(size_t index)
+ {
+ return static_cast<WeakGCHandlePool*>(m_weakGCHandlePools[index].base());
+ }
} // namespace JSC
#endif /* Collector_h */
diff --git a/JavaScriptCore/runtime/CollectorHeapIterator.h b/JavaScriptCore/runtime/CollectorHeapIterator.h
index 9a3327c..9d107b7 100644
--- a/JavaScriptCore/runtime/CollectorHeapIterator.h
+++ b/JavaScriptCore/runtime/CollectorHeapIterator.h
@@ -77,7 +77,7 @@ namespace JSC {
inline JSCell* CollectorHeapIterator::operator*() const
{
- return reinterpret_cast<JSCell*>(&m_heap.blocks[m_block]->cells[m_cell]);
+ return reinterpret_cast<JSCell*>(&m_heap.collectorBlock(m_block)->cells[m_cell]);
}
// Iterators advance up to the next-to-last -- and not the last -- cell in a
@@ -103,7 +103,7 @@ namespace JSC {
if (m_block < m_heap.nextBlock || (m_block == m_heap.nextBlock && m_cell < m_heap.nextCell))
return *this;
- while (m_block < m_heap.usedBlocks && !m_heap.blocks[m_block]->marked.get(m_cell))
+ while (m_block < m_heap.usedBlocks && !m_heap.collectorBlock(m_block)->marked.get(m_cell))
advance(HeapConstants::cellsPerBlock - 1);
return *this;
}
@@ -119,7 +119,7 @@ namespace JSC {
do {
advance(HeapConstants::cellsPerBlock - 1);
ASSERT(m_block > m_heap.nextBlock || (m_block == m_heap.nextBlock && m_cell >= m_heap.nextCell));
- } while (m_block < m_heap.usedBlocks && m_heap.blocks[m_block]->marked.get(m_cell));
+ } while (m_block < m_heap.usedBlocks && m_heap.collectorBlock(m_block)->marked.get(m_cell));
return *this;
}
diff --git a/JavaScriptCore/runtime/ExceptionHelpers.cpp b/JavaScriptCore/runtime/ExceptionHelpers.cpp
index ebde320..3e0b70c 100644
--- a/JavaScriptCore/runtime/ExceptionHelpers.cpp
+++ b/JavaScriptCore/runtime/ExceptionHelpers.cpp
@@ -186,6 +186,11 @@ JSObject* createNotAnObjectError(ExecState* exec, JSNotAnObjectErrorStub* error,
return exception;
}
+JSObject* createOutOfMemoryError(JSGlobalObject* globalObject)
+{
+ return createError(globalObject, "Out of memory");
+}
+
JSValue throwOutOfMemoryError(ExecState* exec)
{
return throwError(exec, createError(exec, "Out of memory"));
diff --git a/JavaScriptCore/runtime/ExceptionHelpers.h b/JavaScriptCore/runtime/ExceptionHelpers.h
index 3e6de86..e4c94fb 100644
--- a/JavaScriptCore/runtime/ExceptionHelpers.h
+++ b/JavaScriptCore/runtime/ExceptionHelpers.h
@@ -53,6 +53,7 @@ namespace JSC {
JSObject* createNotAConstructorError(ExecState*, JSValue, unsigned bytecodeOffset, CodeBlock*);
JSValue createNotAFunctionError(ExecState*, JSValue, unsigned bytecodeOffset, CodeBlock*);
JSObject* createNotAnObjectError(ExecState*, JSNotAnObjectErrorStub*, unsigned bytecodeOffset, CodeBlock*);
+ JSObject* createOutOfMemoryError(JSGlobalObject*);
JSValue throwOutOfMemoryError(ExecState*);
} // namespace JSC
diff --git a/JavaScriptCore/runtime/Executable.cpp b/JavaScriptCore/runtime/Executable.cpp
index 229588b..058a091 100644
--- a/JavaScriptCore/runtime/Executable.cpp
+++ b/JavaScriptCore/runtime/Executable.cpp
@@ -116,6 +116,10 @@ JSObject* EvalExecutable::compileInternal(ExecState* exec, ScopeChainNode* scope
#if ENABLE(JIT)
if (exec->globalData().canUseJIT()) {
m_jitCodeForCall = JIT::compile(scopeChainNode->globalData, m_evalCodeBlock.get());
+ if (UNLIKELY(!m_jitCodeForCall)) {
+ m_evalCodeBlock.clear();
+ return createOutOfMemoryError(globalObject);
+ }
#if !ENABLE(OPCODE_SAMPLING)
if (!BytecodeGenerator::dumpsGeneratedCode())
m_evalCodeBlock->discardBytecode();
@@ -164,6 +168,10 @@ JSObject* ProgramExecutable::compileInternal(ExecState* exec, ScopeChainNode* sc
#if ENABLE(JIT)
if (exec->globalData().canUseJIT()) {
m_jitCodeForCall = JIT::compile(scopeChainNode->globalData, m_programCodeBlock.get());
+ if (UNLIKELY(!m_jitCodeForCall)) {
+ m_programCodeBlock.clear();
+ return createOutOfMemoryError(globalObject);
+ }
#if !ENABLE(OPCODE_SAMPLING)
if (!BytecodeGenerator::dumpsGeneratedCode())
m_programCodeBlock->discardBytecode();
@@ -192,7 +200,7 @@ JSObject* FunctionExecutable::compileForCallInternal(ExecState* exec, ScopeChain
JSGlobalObject* globalObject = scopeChain.globalObject();
ASSERT(!m_codeBlockForCall);
- m_codeBlockForCall = adoptPtr(new FunctionCodeBlock(this, FunctionCode, source().provider(), source().startOffset(), false));
+ m_codeBlockForCall = adoptPtr(new FunctionCodeBlock(this, FunctionCode, globalObject, source().provider(), source().startOffset(), false));
OwnPtr<BytecodeGenerator> generator(adoptPtr(new BytecodeGenerator(body.get(), globalObject->debugger(), scopeChain, m_codeBlockForCall->symbolTable(), m_codeBlockForCall.get())));
generator->generate();
m_numParametersForCall = m_codeBlockForCall->m_numParameters;
@@ -205,6 +213,10 @@ JSObject* FunctionExecutable::compileForCallInternal(ExecState* exec, ScopeChain
#if ENABLE(JIT)
if (exec->globalData().canUseJIT()) {
m_jitCodeForCall = JIT::compile(scopeChainNode->globalData, m_codeBlockForCall.get(), &m_jitCodeForCallWithArityCheck);
+ if (UNLIKELY(!m_jitCodeForCall)) {
+ m_codeBlockForCall.clear();
+ return createOutOfMemoryError(globalObject);
+ }
#if !ENABLE(OPCODE_SAMPLING)
if (!BytecodeGenerator::dumpsGeneratedCode())
m_codeBlockForCall->discardBytecode();
@@ -233,7 +245,7 @@ JSObject* FunctionExecutable::compileForConstructInternal(ExecState* exec, Scope
JSGlobalObject* globalObject = scopeChain.globalObject();
ASSERT(!m_codeBlockForConstruct);
- m_codeBlockForConstruct = adoptPtr(new FunctionCodeBlock(this, FunctionCode, source().provider(), source().startOffset(), true));
+ m_codeBlockForConstruct = adoptPtr(new FunctionCodeBlock(this, FunctionCode, globalObject, source().provider(), source().startOffset(), true));
OwnPtr<BytecodeGenerator> generator(adoptPtr(new BytecodeGenerator(body.get(), globalObject->debugger(), scopeChain, m_codeBlockForConstruct->symbolTable(), m_codeBlockForConstruct.get())));
generator->generate();
m_numParametersForConstruct = m_codeBlockForConstruct->m_numParameters;
@@ -246,6 +258,10 @@ JSObject* FunctionExecutable::compileForConstructInternal(ExecState* exec, Scope
#if ENABLE(JIT)
if (exec->globalData().canUseJIT()) {
m_jitCodeForConstruct = JIT::compile(scopeChainNode->globalData, m_codeBlockForConstruct.get(), &m_jitCodeForConstructWithArityCheck);
+ if (UNLIKELY(!m_jitCodeForConstruct)) {
+ m_codeBlockForConstruct.clear();
+ return createOutOfMemoryError(globalObject);
+ }
#if !ENABLE(OPCODE_SAMPLING)
if (!BytecodeGenerator::dumpsGeneratedCode())
m_codeBlockForConstruct->discardBytecode();
@@ -277,7 +293,7 @@ PassOwnPtr<ExceptionInfo> FunctionExecutable::reparseExceptionInfo(JSGlobalData*
ScopeChain scopeChain(scopeChainNode);
JSGlobalObject* globalObject = scopeChain.globalObject();
- OwnPtr<CodeBlock> newCodeBlock(adoptPtr(new FunctionCodeBlock(this, FunctionCode, source().provider(), source().startOffset(), codeBlock->m_isConstructor)));
+ OwnPtr<CodeBlock> newCodeBlock(adoptPtr(new FunctionCodeBlock(this, FunctionCode, globalObject, source().provider(), source().startOffset(), codeBlock->m_isConstructor)));
globalData->functionCodeBlockBeingReparsed = newCodeBlock.get();
OwnPtr<BytecodeGenerator> generator(adoptPtr(new BytecodeGenerator(newFunctionBody.get(), globalObject->debugger(), scopeChain, newCodeBlock->symbolTable(), newCodeBlock.get())));
@@ -288,13 +304,16 @@ PassOwnPtr<ExceptionInfo> FunctionExecutable::reparseExceptionInfo(JSGlobalData*
#if ENABLE(JIT)
if (globalData->canUseJIT()) {
- JITCode newJITCode = JIT::compile(globalData, newCodeBlock.get());
+ JITCode newJITCode = JIT::compile(globalData, newCodeBlock.get(), 0, codeBlock->m_isConstructor ? generatedJITCodeForConstruct().start() : generatedJITCodeForCall().start());
+ if (!newJITCode) {
+ globalData->functionCodeBlockBeingReparsed = 0;
+ return PassOwnPtr<ExceptionInfo>();
+ }
ASSERT(codeBlock->m_isConstructor ? newJITCode.size() == generatedJITCodeForConstruct().size() : newJITCode.size() == generatedJITCodeForCall().size());
}
#endif
globalData->functionCodeBlockBeingReparsed = 0;
-
return newCodeBlock->extractExceptionInfo();
}
@@ -318,7 +337,11 @@ PassOwnPtr<ExceptionInfo> EvalExecutable::reparseExceptionInfo(JSGlobalData* glo
#if ENABLE(JIT)
if (globalData->canUseJIT()) {
- JITCode newJITCode = JIT::compile(globalData, newCodeBlock.get());
+ JITCode newJITCode = JIT::compile(globalData, newCodeBlock.get(), 0, generatedJITCodeForCall().start());
+ if (!newJITCode) {
+ globalData->functionCodeBlockBeingReparsed = 0;
+ return PassOwnPtr<ExceptionInfo>();
+ }
ASSERT(newJITCode.size() == generatedJITCodeForCall().size());
}
#endif
diff --git a/JavaScriptCore/runtime/GCActivityCallback.cpp b/JavaScriptCore/runtime/GCActivityCallback.cpp
new file mode 100644
index 0000000..2f2c079
--- /dev/null
+++ b/JavaScriptCore/runtime/GCActivityCallback.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "GCActivityCallback.h"
+
+namespace JSC {
+
+struct DefaultGCActivityCallbackPlatformData {
+};
+
+DefaultGCActivityCallback::DefaultGCActivityCallback(Heap* heap)
+{
+}
+
+DefaultGCActivityCallback::~DefaultGCActivityCallback()
+{
+}
+
+void DefaultGCActivityCallback::operator()()
+{
+}
+
+}
+
diff --git a/JavaScriptCore/runtime/GCActivityCallback.h b/JavaScriptCore/runtime/GCActivityCallback.h
new file mode 100644
index 0000000..66d56e8
--- /dev/null
+++ b/JavaScriptCore/runtime/GCActivityCallback.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef GCActivityCallback_h
+#define GCActivityCallback_h
+
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+
+namespace JSC {
+
+class Heap;
+
+class GCActivityCallback {
+public:
+ virtual ~GCActivityCallback() {}
+ virtual void operator()() {}
+
+protected:
+ GCActivityCallback() {}
+};
+
+struct DefaultGCActivityCallbackPlatformData;
+
+class DefaultGCActivityCallback : public GCActivityCallback {
+public:
+ static PassOwnPtr<DefaultGCActivityCallback> create(Heap*);
+
+ DefaultGCActivityCallback(Heap*);
+ ~DefaultGCActivityCallback();
+
+ void operator()();
+
+private:
+ OwnPtr<DefaultGCActivityCallbackPlatformData*> d;
+};
+
+inline PassOwnPtr<DefaultGCActivityCallback> DefaultGCActivityCallback::create(Heap* heap)
+{
+ return adoptPtr(new DefaultGCActivityCallback(heap));
+}
+
+}
+
+#endif
diff --git a/JavaScriptCore/runtime/GCActivityCallbackCF.cpp b/JavaScriptCore/runtime/GCActivityCallbackCF.cpp
new file mode 100644
index 0000000..06d4210
--- /dev/null
+++ b/JavaScriptCore/runtime/GCActivityCallbackCF.cpp
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "GCActivityCallback.h"
+
+#include "Collector.h"
+#include "JSLock.h"
+#include <wtf/RetainPtr.h>
+#include <CoreFoundation/CoreFoundation.h>
+
+#if !PLATFORM(CF)
+#error "This file should only be used on CF platforms."
+#endif
+
+namespace JSC {
+
+struct DefaultGCActivityCallbackPlatformData {
+ static void trigger(CFRunLoopTimerRef, void *info);
+
+ RetainPtr<CFRunLoopTimerRef> timer;
+ CFRunLoopTimerContext context;
+};
+
+const CFTimeInterval decade = 60 * 60 * 24 * 365 * 10;
+
+void DefaultGCActivityCallbackPlatformData::trigger(CFRunLoopTimerRef, void *info)
+{
+ Heap* heap = static_cast<Heap*>(info);
+ JSLock lock(heap->globalData());
+
+ heap->collectAllGarbage();
+}
+
+DefaultGCActivityCallback::DefaultGCActivityCallback(Heap* heap)
+{
+ d = adoptPtr(new DefaultGCActivityCallbackPlatformData);
+
+ memset(&d->context, '\0', sizeof(CFRunLoopTimerContext));
+ d->context.info = heap;
+ d->timer.adoptCF(CFRunLoopTimerCreate(0, decade, decade, 0, 0, DefaultGCActivityCallbackPlatformData::trigger, &d->context));
+ CFRunLoopAddTimer(CFRunLoopGetCurrent(), d->timer.get(), kCFRunLoopCommonModes);
+}
+
+DefaultGCActivityCallback::~DefaultGCActivityCallback()
+{
+ CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), d->timer.get(), kCFRunLoopCommonModes);
+ CFRunLoopTimerInvalidate(d->timer.get());
+ d->context.info = 0;
+ d->timer = 0;
+}
+
+void DefaultGCActivityCallback::operator()()
+{
+ CFRunLoopTimerSetNextFireDate(d->timer.get(), CFAbsoluteTimeGetCurrent() + 2);
+}
+
+}
diff --git a/JavaScriptCore/runtime/GCHandle.cpp b/JavaScriptCore/runtime/GCHandle.cpp
new file mode 100644
index 0000000..3331517
--- /dev/null
+++ b/JavaScriptCore/runtime/GCHandle.cpp
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "GCHandle.h"
+
+namespace JSC {
+
+WeakGCHandlePool* WeakGCHandle::pool()
+{
+ uintptr_t pool = (reinterpret_cast<uintptr_t>(this) & WeakGCHandlePool::poolMask);
+ return reinterpret_cast<WeakGCHandlePool*>(pool);
+}
+
+WeakGCHandlePool::WeakGCHandlePool()
+{
+ ASSERT(sizeof(WeakGCHandlePool) <= WeakGCHandlePool::poolSize);
+ m_entriesSize = 0;
+ m_initialAlloc = 1;
+ m_entries[0].setNextInFreeList(0);
+}
+
+WeakGCHandle* WeakGCHandlePool::allocate(JSCell* cell)
+{
+ ASSERT(cell);
+ ASSERT(m_entries[0].isNext());
+ unsigned freeList = m_entries[0].getNextInFreeList();
+ ASSERT(freeList < WeakGCHandlePool::numPoolEntries);
+ ASSERT(m_entriesSize < WeakGCHandlePool::numPoolEntries);
+
+ if (m_entriesSize == WeakGCHandlePool::numPoolEntries - 1)
+ return 0;
+
+ if (freeList) {
+ unsigned i = freeList;
+ freeList = m_entries[i].getNextInFreeList();
+ m_entries[i].set(cell);
+ m_entries[0].setNextInFreeList(freeList);
+ ++m_entriesSize;
+ return &m_entries[i];
+ }
+
+ ASSERT(m_initialAlloc < WeakGCHandlePool::numPoolEntries);
+
+ unsigned i = m_initialAlloc;
+ ++m_initialAlloc;
+ m_entries[i].set(cell);
+ ++m_entriesSize;
+ return &m_entries[i];
+
+}
+
+void WeakGCHandlePool::free(WeakGCHandle* handle)
+{
+ ASSERT(handle->pool() == this);
+ ASSERT(m_entries[0].isNext());
+ unsigned freeList = m_entries[0].getNextInFreeList();
+ ASSERT(freeList < WeakGCHandlePool::numPoolEntries);
+ handle->setNextInFreeList(freeList);
+ m_entries[0].setNextInFreeList(handle - m_entries);
+ --m_entriesSize;
+}
+
+void* WeakGCHandlePool::operator new(size_t, AlignedMemory<WeakGCHandlePool::poolSize>& allocation)
+{
+ return allocation.base();
+}
+
+}
diff --git a/JavaScriptCore/runtime/GCHandle.h b/JavaScriptCore/runtime/GCHandle.h
new file mode 100644
index 0000000..38a7be9
--- /dev/null
+++ b/JavaScriptCore/runtime/GCHandle.h
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef GCHandle_h
+#define GCHandle_h
+
+#include "AlignedMemoryAllocator.h"
+
+namespace JSC {
+
+class Heap;
+class JSCell;
+class WeakGCHandle;
+class WeakGCHandlePool;
+
+class WeakGCHandle {
+ friend class WeakGCHandlePool;
+
+public:
+ // Because JSCell objects are aligned, we can use the lower two bits as
+ // status flags. The least significant bit is set when the handle is not a
+ // pointer, i.e. when it's used as a offset for the free list in
+ // WeakGCHandlePool. The second least significant bit is set when the object
+ // the pointer corresponds to has been deleted by a garbage collection
+
+ bool isValidPtr() { return !(m_ptr & 3); }
+ bool isPtr() { return !(m_ptr & 1); }
+ bool isNext() { return (m_ptr & 3) == 1; }
+
+ void invalidate()
+ {
+ ASSERT(isValidPtr());
+ m_ptr |= 2;
+ }
+
+ JSCell* get()
+ {
+ ASSERT(isPtr());
+ return reinterpret_cast<JSCell*>(m_ptr & ~3);
+ }
+
+ void set(JSCell* p)
+ {
+ m_ptr = reinterpret_cast<uintptr_t>(p);
+ ASSERT(isPtr());
+ }
+
+ WeakGCHandlePool* pool();
+
+private:
+ uintptr_t getNextInFreeList()
+ {
+ ASSERT(isNext());
+ return m_ptr >> 2;
+ }
+
+ void setNextInFreeList(uintptr_t n)
+ {
+ m_ptr = (n << 2) | 1;
+ ASSERT(isNext());
+ }
+
+ uintptr_t m_ptr;
+};
+
+class WeakGCHandlePool {
+public:
+ static const size_t poolSize = 32 * 1024; // 32k
+ static const size_t poolMask = ~(poolSize - 1);
+ static const size_t numPoolEntries = (poolSize - sizeof(Heap*) - 3 * sizeof(unsigned)) / sizeof(WeakGCHandle);
+
+ typedef AlignedMemoryAllocator<WeakGCHandlePool::poolSize> Allocator;
+
+ WeakGCHandlePool();
+
+ WeakGCHandle* allocate(JSCell* cell);
+ void free(WeakGCHandle*);
+
+ bool isFull()
+ {
+ ASSERT(m_entriesSize < WeakGCHandlePool::numPoolEntries);
+ return m_entriesSize == WeakGCHandlePool::numPoolEntries - 1;
+ }
+
+ void update();
+
+ void* operator new(size_t, AlignedMemory<WeakGCHandlePool::poolSize>&);
+
+private:
+ Heap* m_heap;
+ unsigned m_entriesSize;
+ unsigned m_initialAlloc;
+
+ WeakGCHandle m_entries[WeakGCHandlePool::numPoolEntries];
+};
+
+}
+#endif
diff --git a/JavaScriptCore/runtime/JSArray.cpp b/JavaScriptCore/runtime/JSArray.cpp
index 99e1a10..0db0a63 100644
--- a/JavaScriptCore/runtime/JSArray.cpp
+++ b/JavaScriptCore/runtime/JSArray.cpp
@@ -126,17 +126,36 @@ inline void JSArray::checkConsistency(ConsistencyCheckType)
#endif
+JSArray::JSArray(VPtrStealingHackType)
+ : JSObject(createStructure(jsNull()))
+{
+ unsigned initialCapacity = 0;
+
+ m_storage = static_cast<ArrayStorage*>(fastZeroedMalloc(storageSize(initialCapacity)));
+ m_storage->m_allocBase = m_storage;
+ m_indexBias = 0;
+ m_vectorLength = initialCapacity;
+
+ checkConsistency();
+
+ // It's not safe to call Heap::heap(this) in order to report extra memory
+ // cost here, because the VPtrStealingHackType JSArray is not allocated on
+ // the heap. For the same reason, it's OK not to report extra cost.
+}
+
JSArray::JSArray(NonNullPassRefPtr<Structure> structure)
: JSObject(structure)
{
unsigned initialCapacity = 0;
- ArrayStorage* storage = static_cast<ArrayStorage*>(fastZeroedMalloc(storageSize(initialCapacity)));
+ m_storage = static_cast<ArrayStorage*>(fastZeroedMalloc(storageSize(initialCapacity)));
+ m_storage->m_allocBase = m_storage;
m_indexBias = 0;
- setArrayStorage(storage);
m_vectorLength = initialCapacity;
checkConsistency();
+
+ Heap::heap(this)->reportExtraMemoryCost(storageSize(0));
}
JSArray::JSArray(NonNullPassRefPtr<Structure> structure, unsigned initialLength, ArrayCreationMode creationMode)
@@ -148,35 +167,35 @@ JSArray::JSArray(NonNullPassRefPtr<Structure> structure, unsigned initialLength,
else
initialCapacity = min(BASE_VECTOR_LEN, MIN_SPARSE_ARRAY_INDEX);
- ArrayStorage* storage = static_cast<ArrayStorage*>(fastMalloc(storageSize(initialCapacity)));
- storage->m_length = initialLength;
+ m_storage = static_cast<ArrayStorage*>(fastMalloc(storageSize(initialCapacity)));
+ m_storage->m_allocBase = m_storage;
+ m_storage->m_length = initialLength;
m_indexBias = 0;
m_vectorLength = initialCapacity;
- setArrayStorage(storage);
- storage->m_sparseValueMap = 0;
- storage->subclassData = 0;
- storage->reportedMapCapacity = 0;
+ m_storage->m_sparseValueMap = 0;
+ m_storage->subclassData = 0;
+ m_storage->reportedMapCapacity = 0;
if (creationMode == CreateCompact) {
#if CHECK_ARRAY_CONSISTENCY
- storage->m_inCompactInitialization = !!initialCapacity;
+ m_storage->m_inCompactInitialization = !!initialCapacity;
#endif
- storage->m_length = 0;
- storage->m_numValuesInVector = initialCapacity;
+ m_storage->m_length = 0;
+ m_storage->m_numValuesInVector = initialCapacity;
} else {
#if CHECK_ARRAY_CONSISTENCY
storage->m_inCompactInitialization = false;
#endif
- storage->m_length = initialLength;
- storage->m_numValuesInVector = 0;
- JSValue* vector = m_vector;
+ m_storage->m_length = initialLength;
+ m_storage->m_numValuesInVector = 0;
+ JSValue* vector = m_storage->m_vector;
for (size_t i = 0; i < initialCapacity; ++i)
vector[i] = JSValue();
}
checkConsistency();
- Heap::heap(this)->reportExtraMemoryCost(initialCapacity * sizeof(JSValue));
+ Heap::heap(this)->reportExtraMemoryCost(storageSize(initialCapacity));
}
JSArray::JSArray(NonNullPassRefPtr<Structure> structure, const ArgList& list)
@@ -184,21 +203,21 @@ JSArray::JSArray(NonNullPassRefPtr<Structure> structure, const ArgList& list)
{
unsigned initialCapacity = list.size();
- ArrayStorage* storage = static_cast<ArrayStorage*>(fastMalloc(storageSize(initialCapacity)));
+ m_storage = static_cast<ArrayStorage*>(fastMalloc(storageSize(initialCapacity)));
+ m_storage->m_allocBase = m_storage;
m_indexBias = 0;
- storage->m_length = initialCapacity;
+ m_storage->m_length = initialCapacity;
m_vectorLength = initialCapacity;
- storage->m_numValuesInVector = initialCapacity;
- storage->m_sparseValueMap = 0;
- storage->subclassData = 0;
- storage->reportedMapCapacity = 0;
+ m_storage->m_numValuesInVector = initialCapacity;
+ m_storage->m_sparseValueMap = 0;
+ m_storage->subclassData = 0;
+ m_storage->reportedMapCapacity = 0;
#if CHECK_ARRAY_CONSISTENCY
- storage->m_inCompactInitialization = false;
+ m_storage->m_inCompactInitialization = false;
#endif
- setArrayStorage(storage);
size_t i = 0;
- JSValue* vector = m_vector;
+ JSValue* vector = m_storage->m_vector;
ArgList::const_iterator end = list.end();
for (ArgList::const_iterator it = list.begin(); it != end; ++it, ++i)
vector[i] = *it;
@@ -213,15 +232,13 @@ JSArray::~JSArray()
ASSERT(vptr() == JSGlobalData::jsArrayVPtr);
checkConsistency(DestructorConsistencyCheck);
- ArrayStorage* storage = arrayStorage();
- delete storage->m_sparseValueMap;
- char* realStorage = reinterpret_cast<char*>(storage) - (m_indexBias * sizeof(JSValue));
- fastFree(realStorage);
+ delete m_storage->m_sparseValueMap;
+ fastFree(m_storage->m_allocBase);
}
bool JSArray::getOwnPropertySlot(ExecState* exec, unsigned i, PropertySlot& slot)
{
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
if (i >= storage->m_length) {
if (i > MAX_ARRAY_INDEX)
@@ -230,7 +247,7 @@ bool JSArray::getOwnPropertySlot(ExecState* exec, unsigned i, PropertySlot& slot
}
if (i < m_vectorLength) {
- JSValue& valueSlot = m_vector[i];
+ JSValue& valueSlot = storage->m_vector[i];
if (valueSlot) {
slot.setValueSlot(&valueSlot);
return true;
@@ -270,7 +287,7 @@ bool JSArray::getOwnPropertyDescriptor(ExecState* exec, const Identifier& proper
return true;
}
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
bool isArrayIndex;
unsigned i = propertyName.toArrayIndex(&isArrayIndex);
@@ -278,7 +295,7 @@ bool JSArray::getOwnPropertyDescriptor(ExecState* exec, const Identifier& proper
if (i >= storage->m_length)
return false;
if (i < m_vectorLength) {
- JSValue& value = m_vector[i];
+ JSValue& value = storage->m_vector[i];
if (value) {
descriptor.setDescriptor(value, 0);
return true;
@@ -323,7 +340,7 @@ void JSArray::put(ExecState* exec, unsigned i, JSValue value)
{
checkConsistency();
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned length = storage->m_length;
if (i >= length && i <= MAX_ARRAY_INDEX) {
@@ -332,7 +349,7 @@ void JSArray::put(ExecState* exec, unsigned i, JSValue value)
}
if (i < m_vectorLength) {
- JSValue& valueSlot = m_vector[i];
+ JSValue& valueSlot = storage->m_vector[i];
if (valueSlot) {
valueSlot = value;
checkConsistency();
@@ -349,7 +366,7 @@ void JSArray::put(ExecState* exec, unsigned i, JSValue value)
NEVER_INLINE void JSArray::putSlowCase(ExecState* exec, unsigned i, JSValue value)
{
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
SparseArrayValueMap* map = storage->m_sparseValueMap;
@@ -387,8 +404,9 @@ NEVER_INLINE void JSArray::putSlowCase(ExecState* exec, unsigned i, JSValue valu
// Fast case is when there is no sparse map, so we can increase the vector size without moving values from it.
if (!map || map->isEmpty()) {
if (increaseVectorLength(i + 1)) {
- m_vector[i] = value;
- ++arrayStorage()->m_numValuesInVector;
+ storage = m_storage;
+ storage->m_vector[i] = value;
+ ++storage->m_numValuesInVector;
checkConsistency();
} else
throwOutOfMemoryError(exec);
@@ -416,29 +434,30 @@ NEVER_INLINE void JSArray::putSlowCase(ExecState* exec, unsigned i, JSValue valu
}
}
- int baseBias = m_indexBias * sizeof(JSValue);
- char* baseStorage = reinterpret_cast<char*>(storage - baseBias);
+ void* baseStorage = storage->m_allocBase;
if (!tryFastRealloc(baseStorage, storageSize(newVectorLength + m_indexBias)).getValue(baseStorage)) {
throwOutOfMemoryError(exec);
return;
}
- storage = reinterpret_cast<ArrayStorage*>(baseStorage + baseBias);
- setArrayStorage(storage);
+ m_storage = reinterpret_cast<ArrayStorage*>(static_cast<char*>(baseStorage) + m_indexBias * sizeof(JSValue));
+ m_storage->m_allocBase = baseStorage;
+ storage = m_storage;
unsigned vectorLength = m_vectorLength;
+ JSValue* vector = storage->m_vector;
if (newNumValuesInVector == storage->m_numValuesInVector + 1) {
for (unsigned j = vectorLength; j < newVectorLength; ++j)
- m_vector[j] = JSValue();
+ vector[j] = JSValue();
if (i > MIN_SPARSE_ARRAY_INDEX)
map->remove(i);
} else {
for (unsigned j = vectorLength; j < max(vectorLength, MIN_SPARSE_ARRAY_INDEX); ++j)
- m_vector[j] = JSValue();
+ vector[j] = JSValue();
for (unsigned j = max(vectorLength, MIN_SPARSE_ARRAY_INDEX); j < newVectorLength; ++j)
- m_vector[j] = map->take(j);
+ vector[j] = map->take(j);
}
ASSERT(i < newVectorLength);
@@ -446,7 +465,7 @@ NEVER_INLINE void JSArray::putSlowCase(ExecState* exec, unsigned i, JSValue valu
m_vectorLength = newVectorLength;
storage->m_numValuesInVector = newNumValuesInVector;
- m_vector[i] = value;
+ storage->m_vector[i] = value;
checkConsistency();
@@ -470,10 +489,10 @@ bool JSArray::deleteProperty(ExecState* exec, unsigned i)
{
checkConsistency();
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
if (i < m_vectorLength) {
- JSValue& valueSlot = m_vector[i];
+ JSValue& valueSlot = storage->m_vector[i];
if (!valueSlot) {
checkConsistency();
return false;
@@ -509,11 +528,11 @@ void JSArray::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNa
// is incredibly inefficient for large arrays. We need a different approach,
// which almost certainly means a different structure for PropertyNameArray.
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned usedVectorLength = min(storage->m_length, m_vectorLength);
for (unsigned i = 0; i < usedVectorLength; ++i) {
- if (m_vector[i])
+ if (storage->m_vector[i])
propertyNames.add(Identifier::from(exec, i));
}
@@ -534,7 +553,7 @@ ALWAYS_INLINE unsigned JSArray::getNewVectorLength(unsigned desiredLength)
ASSERT(desiredLength <= MAX_STORAGE_VECTOR_LENGTH);
unsigned increasedLength;
- unsigned length = arrayStorage()->m_length;
+ unsigned length = m_storage->m_length;
if (desiredLength < length)
increasedLength = length;
@@ -561,22 +580,21 @@ bool JSArray::increaseVectorLength(unsigned newLength)
// This function leaves the array in an internally inconsistent state, because it does not move any values from sparse value map
// to the vector. Callers have to account for that, because they can do it more efficiently.
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned vectorLength = m_vectorLength;
ASSERT(newLength > vectorLength);
ASSERT(newLength <= MAX_STORAGE_VECTOR_INDEX);
unsigned newVectorLength = getNewVectorLength(newLength);
- int baseBias = m_indexBias * sizeof(JSValue);
- char* baseStorage = reinterpret_cast<char*>(storage) - baseBias;
+ void* baseStorage = storage->m_allocBase;
if (!tryFastRealloc(baseStorage, storageSize(newVectorLength + m_indexBias)).getValue(baseStorage))
return false;
-
- storage = reinterpret_cast<ArrayStorage*>(baseStorage + baseBias);
- setArrayStorage(storage);
- JSValue* vector = m_vector;
+ storage = m_storage = reinterpret_cast<ArrayStorage*>(static_cast<char*>(baseStorage) + m_indexBias * sizeof(JSValue));
+ m_storage->m_allocBase = baseStorage;
+
+ JSValue* vector = storage->m_vector;
for (unsigned i = vectorLength; i < newVectorLength; ++i)
vector[i] = JSValue();
@@ -592,33 +610,29 @@ bool JSArray::increaseVectorPrefixLength(unsigned newLength)
// This function leaves the array in an internally inconsistent state, because it does not move any values from sparse value map
// to the vector. Callers have to account for that, because they can do it more efficiently.
- ArrayStorage* storage = arrayStorage();
- ArrayStorage* newStorage;
+ ArrayStorage* storage = m_storage;
unsigned vectorLength = m_vectorLength;
ASSERT(newLength > vectorLength);
ASSERT(newLength <= MAX_STORAGE_VECTOR_INDEX);
unsigned newVectorLength = getNewVectorLength(newLength);
- char* baseStorage = reinterpret_cast<char*>(storage) - (m_indexBias * sizeof(JSValue));
-
- char* newBaseStorage = reinterpret_cast<char*>(fastMalloc(storageSize(newVectorLength + m_indexBias)));
+
+ void* newBaseStorage = fastMalloc(storageSize(newVectorLength + m_indexBias));
if (!newBaseStorage)
return false;
m_indexBias += newVectorLength - newLength;
- int newStorageOffset = m_indexBias * sizeof(JSValue);
-
- newStorage = reinterpret_cast<ArrayStorage*>(newBaseStorage + newStorageOffset);
- memcpy(newStorage, storage, storageSize(0));
- memcpy(&newStorage->m_vector[newLength - m_vectorLength], &storage->m_vector[0], storage->m_length * sizeof(JSValue));
+ m_storage = reinterpret_cast<ArrayStorage*>(static_cast<char*>(newBaseStorage) + m_indexBias * sizeof(JSValue));
+
+ memcpy(m_storage, storage, storageSize(0));
+ memcpy(&m_storage->m_vector[newLength - m_vectorLength], &storage->m_vector[0], vectorLength * sizeof(JSValue));
+ m_storage->m_allocBase = newBaseStorage;
m_vectorLength = newLength;
- fastFree(baseStorage);
+ fastFree(storage->m_allocBase);
- setArrayStorage(newStorage);
-
Heap::heap(this)->reportExtraMemoryCost(storageSize(newVectorLength) - storageSize(vectorLength));
return true;
@@ -627,21 +641,21 @@ bool JSArray::increaseVectorPrefixLength(unsigned newLength)
void JSArray::setLength(unsigned newLength)
{
+ ArrayStorage* storage = m_storage;
+
#if CHECK_ARRAY_CONSISTENCY
- if (!m_storage->m_inCompactInitialization)
+ if (!storage->m_inCompactInitialization)
checkConsistency();
else
- m_storage->m_inCompactInitialization = false;
+ storage->m_inCompactInitialization = false;
#endif
- ArrayStorage* storage = arrayStorage();
-
unsigned length = storage->m_length;
if (newLength < length) {
unsigned usedVectorLength = min(length, m_vectorLength);
for (unsigned i = newLength; i < usedVectorLength; ++i) {
- JSValue& valueSlot = m_vector[i];
+ JSValue& valueSlot = storage->m_vector[i];
bool hadValue = valueSlot;
valueSlot = JSValue();
storage->m_numValuesInVector -= hadValue;
@@ -670,7 +684,7 @@ JSValue JSArray::pop()
{
checkConsistency();
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned length = storage->m_length;
if (!length)
@@ -681,7 +695,7 @@ JSValue JSArray::pop()
JSValue result;
if (length < m_vectorLength) {
- JSValue& valueSlot = m_vector[length];
+ JSValue& valueSlot = storage->m_vector[length];
if (valueSlot) {
--storage->m_numValuesInVector;
result = valueSlot;
@@ -714,10 +728,10 @@ void JSArray::push(ExecState* exec, JSValue value)
{
checkConsistency();
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
if (storage->m_length < m_vectorLength) {
- m_vector[storage->m_length] = value;
+ storage->m_vector[storage->m_length] = value;
++storage->m_numValuesInVector;
++storage->m_length;
checkConsistency();
@@ -728,8 +742,8 @@ void JSArray::push(ExecState* exec, JSValue value)
SparseArrayValueMap* map = storage->m_sparseValueMap;
if (!map || map->isEmpty()) {
if (increaseVectorLength(storage->m_length + 1)) {
- storage = arrayStorage();
- m_vector[storage->m_length] = value;
+ storage = m_storage;
+ storage->m_vector[storage->m_length] = value;
++storage->m_numValuesInVector;
++storage->m_length;
checkConsistency();
@@ -748,7 +762,7 @@ void JSArray::shiftCount(ExecState* exec, int count)
{
ASSERT(count > 0);
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned oldLength = storage->m_length;
@@ -761,7 +775,7 @@ void JSArray::shiftCount(ExecState* exec, int count)
// slots and then fill them with possible properties. See ECMA spec.
// 15.4.4.9 steps 11 through 13.
for (unsigned i = count; i < oldLength; ++i) {
- if ((i >= m_vectorLength) || (!m_vector[i])) {
+ if ((i >= m_vectorLength) || (!m_storage->m_vector[i])) {
PropertySlot slot(this);
JSValue p = prototype();
if ((!p.isNull()) && (asObject(p)->getPropertySlot(exec, i, slot)))
@@ -769,11 +783,11 @@ void JSArray::shiftCount(ExecState* exec, int count)
}
}
- storage = arrayStorage(); // The put() above could have grown the vector and realloc'ed storage.
+ storage = m_storage; // The put() above could have grown the vector and realloc'ed storage.
// Need to decrement numValuesInvector based on number of real entries
for (unsigned i = 0; i < (unsigned)count; ++i)
- if ((i < m_vectorLength) && (m_vector[i]))
+ if ((i < m_vectorLength) && (storage->m_vector[i]))
--storage->m_numValuesInVector;
} else
storage->m_numValuesInVector -= count;
@@ -788,17 +802,16 @@ void JSArray::shiftCount(ExecState* exec, int count)
if (m_vectorLength) {
char* newBaseStorage = reinterpret_cast<char*>(storage) + count * sizeof(JSValue);
memmove(newBaseStorage, storage, storageSize(0));
- storage = reinterpret_cast<ArrayStorage*>(newBaseStorage);
+ m_storage = reinterpret_cast<ArrayStorage*>(newBaseStorage);
m_indexBias += count;
- setArrayStorage(storage);
}
}
}
void JSArray::unshiftCount(ExecState* exec, int count)
{
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
ASSERT(m_indexBias >= 0);
ASSERT(count >= 0);
@@ -811,7 +824,7 @@ void JSArray::unshiftCount(ExecState* exec, int count)
// slots and then fill them with possible properties. See ECMA spec.
// 15.4.4.13 steps 8 through 10.
for (unsigned i = 0; i < length; ++i) {
- if ((i >= m_vectorLength) || (!m_vector[i])) {
+ if ((i >= m_vectorLength) || (!m_storage->m_vector[i])) {
PropertySlot slot(this);
JSValue p = prototype();
if ((!p.isNull()) && (asObject(p)->getPropertySlot(exec, i, slot)))
@@ -820,19 +833,22 @@ void JSArray::unshiftCount(ExecState* exec, int count)
}
}
- storage = arrayStorage(); // The put() above could have grown the vector and realloc'ed storage.
+ storage = m_storage; // The put() above could have grown the vector and realloc'ed storage.
if (m_indexBias >= count) {
m_indexBias -= count;
char* newBaseStorage = reinterpret_cast<char*>(storage) - count * sizeof(JSValue);
memmove(newBaseStorage, storage, storageSize(0));
- storage = reinterpret_cast<ArrayStorage*>(newBaseStorage);
- setArrayStorage(storage);
+ m_storage = reinterpret_cast<ArrayStorage*>(newBaseStorage);
m_vectorLength += count;
- } else if ((!m_indexBias) && (!increaseVectorPrefixLength(m_vectorLength + count))) {
+ } else if (!increaseVectorPrefixLength(m_vectorLength + count)) {
throwOutOfMemoryError(exec);
return;
}
+
+ JSValue* vector = m_storage->m_vector;
+ for (int i = 0; i < count; i++)
+ vector[i] = JSValue();
}
void JSArray::markChildren(MarkStack& markStack)
@@ -858,7 +874,7 @@ static int compareByStringPairForQSort(const void* a, const void* b)
void JSArray::sortNumeric(ExecState* exec, JSValue compareFunction, CallType callType, const CallData& callData)
{
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned lengthNotIncludingUndefined = compactForSorting();
if (storage->m_sparseValueMap) {
@@ -872,7 +888,7 @@ void JSArray::sortNumeric(ExecState* exec, JSValue compareFunction, CallType cal
bool allValuesAreNumbers = true;
size_t size = storage->m_numValuesInVector;
for (size_t i = 0; i < size; ++i) {
- if (!m_vector[i].isNumber()) {
+ if (!storage->m_vector[i].isNumber()) {
allValuesAreNumbers = false;
break;
}
@@ -884,14 +900,14 @@ void JSArray::sortNumeric(ExecState* exec, JSValue compareFunction, CallType cal
// For numeric comparison, which is fast, qsort is faster than mergesort. We
// also don't require mergesort's stability, since there's no user visible
// side-effect from swapping the order of equal primitive values.
- qsort(m_vector, size, sizeof(JSValue), compareNumbersForQSort);
+ qsort(storage->m_vector, size, sizeof(JSValue), compareNumbersForQSort);
checkConsistency(SortConsistencyCheck);
}
void JSArray::sort(ExecState* exec)
{
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned lengthNotIncludingUndefined = compactForSorting();
if (storage->m_sparseValueMap) {
@@ -914,7 +930,7 @@ void JSArray::sort(ExecState* exec)
}
for (size_t i = 0; i < lengthNotIncludingUndefined; i++) {
- JSValue value = m_vector[i];
+ JSValue value = storage->m_vector[i];
ASSERT(!value.isUndefined());
values[i].first = value;
}
@@ -946,7 +962,7 @@ void JSArray::sort(ExecState* exec)
// modifying the vector incorrectly.
for (size_t i = 0; i < lengthNotIncludingUndefined; i++)
- m_vector[i] = values[i].first;
+ storage->m_vector[i] = values[i].first;
checkConsistency(SortConsistencyCheck);
}
@@ -1033,7 +1049,7 @@ void JSArray::sort(ExecState* exec, JSValue compareFunction, CallType callType,
{
checkConsistency();
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
// FIXME: This ignores exceptions raised in the compare function or in toNumber.
@@ -1072,14 +1088,14 @@ void JSArray::sort(ExecState* exec, JSValue compareFunction, CallType callType,
// Iterate over the array, ignoring missing values, counting undefined ones, and inserting all other ones into the tree.
for (; numDefined < usedVectorLength; ++numDefined) {
- JSValue v = m_vector[numDefined];
+ JSValue v = storage->m_vector[numDefined];
if (!v || v.isUndefined())
break;
tree.abstractor().m_nodes[numDefined].value = v;
tree.insert(numDefined);
}
for (unsigned i = numDefined; i < usedVectorLength; ++i) {
- JSValue v = m_vector[i];
+ JSValue v = storage->m_vector[i];
if (v) {
if (v.isUndefined())
++numUndefined;
@@ -1103,7 +1119,7 @@ void JSArray::sort(ExecState* exec, JSValue compareFunction, CallType callType,
}
}
- storage = arrayStorage();
+ storage = m_storage;
SparseArrayValueMap::iterator end = map->end();
for (SparseArrayValueMap::iterator it = map->begin(); it != end; ++it) {
@@ -1125,17 +1141,17 @@ void JSArray::sort(ExecState* exec, JSValue compareFunction, CallType callType,
AVLTree<AVLTreeAbstractorForArrayCompare, 44>::Iterator iter;
iter.start_iter_least(tree);
for (unsigned i = 0; i < numDefined; ++i) {
- m_vector[i] = tree.abstractor().m_nodes[*iter].value;
+ storage->m_vector[i] = tree.abstractor().m_nodes[*iter].value;
++iter;
}
// Put undefined values back in.
for (unsigned i = numDefined; i < newUsedVectorLength; ++i)
- m_vector[i] = jsUndefined();
+ storage->m_vector[i] = jsUndefined();
// Ensure that unused values in the vector are zeroed out.
for (unsigned i = newUsedVectorLength; i < usedVectorLength; ++i)
- m_vector[i] = JSValue();
+ storage->m_vector[i] = JSValue();
storage->m_numValuesInVector = newUsedVectorLength;
@@ -1144,7 +1160,7 @@ void JSArray::sort(ExecState* exec, JSValue compareFunction, CallType callType,
void JSArray::fillArgList(ExecState* exec, MarkedArgumentBuffer& args)
{
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
JSValue* vector = storage->m_vector;
unsigned vectorEnd = min(storage->m_length, m_vectorLength);
@@ -1162,9 +1178,9 @@ void JSArray::fillArgList(ExecState* exec, MarkedArgumentBuffer& args)
void JSArray::copyToRegisters(ExecState* exec, Register* buffer, uint32_t maxSize)
{
- ASSERT(arrayStorage()->m_length >= maxSize);
+ ASSERT(m_storage->m_length >= maxSize);
UNUSED_PARAM(maxSize);
- JSValue* vector = m_vector;
+ JSValue* vector = m_storage->m_vector;
unsigned vectorEnd = min(maxSize, m_vectorLength);
unsigned i = 0;
for (; i < vectorEnd; ++i) {
@@ -1182,7 +1198,7 @@ unsigned JSArray::compactForSorting()
{
checkConsistency();
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned usedVectorLength = min(storage->m_length, m_vectorLength);
@@ -1190,17 +1206,17 @@ unsigned JSArray::compactForSorting()
unsigned numUndefined = 0;
for (; numDefined < usedVectorLength; ++numDefined) {
- JSValue v = m_vector[numDefined];
+ JSValue v = storage->m_vector[numDefined];
if (!v || v.isUndefined())
break;
}
for (unsigned i = numDefined; i < usedVectorLength; ++i) {
- JSValue v = m_vector[i];
+ JSValue v = storage->m_vector[i];
if (v) {
if (v.isUndefined())
++numUndefined;
else
- m_vector[numDefined++] = v;
+ storage->m_vector[numDefined++] = v;
}
}
@@ -1214,21 +1230,21 @@ unsigned JSArray::compactForSorting()
if ((newUsedVectorLength > MAX_STORAGE_VECTOR_LENGTH) || !increaseVectorLength(newUsedVectorLength))
return 0;
- storage = arrayStorage();
+ storage = m_storage;
}
SparseArrayValueMap::iterator end = map->end();
for (SparseArrayValueMap::iterator it = map->begin(); it != end; ++it)
- m_vector[numDefined++] = it->second;
+ storage->m_vector[numDefined++] = it->second;
delete map;
storage->m_sparseValueMap = 0;
}
for (unsigned i = numDefined; i < newUsedVectorLength; ++i)
- m_vector[i] = jsUndefined();
+ storage->m_vector[i] = jsUndefined();
for (unsigned i = newUsedVectorLength; i < usedVectorLength; ++i)
- m_vector[i] = JSValue();
+ storage->m_vector[i] = JSValue();
storage->m_numValuesInVector = newUsedVectorLength;
@@ -1239,19 +1255,19 @@ unsigned JSArray::compactForSorting()
void* JSArray::subclassData() const
{
- return arrayStorage()->subclassData;
+ return m_storage->subclassData;
}
void JSArray::setSubclassData(void* d)
{
- arrayStorage()->subclassData = d;
+ m_storage->subclassData = d;
}
#if CHECK_ARRAY_CONSISTENCY
void JSArray::checkConsistency(ConsistencyCheckType type)
{
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
ASSERT(storage);
if (type == SortConsistencyCheck)
@@ -1259,7 +1275,7 @@ void JSArray::checkConsistency(ConsistencyCheckType type)
unsigned numValuesInVector = 0;
for (unsigned i = 0; i < m_vectorLength; ++i) {
- if (JSValue value = m_vector[i]) {
+ if (JSValue value = storage->m_vector[i]) {
ASSERT(i < storage->m_length);
if (type != DestructorConsistencyCheck)
value.isUndefined(); // Likely to crash if the object was deallocated.
@@ -1277,7 +1293,7 @@ void JSArray::checkConsistency(ConsistencyCheckType type)
for (SparseArrayValueMap::iterator it = storage->m_sparseValueMap->begin(); it != end; ++it) {
unsigned index = it->first;
ASSERT(index < storage->m_length);
- ASSERT(index >= m_vectorLength);
+ ASSERT(index >= storage->m_vectorLength);
ASSERT(index <= MAX_ARRAY_INDEX);
ASSERT(it->second);
if (type != DestructorConsistencyCheck)
diff --git a/JavaScriptCore/runtime/JSArray.h b/JavaScriptCore/runtime/JSArray.h
index a7ce328..f718d7e 100644
--- a/JavaScriptCore/runtime/JSArray.h
+++ b/JavaScriptCore/runtime/JSArray.h
@@ -39,6 +39,7 @@ namespace JSC {
unsigned m_numValuesInVector;
SparseArrayValueMap* m_sparseValueMap;
void* subclassData; // A JSArray subclass can use this to fill the vector lazily.
+ void* m_allocBase; // Pointer to base address returned by malloc(). Keeping this pointer does eliminate false positives from the leak detector.
size_t reportedMapCapacity;
#if CHECK_ARRAY_CONSISTENCY
bool m_inCompactInitialization;
@@ -61,6 +62,9 @@ namespace JSC {
friend class Walker;
public:
+ enum VPtrStealingHackType { VPtrStealingHack };
+ JSArray(VPtrStealingHackType);
+
explicit JSArray(NonNullPassRefPtr<Structure>);
JSArray(NonNullPassRefPtr<Structure>, unsigned initialLength, ArrayCreationMode);
JSArray(NonNullPassRefPtr<Structure>, const ArgList& initialValues);
@@ -73,7 +77,7 @@ namespace JSC {
static JS_EXPORTDATA const ClassInfo info;
- unsigned length() const { return arrayStorage()->m_length; }
+ unsigned length() const { return m_storage->m_length; }
void setLength(unsigned); // OK to use on new arrays, but not if it might be a RegExpMatchArray.
void sort(ExecState*);
@@ -86,11 +90,11 @@ namespace JSC {
void shiftCount(ExecState*, int count);
void unshiftCount(ExecState*, int count);
- bool canGetIndex(unsigned i) { return i < m_vectorLength && m_vector[i]; }
+ bool canGetIndex(unsigned i) { return i < m_vectorLength && m_storage->m_vector[i]; }
JSValue getIndex(unsigned i)
{
ASSERT(canGetIndex(i));
- return m_vector[i];
+ return m_storage->m_vector[i];
}
bool canSetIndex(unsigned i) { return i < m_vectorLength; }
@@ -98,9 +102,9 @@ namespace JSC {
{
ASSERT(canSetIndex(i));
- JSValue& x = m_vector[i];
+ JSValue& x = m_storage->m_vector[i];
if (!x) {
- ArrayStorage *storage = arrayStorage();
+ ArrayStorage *storage = m_storage;
++storage->m_numValuesInVector;
if (i >= storage->m_length)
storage->m_length = i + 1;
@@ -111,7 +115,7 @@ namespace JSC {
void uncheckedSetIndex(unsigned i, JSValue v)
{
ASSERT(canSetIndex(i));
- ArrayStorage *storage = arrayStorage();
+ ArrayStorage *storage = m_storage;
#if CHECK_ARRAY_CONSISTENCY
ASSERT(storage->m_inCompactInitialization);
#endif
@@ -139,16 +143,6 @@ namespace JSC {
void* subclassData() const;
void setSubclassData(void*);
- inline ArrayStorage *arrayStorage() const
- {
- return reinterpret_cast<ArrayStorage*>(reinterpret_cast<char*>(m_vector) - (sizeof(ArrayStorage) - sizeof(JSValue)));
- }
-
- inline void setArrayStorage(ArrayStorage *storage)
- {
- m_vector = &storage->m_vector[0];
- }
-
private:
virtual const ClassInfo* classInfo() const { return &info; }
@@ -166,7 +160,7 @@ namespace JSC {
unsigned m_vectorLength; // The valid length of m_vector
int m_indexBias; // The number of JSValue sized blocks before ArrayStorage.
- JSValue* m_vector; // Copy of ArrayStorage.m_vector. Used for quick vector access and to materialize ArrayStorage ptr.
+ ArrayStorage *m_storage;
};
JSArray* asArray(JSValue);
@@ -192,7 +186,7 @@ namespace JSC {
{
JSObject::markChildrenDirect(markStack);
- ArrayStorage* storage = arrayStorage();
+ ArrayStorage* storage = m_storage;
unsigned usedVectorLength = std::min(storage->m_length, m_vectorLength);
markStack.appendValues(storage->m_vector, usedVectorLength, MayContainNullValues);
diff --git a/JavaScriptCore/runtime/JSGlobalData.cpp b/JavaScriptCore/runtime/JSGlobalData.cpp
index 065cbe1..abb2db2 100644
--- a/JavaScriptCore/runtime/JSGlobalData.cpp
+++ b/JavaScriptCore/runtime/JSGlobalData.cpp
@@ -85,7 +85,7 @@ void JSGlobalData::storeVPtrs()
void* storage = &cell;
COMPILE_ASSERT(sizeof(JSArray) <= sizeof(CollectorCell), sizeof_JSArray_must_be_less_than_CollectorCell);
- JSCell* jsArray = new (storage) JSArray(JSArray::createStructure(jsNull()));
+ JSCell* jsArray = new (storage) JSArray(JSArray::VPtrStealingHack);
JSGlobalData::jsArrayVPtr = jsArray->vptr();
jsArray->~JSCell();
diff --git a/JavaScriptCore/runtime/JSGlobalData.h b/JavaScriptCore/runtime/JSGlobalData.h
index 63f9ad8..1928f77 100644
--- a/JavaScriptCore/runtime/JSGlobalData.h
+++ b/JavaScriptCore/runtime/JSGlobalData.h
@@ -220,7 +220,9 @@ namespace JSC {
RegExpCache* m_regExpCache;
+#if ENABLE(YARR)
BumpPointerAllocator m_regexAllocator;
+#endif
#ifndef NDEBUG
ThreadIdentifier exclusiveThread;
diff --git a/JavaScriptCore/runtime/JSLock.cpp b/JavaScriptCore/runtime/JSLock.cpp
index a1cffbd..10f4f3f 100644
--- a/JavaScriptCore/runtime/JSLock.cpp
+++ b/JavaScriptCore/runtime/JSLock.cpp
@@ -65,6 +65,12 @@ JSLock::JSLock(ExecState* exec)
lock(m_lockBehavior);
}
+JSLock::JSLock(JSGlobalData* globalData)
+ : m_lockBehavior(globalData->isSharedInstance() ? LockForReal : SilenceAssertionsOnly)
+{
+ lock(m_lockBehavior);
+}
+
void JSLock::lock(JSLockBehavior lockBehavior)
{
#ifdef NDEBUG
diff --git a/JavaScriptCore/runtime/JSLock.h b/JavaScriptCore/runtime/JSLock.h
index 8b015c4..05b388c 100644
--- a/JavaScriptCore/runtime/JSLock.h
+++ b/JavaScriptCore/runtime/JSLock.h
@@ -49,12 +49,14 @@ namespace JSC {
// assertions working, so that clients that use the shared context don't break.
class ExecState;
+ class JSGlobalData;
enum JSLockBehavior { SilenceAssertionsOnly, LockForReal };
class JSLock : public Noncopyable {
public:
JSLock(ExecState*);
+ JSLock(JSGlobalData*);
JSLock(JSLockBehavior lockBehavior)
: m_lockBehavior(lockBehavior)
diff --git a/JavaScriptCore/runtime/UStringImpl.h b/JavaScriptCore/runtime/UStringImpl.h
index 08f1fa5..6401d3b 100644
--- a/JavaScriptCore/runtime/UStringImpl.h
+++ b/JavaScriptCore/runtime/UStringImpl.h
@@ -25,6 +25,6 @@
// FIXME: Remove this redundant name!
#include <wtf/text/StringImpl.h>
-namespace JSC { typedef WebCore::StringImpl UStringImpl; }
+namespace JSC { typedef StringImpl UStringImpl; }
#endif
diff --git a/JavaScriptCore/runtime/WeakGCPtr.h b/JavaScriptCore/runtime/WeakGCPtr.h
index 9dce858..ac77cf3 100644
--- a/JavaScriptCore/runtime/WeakGCPtr.h
+++ b/JavaScriptCore/runtime/WeakGCPtr.h
@@ -27,6 +27,7 @@
#define WeakGCPtr_h
#include "Collector.h"
+#include "GCHandle.h"
#include <wtf/Noncopyable.h>
namespace JSC {
@@ -34,23 +35,34 @@ namespace JSC {
// A smart pointer whose get() function returns 0 for cells awaiting destruction.
template <typename T> class WeakGCPtr : Noncopyable {
public:
- WeakGCPtr() : m_ptr(0) { }
+ WeakGCPtr()
+ : m_ptr(0)
+ {
+ }
+
WeakGCPtr(T* ptr) { assign(ptr); }
+ ~WeakGCPtr()
+ {
+ if (m_ptr)
+ m_ptr->pool()->free(m_ptr);
+ }
+
T* get() const
{
- if (!m_ptr || !Heap::isCellMarked(m_ptr))
- return 0;
- return m_ptr;
+ if (m_ptr && m_ptr->isValidPtr())
+ return static_cast<T*>(m_ptr->get());
+ return 0;
}
- bool clear(JSCell* ptr)
+ bool clear(JSCell* p)
{
- if (ptr == m_ptr) {
- m_ptr = 0;
- return true;
- }
- return false;
+ if (!m_ptr || m_ptr->get() != p)
+ return false;
+
+ m_ptr->pool()->free(m_ptr);
+ m_ptr = 0;
+ return true;
}
T& operator*() const { return *get(); }
@@ -62,7 +74,7 @@ public:
#if COMPILER(WINSCW)
operator bool() const { return m_ptr; }
#else
- typedef T* WeakGCPtr::*UnspecifiedBoolType;
+ typedef WeakGCHandle* WeakGCPtr::*UnspecifiedBoolType;
operator UnspecifiedBoolType() const { return get() ? &WeakGCPtr::m_ptr : 0; }
#endif
@@ -73,14 +85,16 @@ public:
#endif
private:
- void assign(T* ptr)
+ void assign(JSCell* ptr)
{
ASSERT(ptr);
- Heap::markCell(ptr);
- m_ptr = ptr;
+ if (m_ptr)
+ m_ptr->set(ptr);
+ else
+ m_ptr = Heap::heap(ptr)->addWeakGCHandle(ptr);
}
- T* m_ptr;
+ WeakGCHandle* m_ptr;
};
template <typename T> inline WeakGCPtr<T>& WeakGCPtr<T>::operator=(T* optr)
@@ -129,7 +143,7 @@ template <typename T, typename U> inline WeakGCPtr<T> const_pointer_cast(const W
return WeakGCPtr<T>(const_cast<T*>(p.get()));
}
-template <typename T> inline T* getPtr(const WeakGCPtr<T>& p)
+template <typename T> inline T* get(const WeakGCPtr<T>& p)
{
return p.get();
}
diff --git a/JavaScriptCore/wscript b/JavaScriptCore/wscript
index 4f9d868..8f62349 100644
--- a/JavaScriptCore/wscript
+++ b/JavaScriptCore/wscript
@@ -29,7 +29,7 @@ import commands
from settings import *
-jscore_excludes = ['jsc.cpp', 'ucptable.cpp','ProfilerServer.mm']
+jscore_excludes = ['jsc.cpp', 'ucptable.cpp','ProfilerServer.mm', 'ExecutableAllocatorPosix.cpp']
jscore_excludes.extend(get_excludes(jscore_dir, ['*Brew.cpp', '*CF.cpp', '*Symbian.cpp']))
sources = []
@@ -37,7 +37,7 @@ sources = []
jscore_excludes.extend(get_excludes(jscore_dir, ['*None.cpp']))
if building_on_win32:
- jscore_excludes += ['ExecutableAllocatorPosix.cpp', 'MarkStackPosix.cpp', 'ThreadingPthreads.cpp']
+ jscore_excludes += ['MarkStackPosix.cpp', 'ThreadingPthreads.cpp']
sources += ['runtime/MarkStackWin.cpp']
else:
jscore_excludes.append('JSStringRefBSTR.cpp')
diff --git a/JavaScriptCore/wtf/Bitmap.h b/JavaScriptCore/wtf/Bitmap.h
new file mode 100644
index 0000000..4dd88f6
--- /dev/null
+++ b/JavaScriptCore/wtf/Bitmap.h
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+#ifndef Bitmap_h
+#define Bitmap_h
+
+#include "FixedArray.h"
+#include "StdLibExtras.h"
+
+#include <stdint.h>
+
+namespace WTF {
+
+template<size_t size>
+class Bitmap {
+private:
+ typedef uint32_t WordType;
+
+public:
+ Bitmap();
+
+ bool get(size_t) const;
+ void set(size_t);
+ void clear(size_t);
+ void clearAll();
+ void advanceToNextFreeBit(size_t&) const;
+ size_t count(size_t = 0) const;
+ size_t isEmpty() const;
+ size_t isFull() const;
+
+private:
+ static const WordType wordSize = sizeof(WordType) * 8;
+ static const WordType words = (size + wordSize - 1) / wordSize;
+
+ // the literal '1' is of type signed int. We want to use an unsigned
+ // version of the correct size when doing the calculations because if
+ // WordType is larger than int, '1 << 31' will first be sign extended
+ // and then casted to unsigned, meaning that set(31) when WordType is
+ // a 64 bit unsigned int would give 0xffff8000
+ static const WordType one = 1;
+
+ FixedArray<WordType, words> bits;
+};
+
+template<size_t size>
+inline Bitmap<size>::Bitmap()
+{
+ clearAll();
+}
+
+template<size_t size>
+inline bool Bitmap<size>::get(size_t n) const
+{
+ return !!(bits[n / wordSize] & (one << (n % wordSize)));
+}
+
+template<size_t size>
+inline void Bitmap<size>::set(size_t n)
+{
+ bits[n / wordSize] |= (one << (n % wordSize));
+}
+
+template<size_t size>
+inline void Bitmap<size>::clear(size_t n)
+{
+ bits[n / wordSize] &= ~(one << (n % wordSize));
+}
+
+template<size_t size>
+inline void Bitmap<size>::clearAll()
+{
+ memset(bits.data(), 0, sizeof(bits));
+}
+
+template<size_t size>
+inline void Bitmap<size>::advanceToNextFreeBit(size_t& start) const
+{
+ if (!~bits[start / wordSize])
+ start = ((start / wordSize) + 1) * wordSize;
+ else
+ ++start;
+}
+
+template<size_t size>
+inline size_t Bitmap<size>::count(size_t start) const
+{
+ size_t result = 0;
+ for ( ; (start % wordSize); ++start) {
+ if (get(start))
+ ++result;
+ }
+ for (size_t i = start / wordSize; i < words; ++i)
+ result += WTF::bitCount(bits[i]);
+ return result;
+}
+
+template<size_t size>
+inline size_t Bitmap<size>::isEmpty() const
+{
+ for (size_t i = 0; i < words; ++i)
+ if (bits[i])
+ return false;
+ return true;
+}
+
+template<size_t size>
+inline size_t Bitmap<size>::isFull() const
+{
+ for (size_t i = 0; i < words; ++i)
+ if (~bits[i])
+ return false;
+ return true;
+}
+
+}
+#endif
diff --git a/JavaScriptCore/wtf/FastMalloc.cpp b/JavaScriptCore/wtf/FastMalloc.cpp
index 9dfbc6b..c440417 100644
--- a/JavaScriptCore/wtf/FastMalloc.cpp
+++ b/JavaScriptCore/wtf/FastMalloc.cpp
@@ -4454,10 +4454,10 @@ extern "C" {
malloc_introspection_t jscore_fastmalloc_introspection = { &FastMallocZone::enumerate, &FastMallocZone::goodSize, &FastMallocZone::check, &FastMallocZone::print,
&FastMallocZone::log, &FastMallocZone::forceLock, &FastMallocZone::forceUnlock, &FastMallocZone::statistics
-#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !OS(IPHONE_OS)
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
, 0 // zone_locked will not be called on the zone unless it advertises itself as version five or higher.
#endif
-#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) && !OS(IPHONE_OS)
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
, 0, 0, 0, 0 // These members will not be used unless the zone advertises itself as version seven or higher.
#endif
diff --git a/JavaScriptCore/wtf/Forward.h b/JavaScriptCore/wtf/Forward.h
index 448de7d..a2cc75b 100644
--- a/JavaScriptCore/wtf/Forward.h
+++ b/JavaScriptCore/wtf/Forward.h
@@ -31,6 +31,12 @@ namespace WTF {
template<typename T> class PassRefPtr;
template<typename T> class RefPtr;
template<typename T, size_t inlineCapacity> class Vector;
+
+ class AtomicString;
+ class AtomicStringImpl;
+ class String;
+ class StringBuffer;
+ class StringImpl;
}
using WTF::ListRefPtr;
@@ -41,4 +47,10 @@ using WTF::PassRefPtr;
using WTF::RefPtr;
using WTF::Vector;
+using WTF::AtomicString;
+using WTF::AtomicStringImpl;
+using WTF::String;
+using WTF::StringBuffer;
+using WTF::StringImpl;
+
#endif // WTF_Forward_h
diff --git a/JavaScriptCore/wtf/PageAllocation.cpp b/JavaScriptCore/wtf/PageAllocation.cpp
index 4cf2ea9..f3fe997 100644
--- a/JavaScriptCore/wtf/PageAllocation.cpp
+++ b/JavaScriptCore/wtf/PageAllocation.cpp
@@ -26,206 +26,23 @@
#include "config.h"
#include "PageAllocation.h"
-
-#if HAVE(ERRNO_H)
-#include <errno.h>
-#endif
-
-#if HAVE(MMAP)
-#include <sys/mman.h>
-#include <unistd.h>
-#endif
-
-#if OS(WINDOWS)
-#include "windows.h"
-#endif
-
-#if OS(SYMBIAN)
-#include <e32hal.h>
-#endif
+#include "PageReservation.h"
namespace WTF {
-#if HAVE(MMAP)
+size_t PageAllocation::s_pageSize = 0;
-bool PageAllocation::commit(void* start, size_t size, bool, bool) const
-{
-#if HAVE(MADV_FREE_REUSE)
- while (madvise(start, size, MADV_FREE_REUSE) == -1 && errno == EAGAIN) { }
-#else
- UNUSED_PARAM(start);
- UNUSED_PARAM(size);
-#endif
- return true;
-}
+#ifndef NDEBUG
-void PageAllocation::decommit(void* start, size_t size) const
+int PageAllocation::lastError()
{
-#if HAVE(MADV_FREE_REUSE)
- while (madvise(start, size, MADV_FREE_REUSABLE) == -1 && errno == EAGAIN) { }
-#elif HAVE(MADV_FREE)
- while (madvise(start, size, MADV_FREE) == -1 && errno == EAGAIN) { }
-#elif HAVE(MADV_DONTNEED)
- while (madvise(start, size, MADV_DONTNEED) == -1 && errno == EAGAIN) { }
+#if OS(WINCE)
+ return GetLastError();
#else
- UNUSED_PARAM(start);
- UNUSED_PARAM(size);
+ return errno;
#endif
}
-PageAllocation PageAllocation::allocate(size_t size, Usage usage, bool writable, bool executable)
-{
- return allocateAt(0, false, size, usage, writable, executable);
-}
-
-PageAllocation PageAllocation::reserve(size_t size, Usage usage, bool writable, bool executable)
-{
- return reserveAt(0, false, size, usage, writable, executable);
-}
-
-PageAllocation PageAllocation::allocateAt(void* address, bool fixed, size_t size, Usage usage, bool writable, bool executable)
-{
- int flags = MAP_PRIVATE | MAP_ANON;
- if (fixed)
- flags |= MAP_FIXED;
-
- int protection = PROT_READ;
- if (writable)
- protection |= PROT_WRITE;
- if (executable)
- protection |= PROT_EXEC;
-
- void* base = mmap(address, size, protection, flags, usage, 0);
- if (base == MAP_FAILED)
- base = 0;
-
- return PageAllocation(base, size);
-}
-
-PageAllocation PageAllocation::reserveAt(void* address, bool fixed, size_t size, Usage usage, bool writable, bool executable)
-{
- PageAllocation result = allocateAt(address, fixed, size, usage, writable, executable);
- if (!!result)
- result.decommit(result.base(), size);
- return result;
-}
-
-void PageAllocation::deallocate()
-{
- int result = munmap(m_base, m_size);
- ASSERT_UNUSED(result, !result);
- m_base = 0;
-}
-
-size_t PageAllocation::pagesize()
-{
- static size_t size = 0;
- if (!size)
- size = getpagesize();
- return size;
-}
-
-#elif HAVE(VIRTUALALLOC)
-
-static DWORD protection(bool writable, bool executable)
-{
- if (executable)
- return writable ?PAGE_EXECUTE_READWRITE : PAGE_EXECUTE_READ;
- return writable ?PAGE_READWRITE : PAGE_READONLY;
-}
-
-bool PageAllocation::commit(void* start, size_t size, bool writable, bool executable) const
-{
- return VirtualAlloc(start, size, MEM_COMMIT, protection(writable, executable)) == start;
-}
-
-void PageAllocation::decommit(void* start, size_t size) const
-{
- VirtualFree(start, size, MEM_DECOMMIT);
-}
-
-PageAllocation PageAllocation::allocate(size_t size, Usage, bool writable, bool executable)
-{
- return PageAllocation(VirtualAlloc(0, size, MEM_COMMIT | MEM_RESERVE, protection(writable, executable)), size);
-}
-
-PageAllocation PageAllocation::reserve(size_t size, Usage usage, bool writable, bool executable)
-{
- return PageAllocation(VirtualAlloc(0, size, MEM_RESERVE, protection(writable, executable)), size);
-}
-
-void PageAllocation::deallocate()
-{
- VirtualFree(m_base, 0, MEM_RELEASE);
- m_base = 0;
-}
-
-size_t PageAllocation::pagesize()
-{
- static size_t size = 0;
- if (!size) {
- SYSTEM_INFO system_info;
- GetSystemInfo(&system_info);
- size = system_info.dwPageSize;
- }
- return size;
-}
-
-#elif OS(SYMBIAN)
-
-bool PageAllocation::commit(void* start, size_t size, bool writable, bool executable) const
-{
- if (m_chunk) {
- intptr_t offset = reinterpret_cast<intptr_t>(base()) - reinterpret_cast<intptr_t>(start);
- m_chunk->Commit(offset, size);
- }
- return true;
-}
-
-void PageAllocation::decommit(void* start, size_t size) const
-{
- if (m_chunk) {
- intptr_t offset = reinterpret_cast<intptr_t>(base()) - reinterpret_cast<intptr_t>(start);
- m_chunk->Decommit(offset, size);
- }
-}
-
-PageAllocation PageAllocation::allocate(size_t size, Usage usage, bool writable, bool executable)
-{
- if (!executable)
- return PageAllocation(fastMalloc(size), size, 0);
- RChunk* rchunk = new RChunk();
- TInt errorCode = rchunk->CreateLocalCode(size, size);
- return PageAllocation(rchunk->Base(), size, rchunk);
-}
-
-PageAllocation PageAllocation::reserve(size_t size, Usage usage, bool writable, bool executable)
-{
- if (!executable)
- return PageAllocation(fastMalloc(size), size, 0);
- RChunk* rchunk = new RChunk();
- TInt errorCode = rchunk->CreateLocalCode(0, size);
- return PageAllocation(rchunk->Base(), size, rchunk);
-}
-
-void PageAllocation::deallocate()
-{
- if (m_chunk) {
- m_chunk->Close();
- delete m_chunk;
- } else
- fastFree(m_base);
- m_base = 0;
-}
-
-size_t PageAllocation::pagesize()
-{
- static TInt page_size = 0;
- if (!page_size)
- UserHal::PageSizeInBytes(page_size);
- return page_size;
-}
-
#endif
}
diff --git a/JavaScriptCore/wtf/PageAllocation.h b/JavaScriptCore/wtf/PageAllocation.h
index b846482..26d53a5 100644
--- a/JavaScriptCore/wtf/PageAllocation.h
+++ b/JavaScriptCore/wtf/PageAllocation.h
@@ -26,21 +26,63 @@
#ifndef PageAllocation_h
#define PageAllocation_h
+#include <wtf/Assertions.h>
#include <wtf/UnusedParam.h>
#include <wtf/VMTags.h>
+#if OS(DARWIN)
+#include <mach/mach_init.h>
+#include <mach/vm_map.h>
+#endif
+
+#if OS(HAIKU)
+#include <OS.h>
+#endif
+
+#if OS(WINDOWS)
+#include <malloc.h>
+#include <windows.h>
+#endif
+
#if OS(SYMBIAN)
+#include <e32hal.h>
#include <e32std.h>
#endif
+#if HAVE(ERRNO_H)
+#include <errno.h>
+#endif
+
#if HAVE(MMAP)
-#define PAGE_ALLOCATION_ALLOCATE_AT 1
-#else
-#define PAGE_ALLOCATION_ALLOCATE_AT 0
+#include <sys/mman.h>
+#include <unistd.h>
#endif
namespace WTF {
+/*
+ PageAllocation
+
+ The PageAllocation class provides a cross-platform memory allocation interface
+ with similar capabilities to posix mmap/munmap. Memory is allocated by calling
+ PageAllocation::allocate, and deallocated by calling deallocate on the
+ PageAllocation object. The PageAllocation holds the allocation's base pointer
+ and size.
+
+ The allocate method is passed the size required (which must be a multiple of
+ the system page size, which can be accessed using PageAllocation::pageSize).
+ Callers may also optinally provide a flag indicating the usage (for use by
+ system memory usage tracking tools, where implemented), and boolean values
+ specifying the required protection (defaulting to writable, non-executable).
+
+ Where HAVE(PAGE_ALLOCATE_AT) and HAVE(PAGE_ALLOCATE_ALIGNED) are available
+ memory may also be allocated at a specified address, or with a specified
+ alignment respectively. PageAllocation::allocateAt take an address to try
+ to allocate at, and a boolean indicating whether this behaviour is strictly
+ required (if this address is unavailable, should memory at another address
+ be allocated instead). PageAllocation::allocateAligned requires that the
+ size is a power of two that is >= system page size.
+*/
class PageAllocation {
public:
enum Usage {
@@ -60,42 +102,56 @@ public:
{
}
- // Create a PageAllocation object representing a sub-region of an existing allocation;
- // deallocate should never be called on an object represnting a subregion, only on the
- // initial allocation.
- PageAllocation(void* base, size_t size, const PageAllocation& parent)
- : m_base(base)
- , m_size(size)
-#if OS(SYMBIAN)
- , m_chunk(parent.m_chunk)
-#endif
+ bool operator!() const { return !m_base; }
+ void* base() const { return m_base; }
+ size_t size() const { return m_size; }
+
+ static PageAllocation allocate(size_t size, Usage usage = UnknownUsage, bool writable = true, bool executable = false)
{
-#if defined(NDEBUG) && !OS(SYMBIAN)
- UNUSED_PARAM(parent);
-#endif
- ASSERT(base >= parent.m_base);
- ASSERT(size <= parent.m_size);
- ASSERT(static_cast<char*>(base) + size <= static_cast<char*>(parent.m_base) + parent.m_size);
+ ASSERT(isPageAligned(size));
+ return systemAllocate(size, usage, writable, executable);
}
- void* base() const { return m_base; }
- size_t size() const { return m_size; }
+#if HAVE(PAGE_ALLOCATE_AT)
+ static PageAllocation allocateAt(void* address, bool fixed, size_t size, Usage usage = UnknownUsage, bool writable = true, bool executable = false)
+ {
+ ASSERT(isPageAligned(address));
+ ASSERT(isPageAligned(size));
+ return systemAllocateAt(address, fixed, size, usage, writable, executable);
+ }
+#endif
- bool operator!() const { return !m_base; }
+#if HAVE(PAGE_ALLOCATE_ALIGNED)
+ static PageAllocation allocateAligned(size_t size, Usage usage = UnknownUsage)
+ {
+ ASSERT(isPageAligned(size));
+ ASSERT(isPowerOfTwo(size));
+ return systemAllocateAligned(size, usage);
+ }
+#endif
+
+ void deallocate()
+ {
+ ASSERT(m_base);
+ systemDeallocate(true);
+ }
- bool commit(void*, size_t, bool writable = true, bool executable = false) const;
- void decommit(void*, size_t) const;
- void deallocate();
+ static size_t pageSize()
+ {
+ if (!s_pageSize)
+ s_pageSize = systemPageSize();
+ ASSERT(isPowerOfTwo(s_pageSize));
+ return s_pageSize;
+ }
- static PageAllocation allocate(size_t, Usage = UnknownUsage, bool writable = true, bool executable = false);
- static PageAllocation reserve(size_t, Usage = UnknownUsage, bool writable = true, bool executable = false);
-#if PAGE_ALLOCATION_ALLOCATE_AT
- static PageAllocation allocateAt(void* address, bool fixed, size_t, Usage = UnknownUsage, bool writable = true, bool executable = false);
- static PageAllocation reserveAt(void* address, bool fixed, size_t, Usage = UnknownUsage, bool writable = true, bool executable = false);
+#ifndef NDEBUG
+ static bool isPageAligned(void* address) { return !(reinterpret_cast<intptr_t>(address) & (pageSize() - 1)); }
+ static bool isPageAligned(size_t size) { return !(size & (pageSize() - 1)); }
+ static bool isPowerOfTwo(size_t size) { return !(size & (size - 1)); }
+ static int lastError();
#endif
- static size_t pagesize();
-private:
+protected:
#if OS(SYMBIAN)
PageAllocation(void* base, size_t size, RChunk* chunk)
: m_base(base)
@@ -111,13 +167,193 @@ private:
}
#endif
+ static PageAllocation systemAllocate(size_t, Usage, bool, bool);
+#if HAVE(PAGE_ALLOCATE_AT)
+ static PageAllocation systemAllocateAt(void*, bool, size_t, Usage, bool, bool);
+#endif
+#if HAVE(PAGE_ALLOCATE_ALIGNED)
+ static PageAllocation systemAllocateAligned(size_t, Usage);
+#endif
+ // systemDeallocate takes a parameter indicating whether memory is currently committed
+ // (this should always be true for PageAllocation, false for PageReservation).
+ void systemDeallocate(bool committed);
+ static size_t systemPageSize();
+
void* m_base;
size_t m_size;
#if OS(SYMBIAN)
RChunk* m_chunk;
#endif
+
+ static JS_EXPORTDATA size_t s_pageSize;
};
+
+#if HAVE(MMAP)
+
+
+inline PageAllocation PageAllocation::systemAllocate(size_t size, Usage usage, bool writable, bool executable)
+{
+ return systemAllocateAt(0, false, size, usage, writable, executable);
+}
+
+inline PageAllocation PageAllocation::systemAllocateAt(void* address, bool fixed, size_t size, Usage usage, bool writable, bool executable)
+{
+ int protection = PROT_READ;
+ if (writable)
+ protection |= PROT_WRITE;
+ if (executable)
+ protection |= PROT_EXEC;
+
+ int flags = MAP_PRIVATE | MAP_ANON;
+ if (fixed)
+ flags |= MAP_FIXED;
+
+#if OS(DARWIN) && !defined(BUILDING_ON_TIGER)
+ int fd = usage;
+#else
+ int fd = -1;
+#endif
+
+ void* base = mmap(address, size, protection, flags, fd, 0);
+ if (base == MAP_FAILED)
+ base = 0;
+ return PageAllocation(base, size);
+}
+
+inline PageAllocation PageAllocation::systemAllocateAligned(size_t size, Usage usage)
+{
+#if OS(DARWIN)
+ vm_address_t address = 0;
+ int flags = VM_FLAGS_ANYWHERE;
+ if (usage != -1)
+ flags |= usage;
+ vm_map(current_task(), &address, size, (size - 1), flags, MEMORY_OBJECT_NULL, 0, FALSE, PROT_READ | PROT_WRITE, PROT_READ | PROT_WRITE | PROT_EXEC, VM_INHERIT_DEFAULT);
+ return PageAllocation(reinterpret_cast<void*>(address), size);
+#elif HAVE(POSIX_MEMALIGN)
+ void* address;
+ posix_memalign(&address, size, size);
+ return PageAllocation(address, size);
+#else
+ size_t extra = size - pageSize();
+
+ // Check for overflow.
+ if ((size + extra) < size)
+ return PageAllocation(0, size);
+
+#if OS(DARWIN) && !defined(BUILDING_ON_TIGER)
+ int fd = usage;
+#else
+ int fd = -1;
+#endif
+ void* mmapResult = mmap(0, size + extra, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, fd, 0);
+ if (mmapResult == MAP_FAILED)
+ return PageAllocation(0, size);
+ uintptr_t address = reinterpret_cast<uintptr_t>(mmapResult);
+
+ size_t adjust = 0;
+ if ((address & (size - 1)))
+ adjust = size - (address & (size - 1));
+ if (adjust > 0)
+ munmap(reinterpret_cast<char*>(address), adjust);
+ if (adjust < extra)
+ munmap(reinterpret_cast<char*>(address + adjust + size), extra - adjust);
+ address += adjust;
+
+ return PageAllocation(reinterpret_cast<void*>(address), size);
+#endif
+}
+
+inline void PageAllocation::systemDeallocate(bool)
+{
+ int result = munmap(m_base, m_size);
+ ASSERT_UNUSED(result, !result);
+ m_base = 0;
+}
+
+inline size_t PageAllocation::systemPageSize()
+{
+ return getpagesize();
+}
+
+
+#elif HAVE(VIRTUALALLOC)
+
+
+inline PageAllocation PageAllocation::systemAllocate(size_t size, Usage, bool writable, bool executable)
+{
+ DWORD protection = executable ?
+ (writable ? PAGE_EXECUTE_READWRITE : PAGE_EXECUTE_READ) :
+ (writable ? PAGE_READWRITE : PAGE_READONLY);
+ return PageAllocation(VirtualAlloc(0, size, MEM_COMMIT | MEM_RESERVE, protection), size);
+}
+
+#if HAVE(ALIGNED_MALLOC)
+inline PageAllocation PageAllocation::systemAllocateAligned(size_t size, Usage usage)
+{
+#if COMPILER(MINGW) && !COMPILER(MINGW64)
+ void* address = __mingw_aligned_malloc(size, size);
+#else
+ void* address = _aligned_malloc(size, size);
+#endif
+ memset(address, 0, size);
+ return PageAllocation(address, size);
+}
+#endif
+
+inline void PageAllocation::systemDeallocate(bool committed)
+{
+#if OS(WINCE)
+ if (committed)
+ VirtualFree(m_base, m_size, MEM_DECOMMIT);
+#else
+ UNUSED_PARAM(committed);
+#endif
+ VirtualFree(m_base, 0, MEM_RELEASE);
+ m_base = 0;
+}
+
+inline size_t PageAllocation::systemPageSize()
+{
+ static size_t size = 0;
+ SYSTEM_INFO system_info;
+ GetSystemInfo(&system_info);
+ size = system_info.dwPageSize;
+ return size;
+}
+
+
+#elif OS(SYMBIAN)
+
+
+inline PageAllocation PageAllocation::systemAllocate(size_t size, Usage usage, bool writable, bool executable)
+{
+ RChunk* rchunk = new RChunk();
+ if (executable)
+ rchunk->CreateLocalCode(size, size);
+ else
+ rchunk->CreateLocal(size, size);
+ return PageAllocation(rchunk->Base(), size, rchunk);
+}
+
+inline void PageAllocation::systemDeallocate(bool)
+{
+ m_chunk->Close();
+ delete m_chunk;
+ m_base = 0;
+}
+
+inline size_t PageAllocation::systemPageSize()
+{
+ static TInt page_size = 0;
+ UserHal::PageSizeInBytes(page_size);
+ return page_size;
+}
+
+
+#endif
+
+
}
using WTF::PageAllocation;
diff --git a/JavaScriptCore/wtf/PageReservation.h b/JavaScriptCore/wtf/PageReservation.h
new file mode 100644
index 0000000..906b5a4
--- /dev/null
+++ b/JavaScriptCore/wtf/PageReservation.h
@@ -0,0 +1,258 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PageReservation_h
+#define PageReservation_h
+
+#include <wtf/PageAllocation.h>
+
+namespace WTF {
+
+/*
+ PageReservation
+
+ Like PageAllocation, the PageReservation class provides a cross-platform memory
+ allocation interface, but with a set of capabilities more similar to that of
+ VirtualAlloc than posix mmap. PageReservation can be used to allocate virtual
+ memory without committing physical memory pages using PageReservation::reserve.
+ Following a call to reserve all memory in the region is in a decommited state,
+ in which the memory should not be used (accessing the memory may cause a fault).
+
+ Before using memory it must be committed by calling commit, which is passed start
+ and size values (both of which require system page size granularity). One the
+ committed memory is no longer needed 'decommit' may be called to return the
+ memory to its devommitted state. Commit should only be called on memory that is
+ currently decommitted, and decommit should only be called on memory regions that
+ are currently committed. All memory should be decommited before the reservation
+ is deallocated. Values in memory may not be retained accross a pair of calls if
+ the region of memory is decommitted and then committed again.
+
+ Where HAVE(PAGE_ALLOCATE_AT) is available a PageReservation::reserveAt method
+ also exists, with behaviour mirroring PageAllocation::allocateAt.
+
+ Memory protection should not be changed on decommitted memory, and if protection
+ is changed on memory while it is committed it should be returned to the orignal
+ protection before decommit is called.
+
+ Note: Inherits from PageAllocation privately to prevent clients accidentally
+ calling PageAllocation::deallocate on a PageReservation.
+*/
+class PageReservation : private PageAllocation {
+public:
+ PageReservation()
+ {
+ }
+
+ using PageAllocation::operator!;
+ using PageAllocation::base;
+ using PageAllocation::size;
+
+ bool commit(void* start, size_t size)
+ {
+ ASSERT(m_base);
+ ASSERT(isPageAligned(start));
+ ASSERT(isPageAligned(size));
+
+ bool commited = systemCommit(start, size);
+#ifndef NDEBUG
+ if (commited)
+ m_committed += size;
+#endif
+ return commited;
+ }
+ void decommit(void* start, size_t size)
+ {
+ ASSERT(m_base);
+ ASSERT(isPageAligned(start));
+ ASSERT(isPageAligned(size));
+
+#ifndef NDEBUG
+ m_committed -= size;
+#endif
+ systemDecommit(start, size);
+ }
+
+ static PageReservation reserve(size_t size, Usage usage = UnknownUsage, bool writable = true, bool executable = false)
+ {
+ ASSERT(isPageAligned(size));
+ return systemReserve(size, usage, writable, executable);
+ }
+
+#if HAVE(PAGE_ALLOCATE_AT)
+ static PageReservation reserveAt(void* address, bool fixed, size_t size, Usage usage = UnknownUsage, bool writable = true, bool executable = false)
+ {
+ ASSERT(isPageAligned(address));
+ ASSERT(isPageAligned(size));
+ return systemReserveAt(address, fixed, size, usage, writable, executable);
+ }
+#endif
+
+ void deallocate()
+ {
+ ASSERT(m_base);
+ ASSERT(!m_committed);
+ systemDeallocate(false);
+ }
+
+#ifndef NDEBUG
+ using PageAllocation::lastError;
+#endif
+
+private:
+#if OS(SYMBIAN)
+ PageReservation(void* base, size_t size, RChunk* chunk)
+ : PageAllocation(base, size, chunk)
+#else
+ PageReservation(void* base, size_t size)
+ : PageAllocation(base, size)
+#endif
+#ifndef NDEBUG
+ , m_committed(0)
+#endif
+ {
+ }
+
+ bool systemCommit(void*, size_t);
+ void systemDecommit(void*, size_t);
+ static PageReservation systemReserve(size_t, Usage, bool, bool);
+#if HAVE(PAGE_ALLOCATE_AT)
+ static PageReservation systemReserveAt(void*, bool, size_t, Usage, bool, bool);
+#endif
+
+#if HAVE(VIRTUALALLOC)
+ DWORD m_protection;
+#endif
+#ifndef NDEBUG
+ size_t m_committed;
+#endif
+};
+
+
+#if HAVE(MMAP)
+
+
+inline bool PageReservation::systemCommit(void* start, size_t size)
+{
+#if HAVE(MADV_FREE_REUSE)
+ while (madvise(start, size, MADV_FREE_REUSE) == -1 && errno == EAGAIN) { }
+#else
+ UNUSED_PARAM(start);
+ UNUSED_PARAM(size);
+#endif
+ return true;
+}
+
+inline void PageReservation::systemDecommit(void* start, size_t size)
+{
+#if HAVE(MADV_FREE_REUSE)
+ while (madvise(start, size, MADV_FREE_REUSABLE) == -1 && errno == EAGAIN) { }
+#elif HAVE(MADV_FREE)
+ while (madvise(start, size, MADV_FREE) == -1 && errno == EAGAIN) { }
+#elif HAVE(MADV_DONTNEED)
+ while (madvise(start, size, MADV_DONTNEED) == -1 && errno == EAGAIN) { }
+#else
+ UNUSED_PARAM(start);
+ UNUSED_PARAM(size);
+#endif
+}
+
+inline PageReservation PageReservation::systemReserve(size_t size, Usage usage, bool writable, bool executable)
+{
+ return systemReserveAt(0, false, size, usage, writable, executable);
+}
+
+inline PageReservation PageReservation::systemReserveAt(void* address, bool fixed, size_t size, Usage usage, bool writable, bool executable)
+{
+ void* base = systemAllocateAt(address, fixed, size, usage, writable, executable).base();
+#if HAVE(MADV_FREE_REUSE)
+ // When using MADV_FREE_REUSE we keep all decommitted memory marked as REUSABLE.
+ // We call REUSE on commit, and REUSABLE on decommit.
+ if (base)
+ while (madvise(base, size, MADV_FREE_REUSABLE) == -1 && errno == EAGAIN) { }
+#endif
+ return PageReservation(base, size);
+}
+
+
+#elif HAVE(VIRTUALALLOC)
+
+
+inline bool PageReservation::systemCommit(void* start, size_t size)
+{
+ return VirtualAlloc(start, size, MEM_COMMIT, m_protection) == start;
+}
+
+inline void PageReservation::systemDecommit(void* start, size_t size)
+{
+ VirtualFree(start, size, MEM_DECOMMIT);
+}
+
+inline PageReservation PageReservation::systemReserve(size_t size, Usage usage, bool writable, bool executable)
+{
+ // Record the protection for use during commit.
+ DWORD protection = executable ?
+ (writable ? PAGE_EXECUTE_READWRITE : PAGE_EXECUTE_READ) :
+ (writable ? PAGE_READWRITE : PAGE_READONLY);
+ PageReservation reservation(VirtualAlloc(0, size, MEM_RESERVE, protection), size);
+ reservation.m_protection = protection;
+ return reservation;
+}
+
+
+#elif OS(SYMBIAN)
+
+
+inline bool PageReservation::systemCommit(void* start, size_t size)
+{
+ intptr_t offset = reinterpret_cast<intptr_t>(m_base) - reinterpret_cast<intptr_t>(start);
+ m_chunk->Commit(offset, size);
+ return true;
+}
+
+inline void PageReservation::systemDecommit(void* start, size_t size)
+{
+ intptr_t offset = reinterpret_cast<intptr_t>(m_base) - reinterpret_cast<intptr_t>(start);
+ m_chunk->Decommit(offset, size);
+}
+
+inline PageReservation PageReservation::systemReserve(size_t size, Usage usage, bool writable, bool executable)
+{
+ RChunk* rchunk = new RChunk();
+ if (executable)
+ rchunk->CreateLocalCode(0, size);
+ else
+ rchunk->CreateDisconnectedLocal(0, 0, size);
+ return PageReservation(rchunk->Base(), size, rchunk);
+}
+
+
+#endif
+
+
+}
+
+using WTF::PageReservation;
+
+#endif // PageReservation_h
diff --git a/JavaScriptCore/wtf/Platform.h b/JavaScriptCore/wtf/Platform.h
index eca4248..8bf0d86 100644
--- a/JavaScriptCore/wtf/Platform.h
+++ b/JavaScriptCore/wtf/Platform.h
@@ -142,6 +142,8 @@
#define WTF_MIPS_ARCH_REV __mips_isa_rev
#define WTF_MIPS_ISA_REV(v) (defined WTF_MIPS_ARCH_REV && WTF_MIPS_ARCH_REV == v)
#define WTF_MIPS_DOUBLE_FLOAT (defined __mips_hard_float && !defined __mips_single_float)
+/* MIPS requires allocators to use aligned memory */
+#define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1
#endif /* MIPS */
/* CPU(PPC) - PowerPC 32-bit */
@@ -368,12 +370,12 @@
#endif
-/* OS(IPHONE_OS) - iPhone OS */
-/* OS(MAC_OS_X) - Mac OS X (not including iPhone OS) */
+/* OS(IOS) - iOS */
+/* OS(MAC_OS_X) - Mac OS X (not including iOS) */
#if OS(DARWIN) && ((defined(TARGET_OS_EMBEDDED) && TARGET_OS_EMBEDDED) \
|| (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) \
|| (defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR))
-#define WTF_OS_IPHONE_OS 1
+#define WTF_OS_IOS 1
#elif OS(DARWIN) && defined(TARGET_OS_MAC) && TARGET_OS_MAC
#define WTF_OS_MAC_OS_X 1
#endif
@@ -481,22 +483,22 @@
#define WTF_PLATFORM_WIN 1
#endif
-/* PLATFORM(IPHONE) */
+/* PLATFORM(IOS) */
/* FIXME: this is sometimes used as an OS switch and sometimes for higher-level things */
#if (defined(TARGET_OS_EMBEDDED) && TARGET_OS_EMBEDDED) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
-#define WTF_PLATFORM_IPHONE 1
+#define WTF_PLATFORM_IOS 1
#endif
-/* PLATFORM(IPHONE_SIMULATOR) */
+/* PLATFORM(IOS_SIMULATOR) */
#if defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR
-#define WTF_PLATFORM_IPHONE 1
-#define WTF_PLATFORM_IPHONE_SIMULATOR 1
+#define WTF_PLATFORM_IOS 1
+#define WTF_PLATFORM_IOS_SIMULATOR 1
#else
-#define WTF_PLATFORM_IPHONE_SIMULATOR 0
+#define WTF_PLATFORM_IOS_SIMULATOR 0
#endif
-#if !defined(WTF_PLATFORM_IPHONE)
-#define WTF_PLATFORM_IPHONE 0
+#if !defined(WTF_PLATFORM_IOS)
+#define WTF_PLATFORM_IOS 0
#endif
/* PLATFORM(ANDROID) */
@@ -509,10 +511,10 @@
/* Graphics engines */
/* PLATFORM(CG) and PLATFORM(CI) */
-#if PLATFORM(MAC) || PLATFORM(IPHONE)
+#if PLATFORM(MAC) || PLATFORM(IOS)
#define WTF_PLATFORM_CG 1
#endif
-#if PLATFORM(MAC) && !PLATFORM(IPHONE)
+#if PLATFORM(MAC) && !PLATFORM(IOS)
#define WTF_PLATFORM_CI 1
#endif
@@ -543,7 +545,7 @@
#include <ce_time.h>
#endif
-#if (PLATFORM(IPHONE) || PLATFORM(MAC) || PLATFORM(WIN) || (PLATFORM(QT) && OS(DARWIN) && !ENABLE(SINGLE_THREADED))) && !defined(ENABLE_JSC_MULTIPLE_THREADS)
+#if (PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(WIN) || (PLATFORM(QT) && OS(DARWIN) && !ENABLE(SINGLE_THREADED))) && !defined(ENABLE_JSC_MULTIPLE_THREADS)
#define ENABLE_JSC_MULTIPLE_THREADS 1
#endif
@@ -579,7 +581,7 @@
#define WTF_USE_ICU_UNICODE 1
#endif
-#if PLATFORM(MAC) && !PLATFORM(IPHONE)
+#if PLATFORM(MAC) && !PLATFORM(IOS)
#define WTF_PLATFORM_CF 1
#define WTF_USE_PTHREADS 1
#define HAVE_PTHREAD_RWLOCK 1
@@ -594,7 +596,7 @@
#endif
#define HAVE_READLINE 1
#define HAVE_RUNLOOP_TIMER 1
-#endif /* PLATFORM(MAC) && !PLATFORM(IPHONE) */
+#endif /* PLATFORM(MAC) && !PLATFORM(IOS) */
#if PLATFORM(MAC)
#define WTF_USE_CARBON_SECURE_INPUT_MODE 1
@@ -615,7 +617,7 @@
#define WTF_PLATFORM_CF 1
#endif
-#if PLATFORM(IPHONE)
+#if PLATFORM(IOS)
#define ENABLE_CONTEXT_MENUS 0
#define ENABLE_DRAG_SUPPORT 0
#define ENABLE_FTPDIR 1
@@ -649,7 +651,8 @@
#endif
#if PLATFORM(WIN)
-#define WTF_USE_WININET 1
+#define WTF_PLATFORM_CF 1
+#define WTF_USE_PTHREADS 0
#endif
#if PLATFORM(WX)
@@ -686,7 +689,7 @@
#endif
#if !defined(HAVE_ACCESSIBILITY)
-#if PLATFORM(IPHONE) || PLATFORM(MAC) || PLATFORM(WIN) || PLATFORM(GTK) || PLATFORM(CHROMIUM)
+#if PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(WIN) || PLATFORM(GTK) || PLATFORM(CHROMIUM)
#define HAVE_ACCESSIBILITY 1
#endif
#endif /* !defined(HAVE_ACCESSIBILITY) */
@@ -720,7 +723,7 @@
#define HAVE_DISPATCH_H 1
#define HAVE_HOSTED_CORE_ANIMATION 1
-#if !PLATFORM(IPHONE)
+#if !PLATFORM(IOS)
#define HAVE_MADV_FREE_REUSE 1
#define HAVE_MADV_FREE 1
#define HAVE_PTHREAD_SETNAME_NP 1
@@ -728,7 +731,7 @@
#endif
-#if PLATFORM(IPHONE)
+#if PLATFORM(IOS)
#define HAVE_MADV_FREE 1
#endif
@@ -738,6 +741,7 @@
#define HAVE_ERRNO_H 0
#else
#define HAVE_SYS_TIMEB_H 1
+#define HAVE_ALIGNED_MALLOC 1
#endif
#define HAVE_VIRTUALALLOC 1
@@ -794,6 +798,13 @@
#endif
+#if HAVE(MMAP) || (HAVE(VIRTUALALLOC) && HAVE(ALIGNED_MALLOC))
+#define HAVE_PAGE_ALLOCATE_ALIGNED 1
+#endif
+#if HAVE(MMAP)
+#define HAVE_PAGE_ALLOCATE_AT 1
+#endif
+
/* ENABLE macro defaults */
#if PLATFORM(QT)
@@ -883,7 +894,7 @@
#define ENABLE_NOTIFICATIONS 0
#endif
-#if PLATFORM(IPHONE)
+#if PLATFORM(IOS)
#define ENABLE_TEXT_CARET 0
#endif
@@ -910,9 +921,10 @@
#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \
|| (CPU(IA64) && !CPU(IA64_32)) \
|| CPU(ALPHA) \
- || CPU(SPARC64)
+ || CPU(SPARC64) \
+ || CPU(PPC64)
#define WTF_USE_JSVALUE64 1
-#elif CPU(ARM_TRADITIONAL) || CPU(PPC64) || CPU(MIPS)
+#elif CPU(MIPS) || (CPU(ARM_TRADITIONAL) && COMPILER(MSVC))
#define WTF_USE_JSVALUE32 1
#elif OS(WINDOWS) && COMPILER(MINGW)
/* Using JSVALUE32_64 causes padding/alignement issues for JITStubArg
@@ -1005,7 +1017,7 @@ on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
#endif
/* Setting this flag prevents the assembler from using RWX memory; this may improve
security but currectly comes at a significant performance cost. */
-#if PLATFORM(IPHONE)
+#if PLATFORM(IOS)
#define ENABLE_ASSEMBLER_WX_EXCLUSIVE 1
#else
#define ENABLE_ASSEMBLER_WX_EXCLUSIVE 0
@@ -1032,18 +1044,31 @@ on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
#define WTF_USE_QXMLQUERY 1
#endif
-/* Accelerated compositing */
#if PLATFORM(MAC)
+/* Complex text framework */
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
+#define WTF_USE_ATSUI 0
+#define WTF_USE_CORE_TEXT 1
+#else
+#define WTF_USE_ATSUI 1
+#define WTF_USE_CORE_TEXT 0
+#endif
+
+/* Accelerated compositing */
#if !defined(BUILDING_ON_TIGER)
#define WTF_USE_ACCELERATED_COMPOSITING 1
#endif
#endif
+<<<<<<< HEAD
#if PLATFORM(ANDROID) && !defined WTF_USE_ACCELERATED_COMPOSITING
#define WTF_USE_ACCELERATED_COMPOSITING 1
#endif
#if PLATFORM(IPHONE)
+=======
+#if PLATFORM(IOS)
+>>>>>>> webkit.org at r65072
#define WTF_USE_ACCELERATED_COMPOSITING 1
#endif
@@ -1058,7 +1083,7 @@ on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
#endif
#endif
-#if (PLATFORM(MAC) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)) || PLATFORM(IPHONE)
+#if (PLATFORM(MAC) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)) || PLATFORM(IOS)
#define WTF_USE_PROTECTION_SPACE_AUTH_CALLBACK 1
#endif
@@ -1078,7 +1103,7 @@ on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
#define ENABLE_JSC_ZOMBIES 0
/* FIXME: Eventually we should enable this for all platforms and get rid of the define. */
-#if PLATFORM(MAC)
+#if PLATFORM(MAC) || PLATFORM(WIN)
#define WTF_USE_PLATFORM_STRATEGIES 1
#endif
@@ -1089,4 +1114,8 @@ on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
#define WTF_USE_PREEMPT_GEOLOCATION_PERMISSION 1
#endif
+#if CPU(ARM_THUMB2)
+#define ENABLE_BRANCH_COMPACTION 1
+#endif
+
#endif /* WTF_Platform_h */
diff --git a/JavaScriptCore/wtf/WTFThreadData.cpp b/JavaScriptCore/wtf/WTFThreadData.cpp
index 0716dc9..729b48e 100644
--- a/JavaScriptCore/wtf/WTFThreadData.cpp
+++ b/JavaScriptCore/wtf/WTFThreadData.cpp
@@ -54,4 +54,4 @@ WTFThreadData::~WTFThreadData()
#endif
}
-} // namespace WebCore
+}
diff --git a/JavaScriptCore/wtf/WTFThreadData.h b/JavaScriptCore/wtf/WTFThreadData.h
index d2c379b..c596260 100644
--- a/JavaScriptCore/wtf/WTFThreadData.h
+++ b/JavaScriptCore/wtf/WTFThreadData.h
@@ -45,15 +45,6 @@
#include <wtf/Threading.h>
#endif
-// FIXME: This is a temporary layering violation while we move more string code to WTF.
-namespace WebCore {
-class AtomicStringTable;
-class StringImpl;
-}
-using WebCore::StringImpl;
-
-typedef void (*AtomicStringTableDestructor)(WebCore::AtomicStringTable*);
-
#if USE(JSC)
// FIXME: This is a temporary layering violation while we move more string code to WTF.
namespace JSC {
@@ -82,12 +73,16 @@ private:
namespace WTF {
+class AtomicStringTable;
+
+typedef void (*AtomicStringTableDestructor)(AtomicStringTable*);
+
class WTFThreadData : public Noncopyable {
public:
WTFThreadData();
~WTFThreadData();
- WebCore::AtomicStringTable* atomicStringTable()
+ AtomicStringTable* atomicStringTable()
{
return m_atomicStringTable;
}
@@ -118,7 +113,7 @@ public:
#endif
private:
- WebCore::AtomicStringTable* m_atomicStringTable;
+ AtomicStringTable* m_atomicStringTable;
AtomicStringTableDestructor m_atomicStringTableDestructor;
#if USE(JSC)
@@ -132,7 +127,7 @@ private:
static JS_EXPORTDATA WTFThreadData* staticData;
#endif
friend WTFThreadData& wtfThreadData();
- friend class WebCore::AtomicStringTable;
+ friend class AtomicStringTable;
};
inline WTFThreadData& wtfThreadData()
diff --git a/JavaScriptCore/wtf/dtoa.cpp b/JavaScriptCore/wtf/dtoa.cpp
index 9edc2a0..2c478a0 100644
--- a/JavaScriptCore/wtf/dtoa.cpp
+++ b/JavaScriptCore/wtf/dtoa.cpp
@@ -167,6 +167,7 @@
#endif
#define INFNAN_CHECK
+#define No_Hex_NaN
#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(IEEE_ARM) != 1
Exactly one of IEEE_8087, IEEE_ARM or IEEE_MC68k should be defined.
diff --git a/JavaScriptCore/wtf/gobject/GOwnPtr.h b/JavaScriptCore/wtf/gobject/GOwnPtr.h
index 40c0bf4..731326e 100644
--- a/JavaScriptCore/wtf/gobject/GOwnPtr.h
+++ b/JavaScriptCore/wtf/gobject/GOwnPtr.h
@@ -34,7 +34,6 @@ typedef struct _GCond GCond;
typedef struct _GMutex GMutex;
typedef struct _GPatternSpec GPatternSpec;
typedef struct _GDir GDir;
-typedef struct _GHashTable GHashTable;
typedef struct _GFile GFile;
extern "C" void g_free(void*);
@@ -47,7 +46,6 @@ template<> void freeOwnedGPtr<GCond>(GCond*);
template<> void freeOwnedGPtr<GMutex>(GMutex*);
template<> void freeOwnedGPtr<GPatternSpec>(GPatternSpec*);
template<> void freeOwnedGPtr<GDir>(GDir*);
-template<> void freeOwnedGPtr<GHashTable>(GHashTable*);
template<> void freeOwnedGPtr<GFile>(GFile*);
template <typename T> class GOwnPtr : public Noncopyable {
diff --git a/JavaScriptCore/wtf/qt/StringQt.cpp b/JavaScriptCore/wtf/qt/StringQt.cpp
index b2c621a..c02505a 100644
--- a/JavaScriptCore/wtf/qt/StringQt.cpp
+++ b/JavaScriptCore/wtf/qt/StringQt.cpp
@@ -29,7 +29,7 @@
#include <QString>
-namespace WebCore {
+namespace WTF {
// String conversions
String::String(const QString& qstr)
diff --git a/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp b/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
deleted file mode 100644
index 6a28e9e..0000000
--- a/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if OS(SYMBIAN)
-
-#include "BlockAllocatorSymbian.h"
-
-
-namespace WTF {
-
-/** Efficiently allocates blocks of size blockSize with blockSize alignment.
- * Primarly designed for JSC Collector's needs.
- * Not thread-safe.
- */
-AlignedBlockAllocator::AlignedBlockAllocator(TUint32 reservationSize, TUint32 blockSize )
- : m_reservation(reservationSize),
- m_blockSize(blockSize)
-{
-
- // Get system's page size value.
- SYMBIAN_PAGESIZE(m_pageSize);
-
- // We only accept multiples of system page size for both initial reservation and the alignment/block size
- m_reservation = SYMBIAN_ROUNDUPTOMULTIPLE(m_reservation, m_pageSize);
- __ASSERT_ALWAYS(SYMBIAN_ROUNDUPTOMULTIPLE(m_blockSize, m_pageSize), User::Panic(_L("AlignedBlockAllocator1"), KErrArgument));
-
- // Calculate max. bit flags we need to carve a reservationSize range into blockSize-sized blocks
- m_map.numBits = m_reservation / m_blockSize;
- const TUint32 bitsPerWord = 8*sizeof(TUint32);
- const TUint32 numWords = (m_map.numBits + bitsPerWord -1) / bitsPerWord;
-
- m_map.bits = new TUint32[numWords];
- __ASSERT_ALWAYS(m_map.bits, User::Panic(_L("AlignedBlockAllocator2"), KErrNoMemory));
- m_map.clearAll();
-
- // Open a Symbian RChunk, and reserve requested virtual address range
- // Any thread in this process can operate this rchunk due to EOwnerProcess access rights.
- TInt ret = m_chunk.CreateDisconnectedLocal(0 , 0, (TInt)m_reservation , EOwnerProcess);
- if (ret != KErrNone)
- User::Panic(_L("AlignedBlockAllocator3"), ret);
-
- // This is the offset to m_chunk.Base() required to make it m_blockSize-aligned
- m_offset = SYMBIAN_ROUNDUPTOMULTIPLE(TUint32(m_chunk.Base()), m_blockSize) - TUint(m_chunk.Base());
-
-}
-
-void* AlignedBlockAllocator::alloc()
-{
-
- TInt freeRam = 0;
- void* address = 0;
-
- // Look up first free slot in bit map
- const TInt freeIdx = m_map.findFree();
-
- // Pseudo OOM: We ate up the address space we reserved..
- // ..even though the device may have free RAM left
- if (freeIdx < 0)
- return 0;
-
- TInt ret = m_chunk.Commit(m_offset + (m_blockSize * freeIdx), m_blockSize);
- if (ret != KErrNone)
- return 0; // True OOM: Device didn't have physical RAM to spare
-
- // Updated bit to mark region as in use.
- m_map.set(freeIdx);
-
- // Calculate address of committed region (block)
- address = (void*)( (m_chunk.Base() + m_offset) + (TUint)(m_blockSize * freeIdx) );
-
- return address;
-}
-
-void AlignedBlockAllocator::free(void* block)
-{
- // Calculate index of block to be freed
- TInt idx = TUint(static_cast<TUint8*>(block) - m_chunk.Base() - m_offset) / m_blockSize;
-
- __ASSERT_DEBUG(idx >= 0 && idx < m_map.numBits, User::Panic(_L("AlignedBlockAllocator4"), KErrCorrupt)); // valid index check
- __ASSERT_DEBUG(m_map.get(idx), User::Panic(_L("AlignedBlockAllocator5"), KErrCorrupt)); // in-use flag check
-
- // Return committed region to system RAM pool (the physical RAM becomes usable by others)
- TInt ret = m_chunk.Decommit(m_offset + m_blockSize * idx, m_blockSize);
-
- // mark this available again
- m_map.clear(idx);
-}
-
-void AlignedBlockAllocator::destroy()
-{
- // release everything!
- m_chunk.Decommit(0, m_chunk.MaxSize());
- m_map.clearAll();
-}
-
-AlignedBlockAllocator::~AlignedBlockAllocator()
-{
- destroy();
- m_chunk.Close();
- delete [] m_map.bits;
-}
-
-} // end of namespace
-
-#endif // SYMBIAN
diff --git a/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h b/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h
deleted file mode 100644
index 21422f6..0000000
--- a/JavaScriptCore/wtf/symbian/BlockAllocatorSymbian.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef BlockAllocatorSymbian_h
-#define BlockAllocatorSymbian_h
-
-#include <e32cmn.h>
-#include <e32std.h>
-#include <hal.h>
-
-
-#define SYMBIAN_PAGESIZE(x) (HAL::Get(HALData::EMemoryPageSize, x));
-#define SYMBIAN_FREERAM(x) (HAL::Get(HALData::EMemoryRAMFree, x));
-#define SYMBIAN_ROUNDUPTOMULTIPLE(x, multipleof) ( (x + multipleof - 1) & ~(multipleof - 1) )
-
-// Set sane defaults if -D<flagname=value> wasn't provided via compiler args
-#ifndef JSCCOLLECTOR_VIRTUALMEM_RESERVATION
-#if defined(__WINS__)
- // Emulator has limited virtual address space
- #define JSCCOLLECTOR_VIRTUALMEM_RESERVATION (4*1024*1024)
-#else
- // HW has plenty of virtual addresses
- #define JSCCOLLECTOR_VIRTUALMEM_RESERVATION (128*1024*1024)
-#endif
-#endif
-
-namespace WTF {
-
-/**
- * Allocates contiguous region of size blockSize with blockSize-aligned address.
- * blockSize must be a multiple of system page size (typically 4K on Symbian/ARM)
- *
- * @param reservationSize Virtual address range to be reserved upon creation of chunk (bytes).
- * @param blockSize Size of a single allocation. Returned address will also be blockSize-aligned.
- */
-class AlignedBlockAllocator {
- public:
- AlignedBlockAllocator(TUint32 reservationSize, TUint32 blockSize);
- ~AlignedBlockAllocator();
- void destroy();
- void* alloc();
- void free(void* data);
-
- private:
- RChunk m_chunk; // Symbian chunk that lets us reserve/commit/decommit
- TUint m_offset; // offset of first committed region from base
- TInt m_pageSize; // cached value of system page size, typically 4K on Symbian
- TUint32 m_reservation;
- TUint32 m_blockSize;
-
- // Tracks comitted/decommitted state of a blockSize region
- struct {
-
- TUint32 *bits; // array of bit flags
- TUint32 numBits; // number of regions to keep track of
-
- bool get(TUint32 n) const
- {
- return !!(bits[n >> 5] & (1 << (n & 0x1F)));
- }
-
- void set(TUint32 n)
- {
- bits[n >> 5] |= (1 << (n & 0x1F));
- }
-
- void clear(TUint32 n)
- {
- bits[n >> 5] &= ~(1 << (n & 0x1F));
- }
-
- void clearAll()
- {
- for (TUint32 i = 0; i < numBits; i++)
- clear(i);
- }
-
- TInt findFree() const
- {
- for (TUint32 i = 0; i < numBits; i++) {
- if (!get(i))
- return i;
- }
- return -1;
- }
-
- } m_map;
-
-};
-
-}
-
-#endif // end of BlockAllocatorSymbian_h
-
-
diff --git a/JavaScriptCore/wtf/text/AtomicString.cpp b/JavaScriptCore/wtf/text/AtomicString.cpp
index 0547b8c..6e95292 100644
--- a/JavaScriptCore/wtf/text/AtomicString.cpp
+++ b/JavaScriptCore/wtf/text/AtomicString.cpp
@@ -27,7 +27,7 @@
#include <wtf/Threading.h>
#include <wtf/WTFThreadData.h>
-namespace WebCore {
+namespace WTF {
COMPILE_ASSERT(sizeof(AtomicString) == sizeof(String), atomic_string_and_string_must_be_same_size);
@@ -164,7 +164,7 @@ struct UCharBufferTranslator {
static bool equal(StringImpl* const& str, const UCharBuffer& buf)
{
- return WebCore::equal(str, buf.s, buf.length);
+ return WTF::equal(str, buf.s, buf.length);
}
static void translate(StringImpl*& location, const UCharBuffer& buf, unsigned hash)
@@ -190,7 +190,7 @@ struct HashAndCharactersTranslator {
static bool equal(StringImpl* const& string, const HashAndCharacters& buffer)
{
- return WebCore::equal(string, buffer.characters, buffer.length);
+ return WTF::equal(string, buffer.characters, buffer.length);
}
static void translate(StringImpl*& location, const HashAndCharacters& buffer, unsigned hash)
diff --git a/JavaScriptCore/wtf/text/AtomicString.h b/JavaScriptCore/wtf/text/AtomicString.h
index 5bb2cf9..d29981a 100644
--- a/JavaScriptCore/wtf/text/AtomicString.h
+++ b/JavaScriptCore/wtf/text/AtomicString.h
@@ -32,11 +32,13 @@
#define ATOMICSTRING_CONVERSION
#endif
-// FIXME: This is a temporary layering violation while we move string code to WTF.
-// Landing the file moves in one patch, will follow on with patches to change the namespaces.
+// FIXME: this should be in WTF, too!
namespace WebCore {
-
struct AtomicStringHash;
+}
+using WebCore::AtomicStringHash;
+
+namespace WTF {
class AtomicString {
public:
@@ -156,17 +158,23 @@ inline bool equalIgnoringCase(const String& a, const AtomicString& b) { return e
extern const JS_EXPORTDATA AtomicString xmlnsAtom;
#endif
-} // namespace WebCore
-
-
-namespace WTF {
-
// AtomicStringHash is the default hash for AtomicString
template<typename T> struct DefaultHash;
- template<> struct DefaultHash<WebCore::AtomicString> {
- typedef WebCore::AtomicStringHash Hash;
+ template<> struct DefaultHash<AtomicString> {
+ typedef AtomicStringHash Hash;
};
} // namespace WTF
+#ifndef ATOMICSTRING_HIDE_GLOBALS
+using WTF::AtomicString;
+using WTF::nullAtom;
+using WTF::emptyAtom;
+using WTF::textAtom;
+using WTF::commentAtom;
+using WTF::starAtom;
+using WTF::xmlAtom;
+using WTF::xmlnsAtom;
+#endif
+
#endif // AtomicString_h
diff --git a/JavaScriptCore/wtf/text/AtomicStringImpl.h b/JavaScriptCore/wtf/text/AtomicStringImpl.h
index 4b813f8..3f0c376 100644
--- a/JavaScriptCore/wtf/text/AtomicStringImpl.h
+++ b/JavaScriptCore/wtf/text/AtomicStringImpl.h
@@ -23,9 +23,7 @@
#include "StringImpl.h"
-// FIXME: This is a temporary layering violation while we move string code to WTF.
-// Landing the file moves in one patch, will follow on with patches to change the namespaces.
-namespace WebCore {
+namespace WTF {
class AtomicStringImpl : public StringImpl
{
@@ -35,4 +33,6 @@ public:
}
+using WTF::AtomicStringImpl;
+
#endif
diff --git a/JavaScriptCore/wtf/text/StringBuffer.h b/JavaScriptCore/wtf/text/StringBuffer.h
index 353a44a..c29dd79 100644
--- a/JavaScriptCore/wtf/text/StringBuffer.h
+++ b/JavaScriptCore/wtf/text/StringBuffer.h
@@ -33,7 +33,7 @@
#include <wtf/Noncopyable.h>
#include <wtf/unicode/Unicode.h>
-namespace WebCore {
+namespace WTF {
class StringBuffer : public Noncopyable {
public:
@@ -74,4 +74,6 @@ private:
}
+using WTF::StringBuffer;
+
#endif
diff --git a/JavaScriptCore/wtf/text/StringHash.h b/JavaScriptCore/wtf/text/StringHash.h
index b820004..8872fb3 100644
--- a/JavaScriptCore/wtf/text/StringHash.h
+++ b/JavaScriptCore/wtf/text/StringHash.h
@@ -24,13 +24,12 @@
#include "AtomicString.h"
#include "WTFString.h"
+#include <wtf/Forward.h>
#include <wtf/HashTraits.h>
#include <wtf/StringHashFunctions.h>
#include <wtf/unicode/Unicode.h>
-// FIXME: This is a temporary layering violation while we move string code to WTF.
-// Landing the file moves in one patch, will follow on with patches to change the namespaces.
-namespace WebCore {
+namespace WTF {
// The hash() functions on StringHash and CaseFoldingHash do not support
// null strings. get(), contains(), and add() on HashMap<String,..., StringHash>
@@ -253,16 +252,16 @@ namespace WebCore {
}
};
-}
-
-namespace WTF {
-
- template<> struct HashTraits<WebCore::String> : GenericHashTraits<WebCore::String> {
+ template<> struct HashTraits<String> : GenericHashTraits<String> {
static const bool emptyValueIsZero = true;
- static void constructDeletedValue(WebCore::String& slot) { new (&slot) WebCore::String(HashTableDeletedValue); }
- static bool isDeletedValue(const WebCore::String& slot) { return slot.isHashTableDeletedValue(); }
+ static void constructDeletedValue(String& slot) { new (&slot) String(HashTableDeletedValue); }
+ static bool isDeletedValue(const String& slot) { return slot.isHashTableDeletedValue(); }
};
}
+using WTF::StringHash;
+using WTF::CaseFoldingHash;
+using WTF::AlreadyHashed;
+
#endif
diff --git a/JavaScriptCore/wtf/text/StringImpl.cpp b/JavaScriptCore/wtf/text/StringImpl.cpp
index 698cab9..3669628 100644
--- a/JavaScriptCore/wtf/text/StringImpl.cpp
+++ b/JavaScriptCore/wtf/text/StringImpl.cpp
@@ -31,10 +31,9 @@
#include <wtf/StdLibExtras.h>
#include <wtf/WTFThreadData.h>
-using namespace WTF;
-using namespace Unicode;
+namespace WTF {
-namespace WebCore {
+using namespace Unicode;
static const unsigned minLengthToShare = 20;
@@ -535,12 +534,12 @@ int StringImpl::find(const char* chs, int index, bool caseSensitive)
int StringImpl::find(UChar c, int start)
{
- return WebCore::find(m_data, m_length, c, start);
+ return WTF::find(m_data, m_length, c, start);
}
int StringImpl::find(CharacterMatchFunctionPtr matchFunction, int start)
{
- return WebCore::find(m_data, m_length, matchFunction, start);
+ return WTF::find(m_data, m_length, matchFunction, start);
}
int StringImpl::find(StringImpl* str, int index, bool caseSensitive)
@@ -601,7 +600,7 @@ int StringImpl::find(StringImpl* str, int index, bool caseSensitive)
int StringImpl::reverseFind(UChar c, int index)
{
- return WebCore::reverseFind(m_data, m_length, c, index);
+ return WTF::reverseFind(m_data, m_length, c, index);
}
int StringImpl::reverseFind(StringImpl* str, int index, bool caseSensitive)
@@ -961,4 +960,4 @@ PassRefPtr<StringImpl> StringImpl::crossThreadString()
return threadsafeCopy();
}
-} // namespace WebCore
+} // namespace WTF
diff --git a/JavaScriptCore/wtf/text/StringImpl.h b/JavaScriptCore/wtf/text/StringImpl.h
index 244009f..6080474 100644
--- a/JavaScriptCore/wtf/text/StringImpl.h
+++ b/JavaScriptCore/wtf/text/StringImpl.h
@@ -26,6 +26,7 @@
#include <limits.h>
#include <wtf/ASCIICType.h>
#include <wtf/CrossThreadRefCounted.h>
+#include <wtf/Forward.h>
#include <wtf/OwnFastMallocPtr.h>
#include <wtf/StdLibExtras.h>
#include <wtf/StringHashFunctions.h>
@@ -44,21 +45,14 @@ typedef const struct __CFString * CFStringRef;
// FIXME: This is a temporary layering violation while we move string code to WTF.
// Landing the file moves in one patch, will follow on with patches to change the namespaces.
namespace JSC {
-
struct IdentifierCStringTranslator;
struct IdentifierUCharBufferTranslator;
-
}
-// FIXME: This is a temporary layering violation while we move string code to WTF.
-// Landing the file moves in one patch, will follow on with patches to change the namespaces.
-namespace WebCore {
-
-class StringBuffer;
+namespace WTF {
struct CStringTranslator;
struct HashAndCharactersTranslator;
-struct StringHash;
struct UCharBufferTranslator;
enum TextCaseSensitivity { TextCaseSensitive, TextCaseInsensitive };
@@ -70,9 +64,9 @@ typedef bool (*CharacterMatchFunctionPtr)(UChar);
class StringImpl : public StringImplBase {
friend struct JSC::IdentifierCStringTranslator;
friend struct JSC::IdentifierUCharBufferTranslator;
- friend struct CStringTranslator;
- friend struct HashAndCharactersTranslator;
- friend struct UCharBufferTranslator;
+ friend struct WTF::CStringTranslator;
+ friend struct WTF::HashAndCharactersTranslator;
+ friend struct WTF::UCharBufferTranslator;
friend class AtomicStringImpl;
private:
// Used to construct static strings, which have an special refCount that can never hit zero.
@@ -384,21 +378,23 @@ inline PassRefPtr<StringImpl> StringImpl::createStrippingNullCharacters(const UC
return StringImpl::createStrippingNullCharactersSlowCase(characters, length);
}
-}
-
-using WebCore::equal;
-
-namespace WTF {
+struct StringHash;
- // WebCore::StringHash is the default hash for StringImpl* and RefPtr<StringImpl>
- template<typename T> struct DefaultHash;
- template<> struct DefaultHash<WebCore::StringImpl*> {
- typedef WebCore::StringHash Hash;
- };
- template<> struct DefaultHash<RefPtr<WebCore::StringImpl> > {
- typedef WebCore::StringHash Hash;
- };
+// StringHash is the default hash for StringImpl* and RefPtr<StringImpl>
+template<typename T> struct DefaultHash;
+template<> struct DefaultHash<StringImpl*> {
+ typedef StringHash Hash;
+};
+template<> struct DefaultHash<RefPtr<StringImpl> > {
+ typedef StringHash Hash;
+};
}
+using WTF::StringImpl;
+using WTF::equal;
+using WTF::TextCaseSensitivity;
+using WTF::TextCaseSensitive;
+using WTF::TextCaseInsensitive;
+
#endif
diff --git a/JavaScriptCore/wtf/text/StringStatics.cpp b/JavaScriptCore/wtf/text/StringStatics.cpp
index 4a23a16..5654044 100644
--- a/JavaScriptCore/wtf/text/StringStatics.cpp
+++ b/JavaScriptCore/wtf/text/StringStatics.cpp
@@ -33,7 +33,7 @@
#include "StaticConstructors.h"
#include "StringImpl.h"
-namespace WebCore {
+namespace WTF {
StringImpl* StringImpl::empty()
{
diff --git a/JavaScriptCore/wtf/text/WTFString.cpp b/JavaScriptCore/wtf/text/WTFString.cpp
index 2d4417f..6c4de6e 100644
--- a/JavaScriptCore/wtf/text/WTFString.cpp
+++ b/JavaScriptCore/wtf/text/WTFString.cpp
@@ -32,10 +32,9 @@
#include <wtf/unicode/UTF8.h>
#include <wtf/unicode/Unicode.h>
-using namespace WTF;
-using namespace WTF::Unicode;
+namespace WTF {
-namespace WebCore {
+using namespace Unicode;
String::String(const UChar* str)
{
@@ -905,14 +904,14 @@ float charactersToFloat(const UChar* data, size_t length, bool* ok)
return static_cast<float>(charactersToDouble(data, length, ok));
}
-} // namespace WebCore
+} // namespace WTF
#ifndef NDEBUG
// For use in the debugger - leaks memory
-WebCore::String* string(const char*);
+String* string(const char*);
-WebCore::String* string(const char* s)
+String* string(const char* s)
{
- return new WebCore::String(s);
+ return new String(s);
}
#endif
diff --git a/JavaScriptCore/wtf/text/WTFString.h b/JavaScriptCore/wtf/text/WTFString.h
index 90d9a71..6af519c 100644
--- a/JavaScriptCore/wtf/text/WTFString.h
+++ b/JavaScriptCore/wtf/text/WTFString.h
@@ -51,16 +51,8 @@ class BString;
#endif
namespace WTF {
-class CString;
-}
-using WTF::CString;
-// FIXME: This is a temporary layering violation while we move string code to WTF.
-// Landing the file moves in one patch, will follow on with patches to change the namespaces.
-namespace WebCore {
-
-class SharedBuffer;
-struct StringHash;
+class CString;
// Declarations of string operations
@@ -417,16 +409,30 @@ inline void appendNumber(Vector<UChar>& vector, unsigned char number)
}
}
-} // namespace WebCore
-
-namespace WTF {
+struct StringHash;
- // StringHash is the default hash for String
- template<typename T> struct DefaultHash;
- template<> struct DefaultHash<WebCore::String> {
- typedef WebCore::StringHash Hash;
- };
+// StringHash is the default hash for String
+template<typename T> struct DefaultHash;
+template<> struct DefaultHash<String> {
+ typedef StringHash Hash;
+};
}
+using WTF::CString;
+using WTF::String;
+
+using WTF::isSpaceOrNewline;
+using WTF::find;
+using WTF::reverseFind;
+using WTF::append;
+using WTF::appendNumber;
+using WTF::equal;
+using WTF::equalIgnoringCase;
+using WTF::charactersAreAllASCII;
+using WTF::charactersToInt;
+using WTF::charactersToFloat;
+using WTF::charactersToDouble;
+using WTF::operator+;
+
#endif
diff --git a/JavaScriptCore/wtf/unicode/icu/CollatorICU.cpp b/JavaScriptCore/wtf/unicode/icu/CollatorICU.cpp
index 5112de5..805b114 100644
--- a/JavaScriptCore/wtf/unicode/icu/CollatorICU.cpp
+++ b/JavaScriptCore/wtf/unicode/icu/CollatorICU.cpp
@@ -61,7 +61,7 @@ PassOwnPtr<Collator> Collator::userDefault()
{
#if OS(DARWIN) && PLATFORM(CF)
// Mac OS X doesn't set UNIX locale to match user-selected one, so ICU default doesn't work.
-#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !OS(IPHONE_OS)
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !OS(IOS)
RetainPtr<CFLocaleRef> currentLocale(AdoptCF, CFLocaleCopyCurrent());
CFStringRef collationOrder = (CFStringRef)CFLocaleGetValue(currentLocale.get(), kCFLocaleCollatorIdentifier);
#else
diff --git a/JavaScriptCore/yarr/RegexJIT.cpp b/JavaScriptCore/yarr/RegexJIT.cpp
index 9eff75a..5a53ced 100644
--- a/JavaScriptCore/yarr/RegexJIT.cpp
+++ b/JavaScriptCore/yarr/RegexJIT.cpp
@@ -1466,7 +1466,17 @@ public:
{
generate();
- LinkBuffer patchBuffer(this, globalData->executableAllocator.poolForSize(size()));
+ RefPtr<ExecutablePool> executablePool = globalData->executableAllocator.poolForSize(size());
+ if (!executablePool) {
+ m_shouldFallBack = true;
+ return;
+ }
+
+ LinkBuffer patchBuffer(this, executablePool.release(), 0);
+ if (!patchBuffer.allocationSuccessful()) {
+ m_shouldFallBack = true;
+ return;
+ }
for (unsigned i = 0; i < m_backtrackRecords.size(); ++i)
patchBuffer.patch(m_backtrackRecords[i].dataLabel, patchBuffer.locationOf(m_backtrackRecords[i].backtrackLocation));
diff --git a/JavaScriptGlue/ChangeLog b/JavaScriptGlue/ChangeLog
index 17aaffe..9301542 100644
--- a/JavaScriptGlue/ChangeLog
+++ b/JavaScriptGlue/ChangeLog
@@ -1,3 +1,44 @@
+2010-08-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 43515 - Fix small design issues with PageAllocation, split out PageReservation.
+ (add forwarding headers)
+
+ * ForwardingHeaders/wtf/Bitmap.h: Added.
+ * ForwardingHeaders/wtf/PageReservation.h: Added.
+
+2010-08-04 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64655.
+ http://trac.webkit.org/changeset/64655
+ https://bugs.webkit.org/show_bug.cgi?id=43496
+
+ JavaScriptCore references patch seems to have caused
+ regressions in QT and GTK builds (Requested by nlawrence on
+ #webkit).
+
+ * JSValueWrapper.cpp:
+ (JSValueWrapper::JSObjectMark):
+
+2010-08-04 Nathan Lawrence <nlawrence@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Removed unneeded marking. We need to remove this marking in order to have
+ MarkStack::append take references for updating movable objects.
+
+ https://bugs.webkit.org/show_bug.cgi?id=41177
+
+ * JSValueWrapper.cpp:
+ (JSValueWrapper::JSObjectMark):
+
+2010-08-03 Gavin Barraclough <barraclough@apple.com>
+
+ Build fix following r64624.
+
+ * ForwardingHeaders/wtf/BitMap.h: Added.
+
2010-07-27 Gavin Barraclough <barraclough@apple.com>
Reviewed by Oliver Hunt.
diff --git a/JavaScriptGlue/Configurations/Version.xcconfig b/JavaScriptGlue/Configurations/Version.xcconfig
index 2893a3c..811d9c4 100644
--- a/JavaScriptGlue/Configurations/Version.xcconfig
+++ b/JavaScriptGlue/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 534;
-MINOR_VERSION = 5;
+MINOR_VERSION = 6;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/JavaScriptGlue/ForwardingHeaders/wtf/Bitmap.h b/JavaScriptGlue/ForwardingHeaders/wtf/Bitmap.h
new file mode 100644
index 0000000..d365065
--- /dev/null
+++ b/JavaScriptGlue/ForwardingHeaders/wtf/Bitmap.h
@@ -0,0 +1 @@
+#include <JavaScriptCore/Bitmap.h>
diff --git a/JavaScriptGlue/ForwardingHeaders/wtf/PageReservation.h b/JavaScriptGlue/ForwardingHeaders/wtf/PageReservation.h
new file mode 100644
index 0000000..81581b6
--- /dev/null
+++ b/JavaScriptGlue/ForwardingHeaders/wtf/PageReservation.h
@@ -0,0 +1 @@
+#include <JavaScriptCore/PageReservation.h>
diff --git a/LayoutTests/dom/html/level2/html/HTMLIsIndexElement01-expected.txt b/LayoutTests/dom/html/level2/html/HTMLIsIndexElement01-expected.txt
index 6a742d4..82affff 100644
--- a/LayoutTests/dom/html/level2/html/HTMLIsIndexElement01-expected.txt
+++ b/LayoutTests/dom/html/level2/html/HTMLIsIndexElement01-expected.txt
@@ -1,2 +1,3 @@
-Test: http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement01
-Status: Success
+Test: http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement01
+Status: failure
+Detail: notnull: assertNotNull failed
diff --git a/LayoutTests/dom/html/level2/html/HTMLIsIndexElement02-expected.txt b/LayoutTests/dom/html/level2/html/HTMLIsIndexElement02-expected.txt
index afeb9f8..75bb08d 100644
--- a/LayoutTests/dom/html/level2/html/HTMLIsIndexElement02-expected.txt
+++ b/LayoutTests/dom/html/level2/html/HTMLIsIndexElement02-expected.txt
@@ -1,2 +1,3 @@
-Test: http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement02
-Status: Success
+Test: http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement02
+Status: failure
+Detail: notnull: assertNotNull failed
diff --git a/LayoutTests/dom/html/level2/html/HTMLIsIndexElement03-expected.txt b/LayoutTests/dom/html/level2/html/HTMLIsIndexElement03-expected.txt
index c889eb7..c2a3867 100644
--- a/LayoutTests/dom/html/level2/html/HTMLIsIndexElement03-expected.txt
+++ b/LayoutTests/dom/html/level2/html/HTMLIsIndexElement03-expected.txt
@@ -1,2 +1,3 @@
-Test: http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement03
-Status: Success
+Test: http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement03
+Status: failure
+Detail: Asize: assertEquals failed, actual 0, expected 2.
diff --git a/LayoutTests/fast/dom/Geolocation/delayed-permission-allowed-expected.txt b/LayoutTests/fast/dom/Geolocation/delayed-permission-allowed-expected.txt
new file mode 100644
index 0000000..bfe4f75
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/delayed-permission-allowed-expected.txt
@@ -0,0 +1,10 @@
+Tests that when a position is available, no callbacks are invoked until permission is allowed.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Success callback invoked
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/Geolocation/delayed-permission-allowed.html b/LayoutTests/fast/dom/Geolocation/delayed-permission-allowed.html
new file mode 100644
index 0000000..cacdd85
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/delayed-permission-allowed.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css">
+<script src="../../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/delayed-permission-allowed.js"></script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/dom/Geolocation/delayed-permission-denied-expected.txt b/LayoutTests/fast/dom/Geolocation/delayed-permission-denied-expected.txt
new file mode 100644
index 0000000..292e2ee
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/delayed-permission-denied-expected.txt
@@ -0,0 +1,11 @@
+Tests that when a position is available, no callbacks are invoked until permission is denied.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS error.code is error.PERMISSION_DENIED
+PASS error.message is "User denied Geolocation"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/Geolocation/delayed-permission-denied.html b/LayoutTests/fast/dom/Geolocation/delayed-permission-denied.html
new file mode 100644
index 0000000..0faec6e
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/delayed-permission-denied.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css">
+<script src="../../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/delayed-permission-denied.js"></script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/dom/Geolocation/script-tests/delayed-permission-allowed.js b/LayoutTests/fast/dom/Geolocation/script-tests/delayed-permission-allowed.js
new file mode 100644
index 0000000..f4242ca
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/script-tests/delayed-permission-allowed.js
@@ -0,0 +1,27 @@
+description("Tests that when a position is available, no callbacks are invoked until permission is allowed.");
+
+if (window.layoutTestController)
+ window.layoutTestController.setMockGeolocationPosition(51.478, -0.166, 100);
+
+function allowPermission() {
+ permissionSet = true;
+ if (window.layoutTestController)
+ layoutTestController.setGeolocationPermission(true);
+}
+
+navigator.geolocation.getCurrentPosition(function() {
+ if (permissionSet) {
+ testPassed('Success callback invoked');
+ finishJSTest();
+ return;
+ }
+ testFailed('Success callback invoked unexpectedly');
+ finishJSTest();
+}, function() {
+ testFailed('Error callback invoked unexpectedly');
+ finishJSTest();
+});
+window.setTimeout(allowPermission, 100);
+
+window.jsTestIsAsync = true;
+window.successfullyParsed = true;
diff --git a/LayoutTests/fast/dom/Geolocation/script-tests/delayed-permission-denied.js b/LayoutTests/fast/dom/Geolocation/script-tests/delayed-permission-denied.js
new file mode 100644
index 0000000..aebd302
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/script-tests/delayed-permission-denied.js
@@ -0,0 +1,30 @@
+description("Tests that when a position is available, no callbacks are invoked until permission is denied.");
+
+if (window.layoutTestController)
+ window.layoutTestController.setMockGeolocationPosition(51.478, -0.166, 100);
+
+function denyPermission() {
+ permissionSet = true;
+ if (window.layoutTestController)
+ layoutTestController.setGeolocationPermission(false);
+}
+
+var error;
+navigator.geolocation.getCurrentPosition(function() {
+ testFailed('Success callback invoked unexpectedly');
+ finishJSTest();
+}, function(e) {
+ if (permissionSet) {
+ error = e;
+ shouldBe('error.code', 'error.PERMISSION_DENIED');
+ shouldBe('error.message', '"User denied Geolocation"');
+ finishJSTest();
+ return;
+ }
+ testFailed('Error callback invoked unexpectedly');
+ finishJSTest();
+});
+window.setTimeout(denyPermission, 100);
+
+window.jsTestIsAsync = true;
+window.successfullyParsed = true;
diff --git a/LayoutTests/fast/js/resources/js-test-pre.js b/LayoutTests/fast/js/resources/js-test-pre.js
index 93c3cb6..aaab749 100644
--- a/LayoutTests/fast/js/resources/js-test-pre.js
+++ b/LayoutTests/fast/js/resources/js-test-pre.js
@@ -23,7 +23,7 @@ function debug(msg)
function escapeHTML(text)
{
- return text.replace(/&/g, "&amp;").replace(/</g, "&lt;");
+ return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/\0/g, "\\0");
}
function testPassed(msg)
diff --git a/LayoutTests/http/tests/appcache/origin-quota-expected.txt b/LayoutTests/http/tests/appcache/origin-quota-expected.txt
new file mode 100644
index 0000000..1d530bb
--- /dev/null
+++ b/LayoutTests/http/tests/appcache/origin-quota-expected.txt
@@ -0,0 +1,9 @@
+UI DELEGATE APPLICATION CACHE CALLBACK: exceededApplicationCacheOriginQuotaForSecurityOrigin:{http, 127.0.0.1, 8000}
+This test checks that per-origin application cache quotas are enforced.
+
+This test sets the quota for the origin to 20kb, and attempts to fill it up with 2 iframes that are 13kb each. The application cache download process should fail on the 2nd iframe and the UI Delegate should be informed of the exceeded quota. Increasing the size to 40kb. A 3rd iframe is added, which should succeed.
+
+PASS - cached iframe-1
+PASS - error caching iframe-2 as expected
+PASS - cached iframe-3
+
diff --git a/LayoutTests/http/tests/appcache/origin-quota.html b/LayoutTests/http/tests/appcache/origin-quota.html
new file mode 100644
index 0000000..a7322fd
--- /dev/null
+++ b/LayoutTests/http/tests/appcache/origin-quota.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+<script>
+
+// Helpers.
+
+function log(message) {
+ document.getElementById("console").innerHTML += message + "<br>";
+}
+
+// Start and end.
+
+function startTest() {
+ if (window.layoutTestController) {
+ layoutTestController.clearAllApplicationCaches();
+ layoutTestController.dumpApplicationCacheDelegateCallbacks();
+ layoutTestController.setApplicationCacheOriginQuota(20*1024);
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ }
+
+ addFirstIFrame();
+}
+
+function finishTest() {
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+// Stages.
+
+function addIFrameWithContinuation(src, continuation) {
+ window.onmessage = continuation;
+ var iframe = document.createElement("iframe");
+ iframe.src = src;
+ document.body.appendChild(iframe);
+}
+
+function addFirstIFrame() {
+ // Expected to succeed.
+ addIFrameWithContinuation("resources/quota-origin-iframe-1.html", function(event) {
+ log(event.data);
+ addSecondIFrame();
+ });
+}
+
+function addSecondIFrame() {
+ // Expected to fail, then increase the quota.
+ // NOTE: When this fails, the exceed callback will automatically increase it back to the default quota size.
+ addIFrameWithContinuation("resources/quota-origin-iframe-2.html", function(event) {
+ log(event.data);
+ addThirdIFrame();
+ });
+}
+
+function addThirdIFrame() {
+ // Expected to succeed.
+ addIFrameWithContinuation("resources/quota-origin-iframe-3.html", function(event) {
+ log(event.data);
+ finishTest();
+ });
+}
+
+</script>
+</head>
+<body onload="startTest()">
+<p>This test checks that per-origin application cache quotas are enforced.</p>
+<p>
+ This test sets the quota for the origin to 20kb, and attempts to fill
+ it up with 2 iframes that are 13kb each. The application cache download
+ process should fail on the 2nd iframe and the UI Delegate should be
+ informed of the exceeded quota. Increasing the size to 40kb. A 3rd
+ iframe is added, which should succeed.
+</p>
+<pre id="console"></pre>
+</body>
+</html>
diff --git a/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-1.html b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-1.html
new file mode 100644
index 0000000..c50959f
--- /dev/null
+++ b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-1.html
@@ -0,0 +1,8 @@
+<html manifest="quota-origin-iframe-1.manifest">
+<script>
+// iframe-1 is expected to succeed.
+applicationCache.oncached = function() { parent.postMessage("PASS - cached iframe-1", "*"); };
+applicationCache.onerror = function() { parent.postMessage("FAIL - error caching iframe-1, expected this to succeed and fit in the quota", "*"); };
+applicationCache.onnoupdate = function() { parent.postMessage("FAIL - no update iframe-1, all caches should have been deleted before this test", "*"); };
+</script>
+</html>
diff --git a/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-1.manifest b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-1.manifest
new file mode 100644
index 0000000..63d3784
--- /dev/null
+++ b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-1.manifest
@@ -0,0 +1,7 @@
+CACHE MANIFEST
+
+# iframe-1 should succeed. The origin quota has been set to
+# 20kb. Caching abe.png and this manifest will be ~13kb.
+
+CACHE:
+abe.png
diff --git a/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-2.html b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-2.html
new file mode 100644
index 0000000..0f1c11b
--- /dev/null
+++ b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-2.html
@@ -0,0 +1,8 @@
+<html manifest="quota-origin-iframe-2.manifest">
+<script>
+// iframe-2 is expected to fail due to exceeding the origin quota.
+applicationCache.oncached = function() { parent.postMessage("FAIL - cached iframe-2, expected this this fail because it reached the quota", "*"); };
+applicationCache.onerror = function() { parent.postMessage("PASS - error caching iframe-2 as expected", "*"); };
+applicationCache.onnoupdate = function() { parent.postMessage("FAIL - no update iframe-2, all caches should have been deleted before this test", "*"); };
+</script>
+</html>
diff --git a/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-2.manifest b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-2.manifest
new file mode 100644
index 0000000..64292b0
--- /dev/null
+++ b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-2.manifest
@@ -0,0 +1,8 @@
+CACHE MANIFEST
+
+# iframe-2 should fail. The origin quota has been set to
+# 20kb, with ~13kb already cached. Caching abe.png and this
+# manifest (~13kb) should exceed the quota and fail.
+
+CACHE:
+abe.png
diff --git a/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-3.html b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-3.html
new file mode 100644
index 0000000..a185e54
--- /dev/null
+++ b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-3.html
@@ -0,0 +1,8 @@
+<html manifest="quota-origin-iframe-3.manifest">
+<script>
+// iframe-3 is expected to succeed once the quota has been increased.
+applicationCache.oncached = function() { parent.postMessage("PASS - cached iframe-3", "*"); };
+applicationCache.onerror = function() { parent.postMessage("FAIL - error caching iframe-3, expected this to succeed with the quota increased", "*"); };
+applicationCache.onnoupdate = function() { parent.postMessage("FAIL - no update iframe-3, all caches should have been deleted before this test", "*"); };
+</script>
+</html>
diff --git a/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-3.manifest b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-3.manifest
new file mode 100644
index 0000000..bc29867
--- /dev/null
+++ b/LayoutTests/http/tests/appcache/resources/quota-origin-iframe-3.manifest
@@ -0,0 +1,8 @@
+CACHE MANIFEST
+
+# iframe-3 should succeed. The origin quota shuld have been
+# raised to 40kb, with ~13kb already cached. Caching abe.png
+# and this manifest will be ~13kb, bringing us up to 26kb.
+
+CACHE:
+abe.png
diff --git a/LayoutTests/platform/android-v8/fast/dom/DeviceMotion/window-property-expected.txt b/LayoutTests/platform/android-v8/fast/dom/DeviceMotion/window-property-expected.txt
new file mode 100644
index 0000000..1bfbc1f
--- /dev/null
+++ b/LayoutTests/platform/android-v8/fast/dom/DeviceMotion/window-property-expected.txt
@@ -0,0 +1,18 @@
+Tests that the window.DeviceMotionEvent and window.ondevicemotion properties are present.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+FAIL typeof window.DeviceMotionEvent == 'object' should be true. Was false.
+FAIL typeof window.DeviceMotionEvent == 'function' should be false. Was true.
+PASS hasDeviceMotionEventProperty() is true
+PASS 'DeviceMotionEvent' in window is true
+PASS window.hasOwnProperty('DeviceMotionEvent') is true
+PASS typeof window.ondevicemotion == 'object' is true
+PASS hasOnDeviceMotionProperty() is true
+PASS 'ondevicemotion' in window is true
+FAIL window.hasOwnProperty('ondevicemotion') should be true. Was false.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/storage/domstorage/complex-values-expected.txt b/LayoutTests/storage/domstorage/complex-values-expected.txt
index 9a75e42..e1665e6 100644
--- a/LayoutTests/storage/domstorage/complex-values-expected.txt
+++ b/LayoutTests/storage/domstorage/complex-values-expected.txt
@@ -82,25 +82,25 @@ PASS storage.getItem('foo9') is "2"
storage.foo10 = k
PASS typeof storage['foo10'] is "string"
-PASS storage['foo10'] is "ÿ찡�hello"
+PASS storage['foo10'] is "ÿ찡\0hello"
PASS typeof storage.foo10 is "string"
-PASS storage.foo10 is "ÿ찡�hello"
+PASS storage.foo10 is "ÿ찡\0hello"
PASS typeof storage.getItem('foo10') is "string"
-PASS storage.getItem('foo10') is "ÿ찡�hello"
+PASS storage.getItem('foo10') is "ÿ찡\0hello"
storage['foo11'] = k
PASS typeof storage['foo11'] is "string"
-PASS storage['foo11'] is "ÿ찡�hello"
+PASS storage['foo11'] is "ÿ찡\0hello"
PASS typeof storage.foo11 is "string"
-PASS storage.foo11 is "ÿ찡�hello"
+PASS storage.foo11 is "ÿ찡\0hello"
PASS typeof storage.getItem('foo11') is "string"
-PASS storage.getItem('foo11') is "ÿ찡�hello"
+PASS storage.getItem('foo11') is "ÿ찡\0hello"
storage.setItem('foo12', k)
PASS typeof storage['foo12'] is "string"
-PASS storage['foo12'] is "ÿ찡�hello"
+PASS storage['foo12'] is "ÿ찡\0hello"
PASS typeof storage.foo12 is "string"
-PASS storage.foo12 is "ÿ찡�hello"
+PASS storage.foo12 is "ÿ찡\0hello"
PASS typeof storage.getItem('foo12') is "string"
-PASS storage.getItem('foo12') is "ÿ찡�hello"
+PASS storage.getItem('foo12') is "ÿ찡\0hello"
Testing localStorage
@@ -182,25 +182,25 @@ PASS storage.getItem('foo9') is "2"
storage.foo10 = k
PASS typeof storage['foo10'] is "string"
-PASS storage['foo10'] is "ÿ찡�hello"
+PASS storage['foo10'] is "ÿ찡\0hello"
PASS typeof storage.foo10 is "string"
-PASS storage.foo10 is "ÿ찡�hello"
+PASS storage.foo10 is "ÿ찡\0hello"
PASS typeof storage.getItem('foo10') is "string"
-PASS storage.getItem('foo10') is "ÿ찡�hello"
+PASS storage.getItem('foo10') is "ÿ찡\0hello"
storage['foo11'] = k
PASS typeof storage['foo11'] is "string"
-PASS storage['foo11'] is "ÿ찡�hello"
+PASS storage['foo11'] is "ÿ찡\0hello"
PASS typeof storage.foo11 is "string"
-PASS storage.foo11 is "ÿ찡�hello"
+PASS storage.foo11 is "ÿ찡\0hello"
PASS typeof storage.getItem('foo11') is "string"
-PASS storage.getItem('foo11') is "ÿ찡�hello"
+PASS storage.getItem('foo11') is "ÿ찡\0hello"
storage.setItem('foo12', k)
PASS typeof storage['foo12'] is "string"
-PASS storage['foo12'] is "ÿ찡�hello"
+PASS storage['foo12'] is "ÿ찡\0hello"
PASS typeof storage.foo12 is "string"
-PASS storage.foo12 is "ÿ찡�hello"
+PASS storage.foo12 is "ÿ찡\0hello"
PASS typeof storage.getItem('foo12') is "string"
-PASS storage.getItem('foo12') is "ÿ찡�hello"
+PASS storage.getItem('foo12') is "ÿ찡\0hello"
PASS successfullyParsed is true
TEST COMPLETE
diff --git a/LayoutTests/storage/indexeddb/open-cursor-expected.txt b/LayoutTests/storage/indexeddb/open-cursor-expected.txt
new file mode 100644
index 0000000..ac58785
--- /dev/null
+++ b/LayoutTests/storage/indexeddb/open-cursor-expected.txt
@@ -0,0 +1,102 @@
+Test IndexedDB's openCursor.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+indexedDB.open('name', 'description')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+db = event.result
+db.createObjectStore('test')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+objectStore = event.result
+objectStore.add('myValue', 'myKey')
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Opening cursor
+objectStore.openCursor(keyRange)
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Cursor opened successfully.
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+PASS event.result.direction is 0
+PASS event.result.key is 'myKey'
+PASS event.result.value is 'myValue'
+
+Opening an empty cursor.
+objectStore.openCursor(keyRange)
+PASS 'onsuccess' in result is true
+PASS 'onerror' in result is true
+PASS 'abort' in result is true
+PASS 'readyState' in result is true
+An event should fire shortly...
+
+Empty cursor opened successfully.
+Success event fired:
+PASS 'result' in event is true
+PASS 'code' in event is false
+PASS 'message' in event is false
+PASS 'source' in event is true
+PASS event.source != null is true
+PASS 'onsuccess' in event.target is true
+PASS 'onerror' in event.target is true
+PASS 'abort' in event.target is true
+PASS 'readyState' in event.target is true
+PASS event.target.readyState is event.target.DONE
+
+PASS event.result is null
+PASS successfullyParsed is true
+
+TEST COMPLETE
diff --git a/LayoutTests/storage/indexeddb/open-cursor.html b/LayoutTests/storage/indexeddb/open-cursor.html
new file mode 100644
index 0000000..f60365d
--- /dev/null
+++ b/LayoutTests/storage/indexeddb/open-cursor.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+<script src="../../fast/js/resources/js-test-post-function.js"></script>
+<script src="resources/shared.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/open-cursor.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/storage/indexeddb/script-tests/open-cursor.js b/LayoutTests/storage/indexeddb/script-tests/open-cursor.js
new file mode 100644
index 0000000..e3c615c
--- /dev/null
+++ b/LayoutTests/storage/indexeddb/script-tests/open-cursor.js
@@ -0,0 +1,79 @@
+description("Test IndexedDB's openCursor.");
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+
+function emptyCursorSuccess()
+{
+ debug("Empty cursor opened successfully.")
+ verifySuccessEvent(event);
+ // FIXME: check that we can iterate the cursor.
+ shouldBe("event.result", "null");
+ done();
+}
+
+function openEmptyCursor()
+{
+ debug("Opening an empty cursor.");
+ keyRange = IDBKeyRange.leftBound("InexistentKey");
+ result = evalAndLog("objectStore.openCursor(keyRange)");
+ verifyResult(result);
+ result.onsuccess = emptyCursorSuccess;
+}
+
+function cursorSuccess()
+{
+ debug("Cursor opened successfully.")
+ verifySuccessEvent(event);
+ // FIXME: check that we can iterate the cursor.
+ shouldBe("event.result.direction", "0");
+ shouldBe("event.result.key", "'myKey'");
+ shouldBe("event.result.value", "'myValue'");
+ debug("");
+ openEmptyCursor();
+}
+
+function openCursor()
+{
+ debug("Opening cursor");
+ keyRange = IDBKeyRange.leftBound("myKey");
+ result = evalAndLog("objectStore.openCursor(keyRange)");
+ verifyResult(result);
+ result.onsuccess = cursorSuccess;
+}
+
+function populateObjectStore(objectStore)
+{
+ result = evalAndLog("objectStore.add('myValue', 'myKey')");
+ verifyResult(result);
+ result.onsuccess = openCursor;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function createObjectStoreSuccess()
+{
+ verifySuccessEvent(event);
+ var objectStore = evalAndLog("objectStore = event.result");
+ populateObjectStore(objectStore);
+}
+
+function openSuccess()
+{
+ verifySuccessEvent(event);
+ var db = evalAndLog("db = event.result");
+ result = evalAndLog("db.createObjectStore('test')");
+ verifyResult(result);
+ result.onsuccess = createObjectStoreSuccess;
+ result.onerror = unexpectedErrorCallback;
+}
+
+function test()
+{
+ result = evalAndLog("indexedDB.open('name', 'description')");
+ verifyResult(result);
+ result.onsuccess = openSuccess;
+ result.onerror = unexpectedErrorCallback;
+}
+
+test();
+
+var successfullyParsed = true;
diff --git a/WebCore/Android.derived.jscbindings.mk b/WebCore/Android.derived.jscbindings.mk
index 7dfb90e..7492522 100644
--- a/WebCore/Android.derived.jscbindings.mk
+++ b/WebCore/Android.derived.jscbindings.mk
@@ -1,3 +1,4 @@
+
##
## Copyright 2009, The Android Open Source Project
##
@@ -105,7 +106,11 @@ GEN := \
$(intermediates)/dom/JSDOMCoreException.h \
$(intermediates)/dom/JSDOMImplementation.h \
$(intermediates)/dom/JSDOMStringList.h \
+<<<<<<< HEAD
$(intermediates)/dom/JSDOMStringMap.h \
+=======
+ $(intermediates)/dom/JSDeviceMotionEvent.h \
+>>>>>>> webkit.org at r65072
$(intermediates)/dom/JSDeviceOrientationEvent.h \
$(intermediates)/dom/JSDocument.h \
$(intermediates)/dom/JSDocumentFragment.h \
@@ -387,17 +392,20 @@ $(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/storage/%.cpp : $(intermediates)/
# Indexed Database
GEN := \
$(intermediates)/storage/JSIDBAny.h \
+ $(intermediates)/storage/JSIDBCursor.h \
$(intermediates)/storage/JSIDBDatabaseError.h \
$(intermediates)/storage/JSIDBDatabaseException.h \
- $(intermediates)/storage/JSIDBDatabaseRequest.h \
+ $(intermediates)/storage/JSIDBDatabase.h \
$(intermediates)/storage/JSIDBErrorEvent.h \
$(intermediates)/storage/JSIDBEvent.h \
$(intermediates)/storage/JSIDBFactory.h \
$(intermediates)/storage/JSIDBIndex.h \
$(intermediates)/storage/JSIDBKey.h \
$(intermediates)/storage/JSIDBKeyRange.h \
+ $(intermediates)/storage/JSIDBObjectStore.h \
$(intermediates)/storage/JSIDBRequest.h \
- $(intermediates)/storage/JSIDBSuccessEvent.h
+ $(intermediates)/storage/JSIDBSuccessEvent.h \
+ $(intermediates)/storage/JSIDBTransaction.h
$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --include storage --outputdir $(dir $@) $<
diff --git a/WebCore/Android.derived.v8bindings.mk b/WebCore/Android.derived.v8bindings.mk
index 5f576ea..e5ea4db 100644
--- a/WebCore/Android.derived.v8bindings.mk
+++ b/WebCore/Android.derived.v8bindings.mk
@@ -89,7 +89,11 @@ GEN := \
$(intermediates)/bindings/V8DOMCoreException.h \
$(intermediates)/bindings/V8DOMImplementation.h \
$(intermediates)/bindings/V8DOMStringList.h \
+<<<<<<< HEAD
$(intermediates)/bindings/V8DOMStringMap.h \
+=======
+ $(intermediates)/bindings/V8DeviceMotionEvent.h \
+>>>>>>> webkit.org at r65072
$(intermediates)/bindings/V8DeviceOrientationEvent.h \
$(intermediates)/bindings/V8Document.h \
$(intermediates)/bindings/V8DocumentFragment.h \
@@ -381,17 +385,20 @@ $(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/bindings/%.cpp : $(intermediates)
# Indexed Database
GEN := \
$(intermediates)/bindings/V8IDBAny.h \
+ $(intermediates)/bindings/V8IDBCursor.h \
$(intermediates)/bindings/V8IDBDatabaseError.h \
$(intermediates)/bindings/V8IDBDatabaseException.h \
- $(intermediates)/bindings/V8IDBDatabaseRequest.h \
+ $(intermediates)/bindings/V8IDBDatabase.h \
$(intermediates)/bindings/V8IDBErrorEvent.h \
$(intermediates)/bindings/V8IDBEvent.h \
$(intermediates)/bindings/V8IDBFactory.h \
$(intermediates)/bindings/V8IDBIndex.h \
$(intermediates)/bindings/V8IDBKey.h \
$(intermediates)/bindings/V8IDBKeyRange.h \
+ $(intermediates)/bindings/V8IDBObjectStore.h \
$(intermediates)/bindings/V8IDBRequest.h \
- $(intermediates)/bindings/V8IDBSuccessEvent.h
+ $(intermediates)/bindings/V8IDBSuccessEvent.h \
+ $(intermediates)/bindings/V8IDBTransaction.h
$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
$(GEN): PRIVATE_CUSTOM_TOOL = SOURCE_ROOT=$(PRIVATE_PATH) perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator V8 --include dom --include html --include storage --outputdir $(dir $@) $<
diff --git a/WebCore/Android.jscbindings.mk b/WebCore/Android.jscbindings.mk
index d904f64..04cea04 100644
--- a/WebCore/Android.jscbindings.mk
+++ b/WebCore/Android.jscbindings.mk
@@ -95,10 +95,14 @@ LOCAL_SRC_FILES += \
bindings/js/JSDOMWrapper.cpp \
bindings/js/JSDataGridColumnListCustom.cpp \
bindings/js/JSDataGridDataSource.cpp \
+<<<<<<< HEAD
bindings/js/JSDatabaseCustom.cpp \
bindings/js/JSDatabaseSyncCustom.cpp \
+=======
+>>>>>>> webkit.org at r65072
bindings/js/JSDedicatedWorkerContextCustom.cpp \
bindings/js/JSDesktopNotificationsCustom.cpp \
+ bindings/js/JSDeviceMotionEventCustom.cpp \
bindings/js/JSDeviceOrientationEventCustom.cpp \
bindings/js/JSDocumentCustom.cpp \
bindings/js/JSElementCustom.cpp \
@@ -177,6 +181,7 @@ LOCAL_SRC_FILES += \
bindings/js/ScriptEventListener.cpp \
bindings/js/ScriptFunctionCall.cpp \
bindings/js/ScriptObject.cpp \
+ bindings/js/ScriptProfile.cpp \
bindings/js/ScriptState.cpp \
bindings/js/ScriptValue.cpp \
bindings/js/SerializedScriptValue.cpp \
diff --git a/WebCore/Android.mk b/WebCore/Android.mk
index 3fe3988..2b627eb 100644
--- a/WebCore/Android.mk
+++ b/WebCore/Android.mk
@@ -99,6 +99,7 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
css/WebKitCSSTransformValue.cpp \
\
dom/ActiveDOMObject.cpp \
+ dom/AsyncScriptRunner.cpp \
dom/Attr.cpp \
dom/Attribute.cpp \
dom/BeforeTextInsertedEvent.cpp \
@@ -122,6 +123,9 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
dom/DOMStringMap.cpp \
dom/DatasetDOMStringMap.cpp \
dom/DecodedDataDocumentParser.cpp \
+ dom/DeviceMotionController.cpp \
+ dom/DeviceMotionData.cpp \
+ dom/DeviceMotionEvent.cpp \
dom/Document.cpp \
dom/DocumentFragment.cpp \
dom/DocumentParser.cpp \
@@ -160,7 +164,11 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
dom/DeviceOrientationEvent.cpp \
dom/OverflowEvent.cpp \
dom/PageTransitionEvent.cpp \
+<<<<<<< HEAD
dom/PopStateEvent.cpp \
+=======
+ dom/PendingScript.cpp \
+>>>>>>> webkit.org at r65072
dom/Position.cpp \
dom/PositionIterator.cpp \
dom/ProcessingInstruction.cpp \
@@ -304,7 +312,7 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
\
html/canvas/CanvasGradient.cpp \
html/canvas/CanvasNumberArray.cpp \
- html/canvas/CanvasObject.cpp \
+ html/canvas/WebGLObject.cpp \
html/canvas/CanvasPattern.cpp \
html/canvas/CanvasPixelArray.cpp \
html/canvas/CanvasRenderingContext.cpp \
@@ -809,21 +817,24 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
storage/DatabaseThread.cpp \
storage/DatabaseTracker.cpp \
storage/IDBAny.cpp \
- storage/IDBDatabaseImpl.cpp \
- storage/IDBDatabaseRequest.cpp \
+ storage/IDBCursor.cpp \
+ storage/IDBCursorBackendImpl.cpp \
+ storage/IDBDatabase.cpp \
+ storage/IDBDatabaseBackendImpl.cpp \
storage/IDBErrorEvent.cpp \
storage/IDBEvent.cpp \
+ storage/IDBFactory.cpp \
+ storage/IDBFactoryBackendInterface.cpp \
+ storage/IDBFactoryBackendImpl.cpp \
storage/IDBIndex.cpp \
storage/IDBIndexBackendImpl.cpp \
storage/IDBKey.cpp \
storage/IDBKeyRange.cpp \
- storage/IDBObjectStoreImpl.cpp \
- storage/IDBObjectStoreRequest.cpp \
+ storage/IDBObjectStore.cpp \
+ storage/IDBObjectStoreBackendImpl.cpp \
storage/IDBRequest.cpp \
storage/IDBSuccessEvent.cpp \
- storage/IDBFactory.cpp \
- storage/IDBFactoryBackendInterface.cpp \
- storage/IDBFactoryBackendImpl.cpp \
+ storage/IDBTransaction.cpp \
storage/LocalStorageTask.cpp \
storage/LocalStorageThread.cpp \
storage/OriginQuotaManager.cpp \
@@ -931,8 +942,12 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
svg/SVGPaint.cpp \
svg/SVGParserUtilities.cpp \
svg/SVGPathBuilder.cpp \
+ svg/SVGPathByteStreamBuilder.cpp \
+ svg/SVGPathByteStreamSource.cpp \
svg/SVGPathElement.cpp \
svg/SVGPathParser.cpp \
+ svg/SVGPathParserFactory.cpp \
+ svg/SVGPathSeg.cpp \
svg/SVGPathSegArc.cpp \
svg/SVGPathSegClosePath.cpp \
svg/SVGPathSegCurvetoCubic.cpp \
@@ -944,7 +959,10 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
svg/SVGPathSegLinetoVertical.cpp \
svg/SVGPathSegList.cpp \
svg/SVGPathSegListBuilder.cpp \
+ svg/SVGPathSegListSource.cpp \
svg/SVGPathSegMoveto.cpp \
+ svg/SVGPathStringBuilder.cpp \
+ svg/SVGPathStringSource.cpp \
svg/SVGPatternElement.cpp \
svg/SVGPointList.cpp \
svg/SVGPolyElement.cpp \
diff --git a/WebCore/Android.v8bindings.mk b/WebCore/Android.v8bindings.mk
index f198621..4291276 100644
--- a/WebCore/Android.v8bindings.mk
+++ b/WebCore/Android.v8bindings.mk
@@ -114,9 +114,14 @@ LOCAL_SRC_FILES += \
bindings/v8/custom/V8DOMFormDataCustom.cpp \
bindings/v8/custom/V8DOMWindowCustom.cpp \
bindings/v8/custom/V8DataGridColumnListCustom.cpp \
+<<<<<<< HEAD
bindings/v8/custom/V8DatabaseCustom.cpp \
bindings/v8/custom/V8DatabaseSyncCustom.cpp \
+=======
+ bindings/v8/custom/V8DatabaseCallback.cpp \
+>>>>>>> webkit.org at r65072
bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp \
+ bindings/v8/custom/V8DeviceMotionEventCustom.cpp \
bindings/v8/custom/V8DeviceOrientationEventCustom.cpp \
bindings/v8/custom/V8DocumentCustom.cpp \
bindings/v8/custom/V8DocumentLocationCustom.cpp \
diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
index e0a64af..0d4625c 100644
--- a/WebCore/CMakeLists.txt
+++ b/WebCore/CMakeLists.txt
@@ -73,6 +73,7 @@ SET(WebCore_INCLUDE_DIRECTORIES
)
SET(WebCore_IDL_INCLUDES
+ bindings/generic
bindings/js
css
dom
@@ -143,6 +144,7 @@ SET(WebCore_IDL_FILES
dom/Comment.idl
dom/CompositionEvent.idl
dom/CustomEvent.idl
+ dom/DeviceMotionEvent.idl
dom/DeviceOrientationEvent.idl
dom/DocumentFragment.idl
dom/Document.idl
@@ -333,18 +335,20 @@ SET(WebCore_IDL_FILES
storage/DatabaseCallback.idl
storage/DatabaseSync.idl
storage/IDBAny.idl
+ storage/IDBCursor.idl
storage/IDBDatabaseError.idl
storage/IDBDatabaseException.idl
- storage/IDBDatabaseRequest.idl
+ storage/IDBDatabase.idl
storage/IDBErrorEvent.idl
storage/IDBEvent.idl
storage/IDBFactory.idl
storage/IDBIndex.idl
storage/IDBKey.idl
storage/IDBKeyRange.idl
- storage/IDBObjectStoreRequest.idl
+ storage/IDBObjectStore.idl
storage/IDBRequest.idl
storage/IDBSuccessEvent.idl
+ storage/IDBTransaction.idl
storage/SQLError.idl
storage/SQLException.idl
storage/SQLResultSet.idl
@@ -561,6 +565,7 @@ SET(WebCore_SOURCES
bindings/ScriptControllerBase.cpp
+ bindings/generic/ActiveDOMCallback.cpp
bindings/generic/RuntimeEnabledFeatures.cpp
bindings/js/DOMObjectHashTableMap.cpp
@@ -585,13 +590,11 @@ SET(WebCore_SOURCES
bindings/js/JSCustomSQLStatementErrorCallback.cpp
bindings/js/JSCustomVoidCallback.cpp
bindings/js/JSCustomXPathNSResolver.cpp
- bindings/js/JSDatabaseCustom.cpp
- bindings/js/JSDatabaseCustom.cpp
- bindings/js/JSDatabaseSyncCustom.cpp
bindings/js/JSDataGridColumnListCustom.cpp
bindings/js/JSDataGridDataSource.cpp
bindings/js/JSDebugWrapperSet.cpp
bindings/js/JSDedicatedWorkerContextCustom.cpp
+ bindings/js/JSDeviceMotionEventCustom.cpp
bindings/js/JSDeviceOrientationEventCustom.cpp
bindings/js/JSDocumentCustom.cpp
bindings/js/JSDOMApplicationCacheCustom.cpp
@@ -672,7 +675,6 @@ SET(WebCore_SOURCES
bindings/js/JSXMLHttpRequestUploadCustom.cpp
bindings/js/JSXSLTProcessorCustom.cpp
bindings/js/ScheduledAction.cpp
- bindings/js/ScriptArray.cpp
bindings/js/ScriptCachedFrameData.cpp
bindings/js/ScriptCallFrame.cpp
bindings/js/ScriptCallStack.cpp
@@ -682,6 +684,7 @@ SET(WebCore_SOURCES
bindings/js/ScriptFunctionCall.cpp
bindings/js/ScriptGCEvent.cpp
bindings/js/ScriptObject.cpp
+ bindings/js/ScriptProfile.cpp
bindings/js/ScriptProfiler.cpp
bindings/js/ScriptState.cpp
bindings/js/ScriptValue.cpp
@@ -767,6 +770,7 @@ SET(WebCore_SOURCES
css/WebKitCSSTransformValue.cpp
dom/ActiveDOMObject.cpp
+ dom/AsyncScriptRunner.cpp
dom/Attr.cpp
dom/Attribute.cpp
dom/BeforeTextInsertedEvent.cpp
@@ -787,6 +791,9 @@ SET(WebCore_SOURCES
dom/CustomEvent.cpp
dom/DatasetDOMStringMap.cpp
dom/DecodedDataDocumentParser.cpp
+ dom/DeviceMotionController.cpp
+ dom/DeviceMotionData.cpp
+ dom/DeviceMotionEvent.cpp
dom/DeviceOrientation.cpp
dom/DeviceOrientationController.cpp
dom/DeviceOrientationEvent.cpp
@@ -828,6 +835,7 @@ SET(WebCore_SOURCES
dom/OptionGroupElement.cpp
dom/OverflowEvent.cpp
dom/PageTransitionEvent.cpp
+ dom/PendingScript.cpp
dom/PopStateEvent.cpp
dom/Position.cpp
dom/PositionIterator.cpp
@@ -1049,11 +1057,12 @@ SET(WebCore_SOURCES
inspector/InspectorDOMAgent.cpp
inspector/InspectorDOMStorageResource.cpp
inspector/InspectorDatabaseResource.cpp
- inspector/InspectorFrontend.cpp
+ inspector/InspectorDebuggerAgent.cpp
inspector/InspectorFrontendClientLocal.cpp
inspector/InspectorFrontendHost.cpp
inspector/InspectorResource.cpp
inspector/InspectorValues.cpp
+ inspector/InspectorStorageAgent.cpp
inspector/InspectorTimelineAgent.cpp
inspector/ScriptBreakpoint.cpp
inspector/TimelineRecordFactory.cpp
@@ -1126,6 +1135,7 @@ SET(WebCore_SOURCES
mathml/MathMLMathElement.cpp
mathml/MathMLTextElement.cpp
mathml/RenderMathMLBlock.cpp
+ mathml/RenderMathMLFenced.cpp
mathml/RenderMathMLFraction.cpp
mathml/RenderMathMLMath.cpp
mathml/RenderMathMLOperator.cpp
@@ -1434,8 +1444,10 @@ SET(WebCore_SOURCES
storage/DatabaseThread.cpp
storage/DatabaseTracker.cpp
storage/IDBAny.cpp
- storage/IDBDatabaseImpl.cpp
- storage/IDBDatabaseRequest.cpp
+ storage/IDBDatabase.cpp
+ storage/IDBDatabaseBackendImpl.cpp
+ storage/IDBCursor.cpp
+ storage/IDBCursorBackendImpl.cpp
storage/IDBErrorEvent.cpp
storage/IDBEvent.cpp
storage/IDBIndex.cpp
@@ -1443,8 +1455,8 @@ SET(WebCore_SOURCES
storage/IDBKey.cpp
storage/IDBKeyRange.cpp
storage/IDBRequest.cpp
- storage/IDBObjectStoreImpl.cpp
- storage/IDBObjectStoreRequest.cpp
+ storage/IDBObjectStore.cpp
+ storage/IDBObjectStoreBackendImpl.cpp
storage/IDBSuccessEvent.cpp
storage/IDBFactory.cpp
storage/IDBFactoryBackendInterface.cpp
@@ -1665,8 +1677,12 @@ IF (ENABLE_SVG)
svg/SVGPaint.cpp
svg/SVGParserUtilities.cpp
svg/SVGPathBuilder.cpp
+ svg/SVGPathByteStreamBuilder.cpp
+ svg/SVGPathByteStreamSource.cpp
svg/SVGPathElement.cpp
svg/SVGPathParser.cpp
+ svg/SVGPathParserFactory.cpp
+ svg/SVGPathSeg.cpp
svg/SVGPathSegArc.cpp
svg/SVGPathSegClosePath.cpp
svg/SVGPathSegCurvetoCubic.cpp
@@ -1678,7 +1694,10 @@ IF (ENABLE_SVG)
svg/SVGPathSegLinetoVertical.cpp
svg/SVGPathSegList.cpp
svg/SVGPathSegListBuilder.cpp
+ svg/SVGPathSegListSource.cpp
svg/SVGPathSegMoveto.cpp
+ svg/SVGPathStringBuilder.cpp
+ svg/SVGPathStringSource.cpp
svg/SVGPatternElement.cpp
svg/SVGPointList.cpp
svg/SVGPolyElement.cpp
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index aac8d9f..85e6aa8 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,6492 @@
+2010-08-10 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: move database processing to native layer.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43788
+
+ * English.lproj/localizedStrings.js:
+ * WebCore.gypi:
+ * bindings/js/JSInjectedScriptHostCustom.cpp:
+ * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/InjectedScript.cpp:
+ (WebCore::InjectedScript::dispatch):
+ * inspector/InjectedScript.h:
+ * inspector/InjectedScriptHost.cpp:
+ * inspector/InjectedScriptHost.h:
+ * inspector/InjectedScriptHost.idl:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBackend.cpp:
+ (WebCore::InspectorBackend::dispatchOnInjectedScript):
+ (WebCore::InspectorBackend::executeSQL):
+ * inspector/InspectorBackend.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::connectFrontend):
+ (WebCore::InspectorController::releaseFrontendLifetimeAgents):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDebuggerAgent.h:
+ * inspector/InspectorStorageAgent.cpp: Added.
+ (WebCore::):
+ (WebCore::InspectorStorageAgent::InspectorStorageAgent):
+ (WebCore::InspectorStorageAgent::~InspectorStorageAgent):
+ (WebCore::InspectorStorageAgent::executeSQL):
+ (WebCore::InspectorStorageAgent::clearFrontend):
+ * inspector/InspectorStorageAgent.h: Added.
+ (WebCore::InspectorStorageAgent::create):
+ (WebCore::InspectorStorageAgent::frontend):
+ * inspector/front-end/Database.js:
+ (WebInspector.Database.prototype.executeSql):
+ (WebInspector.sqlTransactionSucceeded):
+ (WebInspector.sqlTransactionFailed):
+ * inspector/front-end/DatabaseQueryView.js:
+ (WebInspector.DatabaseQueryView.prototype._queryFinished):
+ (WebInspector.DatabaseQueryView.prototype._queryError):
+ * inspector/front-end/DatabaseTableView.js:
+ (WebInspector.DatabaseTableView.prototype._queryFinished):
+ * inspector/front-end/InjectedScript.js:
+ * inspector/front-end/InjectedScriptAccess.js:
+ (InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
+ (InjectedScriptAccess._installHandler):
+ * inspector/front-end/StoragePanel.js:
+ (WebInspector.StoragePanel.prototype.dataGridForResult):
+
+2010-08-10 Steve Block <steveblock@google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ [V8] DeviceMotionEvent can not be used from JavaScript
+ https://bugs.webkit.org/show_bug.cgi?id=43785
+
+ This is tested by the existing tests fast/dom/DeviceMotion/create-event.html
+ and fast/dom/DeviceMotion/optional-event-properties.html.
+
+ * bindings/v8/custom/V8EventCustom.cpp:
+ (WebCore::toV8):
+
+2010-08-10 Balazs Kelemen <kb@inf.u-szeged.hu>
+
+ Reviewed by Antonio Gomes.
+
+ [Qt] Build WebKit2 into a static lib
+
+ https://bugs.webkit.org/show_bug.cgi?id=43621
+
+ Just build changes so no new tests.
+
+ * WebCore.pri: Moved feature detection logic into features.pri since we need this in WebKit2.pro as well.
+ * WebCore.pro: Moved the specification of the WebKit2 build to WebKit2.pro. Link against the static lib.
+ * features.pri: Added.
+
+2010-08-10 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector, Chromium: reloading of inspected page hits assert in InspectorController::enableDebuggerFromFrontend()
+ https://bugs.webkit.org/show_bug.cgi?id=43780
+
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ * inspector/InspectorController.h:
+ (WebCore::InspectorController::hasFrontend):
+ * inspector/InspectorDebuggerAgent.cpp:
+ (WebCore::InspectorDebuggerAgent::create):
+ (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
+ (WebCore::InspectorDebuggerAgent::setPauseOnExceptionsState):
+ (WebCore::InspectorDebuggerAgent::didParseSource):
+ (WebCore::InspectorDebuggerAgent::failedToParseSource):
+ (WebCore::InspectorDebuggerAgent::didPause):
+ (WebCore::InspectorDebuggerAgent::didContinue):
+ * inspector/InspectorDebuggerAgent.h:
+
+2010-08-10 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ Make sure NPAPI plugins get an initial setNPWindow on Mac
+
+ https://bugs.webkit.org/show_bug.cgi?id=43782
+
+ * plugins/mac/PluginViewMac.mm:
+
+2010-08-10 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Use SVGPathParser to create SVG paths and to perform path animations
+ https://bugs.webkit.org/show_bug.cgi?id=43696
+
+ Removed toString() functions in all SVGPathSeg* objects as well as toPath() in SVGPathSegList.
+ These hacks were used to create a SVG path data string or a platform path from a SVGPathSegList.
+ Use the new SVGPathParser instead.
+
+ Doesn't affect any tests.
+
+ * svg/SVGAnimateElement.cpp:
+ (WebCore::SVGAnimateElement::applyResultsToTarget):
+ * svg/SVGPathElement.cpp:
+ (WebCore::SVGPathElement::toPathData):
+ * svg/SVGPathParserFactory.cpp:
+ (WebCore::SVGPathParserFactory::buildPathFromSVGPathSegList):
+ (WebCore::SVGPathParserFactory::buildStringFromByteStream):
+ (WebCore::SVGPathParserFactory::buildStringFromSVGPathSegList):
+ * svg/SVGPathParserFactory.h:
+ * svg/SVGPathSeg.cpp:
+ * svg/SVGPathSeg.h:
+ * svg/SVGPathSegArc.cpp:
+ * svg/SVGPathSegArc.h:
+ * svg/SVGPathSegClosePath.h:
+ (WebCore::SVGPathSegClosePath::pathSegTypeAsLetter):
+ * svg/SVGPathSegCurvetoCubic.h:
+ * svg/SVGPathSegCurvetoCubicSmooth.h:
+ * svg/SVGPathSegCurvetoQuadratic.h:
+ * svg/SVGPathSegLinetoHorizontal.h:
+ * svg/SVGPathSegLinetoVertical.h:
+ * svg/SVGPathSegList.cpp:
+ (WebCore::SVGPathSegList::getPathSegAtLength):
+ * svg/SVGPathSegList.h:
+
+2010-08-10 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r65056.
+ http://trac.webkit.org/changeset/65056
+ https://bugs.webkit.org/show_bug.cgi?id=43773
+
+ "Clearly I missed something. I'm too tired to try and fix
+ now. Will re-land in the morning." (Requested by eseidel on
+ #webkit).
+
+ * html/HTMLConstructionSite.cpp:
+ (WebCore::HTMLConstructionSite::attach):
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::insertAdjacentHTML):
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::processEndTagForInCell):
+
+2010-08-10 Yoshiki Hayashi <yhayashi@google.com>
+
+ Reviewed by Kent Tamura.
+
+ Iterate over :first-letter so that it will be included in innerText.
+ https://bugs.webkit.org/show_bug.cgi?id=39863
+
+ Test: fast/dom/inner-text-first-letter.html
+
+ * editing/TextIterator.cpp:
+ (WebCore::TextIterator::TextIterator):
+ (WebCore::TextIterator::advance):
+ (WebCore::TextIterator::handleTextNode):
+ (WebCore::TextIterator::handleTextBox):
+ (WebCore::TextIterator::emitText):
+ * editing/TextIterator.h:
+
+2010-08-10 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Fix crashes by SelectionController::modify().
+ https://bugs.webkit.org/show_bug.cgi?id=43032
+
+ Test: editing/selection/selection-modify-crash.html
+
+ * editing/visible_units.cpp:
+ (WebCore::endOfDocument): Add NULL-check for document()->documentElement().
+
+2010-08-10 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Add missing SVGPathSegList source for SVGPathParser
+ https://bugs.webkit.org/show_bug.cgi?id=43691
+
+ Added SVGPathSegListSource to parse normalized or unaltered SVGPathSegLists and transform
+ them to either a SVG path string, or a SVGPathByteStream. This will be needed to synchronize
+ all SVGPathSegLists and the SVG path string of the 'd' attribute.
+ Refactored SVGPathSource code, to read concrete path segments instead of type/flag/coordinates
+ from the data sources. This is a further abstraction and seperates the reading of content from
+ the parsing and interpreting.
+
+ Doesn't affect any tests.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * svg/SVGAllInOne.cpp:
+ * svg/SVGPathByteStreamSource.cpp:
+ (WebCore::SVGPathByteStreamSource::parseSVGSegmentType):
+ (WebCore::SVGPathByteStreamSource::nextCommand):
+ (WebCore::SVGPathByteStreamSource::parseMoveToSegment):
+ (WebCore::SVGPathByteStreamSource::parseLineToSegment):
+ (WebCore::SVGPathByteStreamSource::parseLineToHorizontalSegment):
+ (WebCore::SVGPathByteStreamSource::parseLineToVerticalSegment):
+ (WebCore::SVGPathByteStreamSource::parseCurveToCubicSegment):
+ (WebCore::SVGPathByteStreamSource::parseCurveToCubicSmoothSegment):
+ (WebCore::SVGPathByteStreamSource::parseCurveToQuadraticSegment):
+ (WebCore::SVGPathByteStreamSource::parseCurveToQuadraticSmoothSegment):
+ (WebCore::SVGPathByteStreamSource::parseArcToSegment):
+ * svg/SVGPathByteStreamSource.h:
+ (WebCore::SVGPathByteStreamSource::moveToNextToken):
+ * svg/SVGPathParser.cpp:
+ (WebCore::SVGPathParser::parseMoveToSegment):
+ (WebCore::SVGPathParser::parseLineToSegment):
+ (WebCore::SVGPathParser::parseLineToHorizontalSegment):
+ (WebCore::SVGPathParser::parseLineToVerticalSegment):
+ (WebCore::SVGPathParser::parseCurveToCubicSegment):
+ (WebCore::SVGPathParser::parseCurveToCubicSmoothSegment):
+ (WebCore::SVGPathParser::parseCurveToQuadraticSegment):
+ (WebCore::SVGPathParser::parseCurveToQuadraticSmoothSegment):
+ (WebCore::SVGPathParser::parseArcToSegment):
+ * svg/SVGPathSegListSource.cpp: Added.
+ (WebCore::SVGPathSegListSource::SVGPathSegListSource):
+ (WebCore::SVGPathSegListSource::~SVGPathSegListSource):
+ (WebCore::SVGPathSegListSource::hasMoreData):
+ (WebCore::SVGPathSegListSource::parseSVGSegmentType):
+ (WebCore::SVGPathSegListSource::nextCommand):
+ (WebCore::SVGPathSegListSource::parseMoveToSegment):
+ (WebCore::SVGPathSegListSource::parseLineToSegment):
+ (WebCore::SVGPathSegListSource::parseLineToHorizontalSegment):
+ (WebCore::SVGPathSegListSource::parseLineToVerticalSegment):
+ (WebCore::SVGPathSegListSource::parseCurveToCubicSegment):
+ (WebCore::SVGPathSegListSource::parseCurveToCubicSmoothSegment):
+ (WebCore::SVGPathSegListSource::parseCurveToQuadraticSegment):
+ (WebCore::SVGPathSegListSource::parseCurveToQuadraticSmoothSegment):
+ (WebCore::SVGPathSegListSource::parseArcToSegment):
+ * svg/SVGPathSegListSource.h: Added.
+ (WebCore::SVGPathSegListSource::create):
+ (WebCore::SVGPathSegListSource::moveToNextToken):
+ * svg/SVGPathSource.h:
+ * svg/SVGPathStringSource.cpp:
+ (WebCore::SVGPathStringSource::parseMoveToSegment):
+ (WebCore::SVGPathStringSource::parseLineToSegment):
+ (WebCore::SVGPathStringSource::parseLineToHorizontalSegment):
+ (WebCore::SVGPathStringSource::parseLineToVerticalSegment):
+ (WebCore::SVGPathStringSource::parseCurveToCubicSegment):
+ (WebCore::SVGPathStringSource::parseCurveToCubicSmoothSegment):
+ (WebCore::SVGPathStringSource::parseCurveToQuadraticSegment):
+ (WebCore::SVGPathStringSource::parseCurveToQuadraticSmoothSegment):
+ (WebCore::SVGPathStringSource::parseArcToSegment):
+ * svg/SVGPathStringSource.h:
+
+2010-08-09 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: small refactoring for CodeGeneratorInspector.
+ A number of push calls were replaced by embedded text.
+ Just for improve code readability.
+ https://bugs.webkit.org/show_bug.cgi?id=43770
+
+ * inspector/CodeGeneratorInspector.pm:
+
+2010-08-09 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Adam Barth.
+
+ Fix three ASSERTs hit with the HTML5 TreeBuilder in fragment mode
+ https://bugs.webkit.org/show_bug.cgi?id=43762
+
+ In fixing the insertAdjacentHTML I had to make small changes to
+ the error logic, which ended up bringing us closer to HTML5.
+
+ Test: fast/dom/HTMLElement/insertAdjacentHTML-errors.html
+
+ * html/HTMLConstructionSite.cpp:
+ (WebCore::HTMLConstructionSite::attach):
+ - This ASSERT was just wrong, the child should not be attached
+ in the case the parent is not attached.
+ * html/HTMLElement.cpp:
+ (WebCore::contextElementForInsertion):
+ - This is part of HTML5, needed to know what to call the
+ HTML or XML parsers with. The previous code always passed
+ "this" which is wrong in the case of beforeBegin or afterEnd insertion.
+ (WebCore::HTMLElement::insertAdjacentHTML):
+ - Use the right contextElement now that we know how to compute it.
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::processEndTagForInCell):
+ - This ASSERT is direct from the spec, but it's wrong, so I've filed a spec bug.
+
+2010-08-09 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: remove InspectorFrontend class and use RemoteInspectorFrontend instead.
+ https://bugs.webkit.org/show_bug.cgi?id=43726
+
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::connectFrontend):
+ (WebCore::InspectorController::close):
+ (WebCore::InspectorController::disconnectFrontend):
+ * inspector/InspectorController.h:
+ * inspector/InspectorFrontend.cpp: Removed.
+ * inspector/InspectorFrontend.h: Removed.
+
+2010-08-09 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: Remove obsolete JS wrappers for did* methods.
+ https://bugs.webkit.org/show_bug.cgi?id=43738
+
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/front-end/BreakpointManager.js:
+ * inspector/front-end/Callback.js:
+ * inspector/front-end/ConsoleView.js:
+ * inspector/front-end/DOMAgent.js:
+ * inspector/front-end/DOMStorage.js:
+ * inspector/front-end/Database.js:
+ * inspector/front-end/InjectedScriptAccess.js:
+ * inspector/front-end/ProfilesPanel.js:
+ * inspector/front-end/ResourcesPanel.js:
+ * inspector/front-end/ScriptView.js:
+ * inspector/front-end/ScriptsPanel.js:
+ * inspector/front-end/inspector.js:
+ (WebInspector.reportProtocolError):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Qt build fix attempt VIII.
+
+ * dom/QualifiedName.cpp:
+ (WebCore::QualifiedName::toString):
+ * dom/XMLDocumentParserQt.cpp:
+ (WebCore::handleElementNamespaces):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Qt build fix attempt VII.
+
+ * dom/QualifiedName.cpp:
+ (WebCore::QualifiedName::toString):
+ * dom/XMLDocumentParserQt.cpp:
+ (WebCore::handleElementNamespaces):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Qt build fix attempt VI.
+
+ * dom/QualifiedName.cpp:
+ (WebCore::QualifiedName::toString):
+ * dom/XMLDocumentParserQt.cpp:
+ (WebCore::handleElementNamespaces):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Qt build fix attempt V.
+
+ * dom/QualifiedName.cpp:
+ (WebCore::QualifiedName::toString):
+ * dom/XMLDocumentParserQt.cpp:
+ (WebCore::handleElementNamespaces):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Qt build fix attempt IV.
+
+ * css/CSSSelector.cpp:
+ (WebCore::CSSSelector::selectorText):
+ * dom/QualifiedName.cpp:
+ (WebCore::QualifiedName::toString):
+ * dom/XMLDocumentParserQt.cpp:
+ (WebCore::handleElementNamespaces):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative chromium build fix.
+
+ * platform/graphics/chromium/FontCacheChromiumWin.cpp:
+ (WebCore::charactersAreAllASCII):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Qt build fix III.
+
+ * css/CSSSelector.cpp:
+
+2010-08-09 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Remove error-prone external SegementedSubstring contructor
+ https://bugs.webkit.org/show_bug.cgi?id=43752
+
+ There's a lot of code that assumes that SegmentedString takes ownership
+ of its substrings. For example, when the HTML parser pauses and
+ resumes asynchronously, it could explode if SegmentedString didn't own
+ its substrings.
+
+ Prior to this patch, there was a constructor that let
+ SegmentedSubstring use an external string buffer. It turns out it was
+ only used in a handful of places, but I'd rather pay the memcpy of
+ these small strings than risk having them used after free.
+
+ * bindings/js/JSHTMLDocumentCustom.cpp:
+ (WebCore::documentWrite):
+ * html/LegacyHTMLDocumentParser.cpp:
+ (WebCore::LegacyHTMLDocumentParser::parseNonHTMLText):
+ (WebCore::LegacyHTMLDocumentParser::scriptHandler):
+ (WebCore::LegacyHTMLDocumentParser::parseComment):
+ * platform/text/SegmentedString.h:
+ (WebCore::SegmentedString::SegmentedString):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative Qt build fix.
+
+ * css/CSSSelector.cpp:
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative gtk build fix.
+
+ * plugins/gtk/PluginViewGtk.cpp:
+ (WebCore::PluginView::handlePostReadFile):
+
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * accessibility/AXObjectCache.h:
+ * accessibility/AccessibilityARIAGrid.h:
+ * accessibility/AccessibilityListBoxOption.h:
+ * accessibility/AccessibilityObject.h:
+ * accessibility/AccessibilityRenderObject.h:
+ * accessibility/AccessibilityTable.h:
+ * bindings/cpp/WebDOMCString.h:
+ * bindings/cpp/WebDOMString.h:
+ * bindings/gobject/ConvertToUTF8String.h:
+ * bindings/js/DOMWrapperWorld.h:
+ * bindings/js/JSDOMBinding.h:
+ * bindings/js/JSDOMWindowBase.h:
+ * bindings/js/JSMessagePortCustom.h:
+ * bindings/js/JavaScriptCallFrame.h:
+ * bindings/js/ScriptController.h:
+ * bindings/js/ScriptProfile.h:
+ * bindings/js/ScriptSourceProvider.h:
+ * bindings/js/ScriptString.h:
+ * bindings/js/WorkerScriptController.h:
+ * bindings/objc/DOMImplementationFront.h:
+ * bindings/v8/ScheduledAction.h:
+ * bindings/v8/ScriptController.h:
+ * bindings/v8/V8DOMWindowShell.h:
+ * bindings/v8/V8Proxy.h:
+ * bindings/v8/V8Utilities.h:
+ * bindings/v8/custom/V8CustomXPathNSResolver.h:
+ * bridge/c/c_utility.h:
+ * css/CSSFontSelector.h:
+ * css/CSSHelper.h:
+ * css/CSSOMUtils.h:
+ * css/CSSPrimitiveValue.h:
+ * css/MediaList.h:
+ * css/StyleBase.h:
+ * css/StyleSheetList.h:
+ * css/WebKitCSSKeyframesRule.h:
+ * dom/CheckedRadioButtons.h:
+ * dom/DOMImplementation.h:
+ * dom/DocumentMarker.h:
+ * dom/DynamicNodeList.h:
+ * dom/EventTarget.h:
+ * dom/MessagePort.h:
+ * dom/MessagePortChannel.h:
+ * dom/NameNodeList.h:
+ * dom/Node.h:
+ * dom/NodeList.h:
+ * dom/OptionGroupElement.h:
+ * dom/ScriptExecutionContext.h:
+ * dom/SelectElement.h:
+ * dom/ViewportArguments.h:
+ * dom/make_names.pl:
+ * editing/HTMLInterchange.h:
+ * editing/htmlediting.h:
+ * editing/markup.h:
+ * html/CollectionCache.h:
+ * html/DOMFormData.h:
+ * html/DataGridColumnList.h:
+ * html/DateComponents.h:
+ * html/FileStream.h:
+ * html/FileStreamProxy.h:
+ * html/FormDataList.h:
+ (WebCore::FormDataList::appendData):
+ * html/HTMLCollection.h:
+ * html/HTMLElementStack.h:
+ * html/HTMLFormattingElementList.h:
+ * html/HTMLParserQuirks.h:
+ * html/HTMLQuoteElement.h:
+ * html/HTMLScriptRunnerHost.h:
+ * html/StepRange.h:
+ * html/canvas/CanvasGradient.h:
+ * html/canvas/CanvasNumberArray.h:
+ * html/canvas/CanvasPattern.h:
+ * inspector/InjectedScript.h:
+ * inspector/InspectorCSSStore.h:
+ * inspector/InspectorClient.h:
+ * inspector/InspectorFrontendClient.h:
+ * inspector/InspectorValues.h:
+ * inspector/ScriptDebugListener.h:
+ * loader/CachedResourceClient.h:
+ * loader/CrossOriginAccessControl.h:
+ * loader/DocumentThreadableLoader.h:
+ * loader/FrameLoaderClient.h:
+ * loader/RedirectScheduler.h:
+ * loader/SubframeLoader.h:
+ * loader/appcache/DOMApplicationCache.h:
+ * loader/archive/ArchiveFactory.h:
+ * loader/icon/IconDatabaseClient.h:
+ * notifications/NotificationPresenter.h:
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+ * page/Console.h:
+ * page/ContextMenuClient.h:
+ * page/DOMSelection.h:
+ * page/EditorClient.h:
+ * page/EventHandler.h:
+ * page/FrameView.h:
+ * page/GeolocationPositionCache.h:
+ * page/History.h:
+ * page/Location.h:
+ * page/Navigator.h:
+ * page/NavigatorBase.h:
+ * page/PluginHalterClient.h:
+ * page/PrintContext.h:
+ * page/SpeechInput.h:
+ * page/SpeechInputListener.h:
+ * page/animation/AnimationController.h:
+ * platform/CookieJar.h:
+ * platform/CrossThreadCopier.h:
+ * platform/DragImage.h:
+ * platform/FileSystem.h:
+ * platform/Language.h:
+ * platform/Length.h:
+ * platform/LinkHash.h:
+ * platform/LocalizationStrategy.h:
+ * platform/LocalizedStrings.h:
+ * platform/Logging.h:
+ * platform/Pasteboard.h:
+ * platform/PopupMenuClient.h:
+ * platform/SearchPopupMenu.h:
+ * platform/Widget.h:
+ * platform/cf/BinaryPropertyList.h:
+ * platform/chromium/ChromiumBridge.h:
+ * platform/chromium/ClipboardUtilitiesChromium.h:
+ * platform/cocoa/KeyEventCocoa.h:
+ * platform/graphics/Color.h:
+ * platform/graphics/FontCache.h:
+ * platform/graphics/FontData.h:
+ * platform/graphics/FontSelector.h:
+ * platform/graphics/GraphicsTypes.h:
+ * platform/graphics/Icon.h:
+ * platform/graphics/ImageBuffer.h:
+ * platform/graphics/ImageSource.h:
+ * platform/graphics/MediaPlayer.h:
+ * platform/graphics/MediaPlayerPrivate.h:
+ * platform/graphics/Path.h:
+ * platform/graphics/StringTruncator.h:
+ * platform/graphics/cairo/FontCustomPlatformData.h:
+ * platform/graphics/cairo/FontPlatformData.h:
+ * platform/graphics/cg/FontPlatformData.h:
+ * platform/graphics/cg/ImageSourceCG.h:
+ * platform/graphics/chromium/FontCustomPlatformData.h:
+ * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
+ * platform/graphics/chromium/FontPlatformDataLinux.h:
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ * platform/graphics/haiku/FontCustomPlatformData.h:
+ * platform/graphics/mac/FontCustomPlatformData.h:
+ * platform/graphics/mac/FontPlatformData.h:
+ * platform/graphics/qt/FontCustomPlatformData.h:
+ * platform/graphics/qt/FontPlatformData.h:
+ * platform/graphics/win/FontCustomPlatformData.h:
+ * platform/graphics/win/FontCustomPlatformDataCairo.h:
+ * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
+ * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
+ * platform/graphics/wince/FontPlatformData.h:
+ * platform/graphics/wince/MediaPlayerPrivateWince.h:
+ * platform/graphics/wince/MediaPlayerProxy.h:
+ * platform/graphics/wx/FontCustomPlatformData.h:
+ * platform/graphics/wx/FontPlatformData.h:
+ * platform/mac/PasteboardHelper.h:
+ * platform/network/DNS.h:
+ * platform/network/FormData.h:
+ * platform/network/FormDataBuilder.h:
+ * platform/network/HTTPParsers.h:
+ * platform/text/Hyphenation.h:
+ * platform/text/LineEnding.h:
+ * platform/text/TextCodec.h:
+ * platform/text/TextEncoding.h:
+ * platform/text/TextStream.h:
+ * platform/win/BString.h:
+ * platform/win/ClipboardUtilitiesWin.h:
+ * platform/win/WCDataObject.h:
+ * platform/win/WebCoreTextRenderer.h:
+ * plugins/DOMMimeType.h:
+ * plugins/DOMMimeTypeArray.h:
+ * plugins/DOMPlugin.h:
+ * plugins/DOMPluginArray.h:
+ * rendering/CounterNode.h:
+ * rendering/HitTestResult.h:
+ * rendering/RenderObjectChildList.h:
+ * rendering/RenderText.h:
+ * rendering/RenderTreeAsText.h:
+ * rendering/TextControlInnerElements.h:
+ * rendering/style/ContentData.h:
+ * rendering/style/RenderStyle.h:
+ * storage/DatabaseAuthorizer.h:
+ * storage/DatabaseTrackerClient.h:
+ * storage/SQLTransaction.h:
+ * storage/SQLTransactionSync.h:
+ * storage/Storage.h:
+ * storage/chromium/DatabaseObserver.h:
+ * svg/SVGAnimatedTemplate.h:
+ * svg/SVGDocumentExtensions.h:
+ * svg/SVGGlyphElement.h:
+ * svg/SVGHKernElement.h:
+ * svg/SVGNumberList.h:
+ * svg/SVGPointList.h:
+ * svg/SVGPreserveAspectRatio.h:
+ * svg/SVGStylable.h:
+ * svg/SVGTests.h:
+ * svg/SVGTransformList.h:
+ * svg/SVGTransformable.h:
+ * svg/SVGVKernElement.h:
+ * websockets/ThreadableWebSocketChannel.h:
+ * websockets/ThreadableWebSocketChannelClientWrapper.h:
+ * websockets/WebSocket.h:
+ * websockets/WebSocketChannel.h:
+ * websockets/WebSocketHandshakeResponse.h:
+ * wml/WMLErrorHandling.h:
+ * wml/WMLPageState.h:
+ * wml/WMLVariables.h:
+ * workers/DefaultSharedWorkerRepository.h:
+ * workers/SharedWorkerRepository.h:
+ * workers/Worker.h:
+ * workers/WorkerContextProxy.h:
+ * workers/WorkerLoaderProxy.h:
+ * workers/WorkerLocation.h:
+ * workers/WorkerMessagingProxy.h:
+ * workers/WorkerReportingProxy.h:
+ * workers/WorkerThread.h:
+ * xml/DOMParser.h:
+ * xml/XMLHttpRequestUpload.h:
+ * xml/XPathEvaluator.h:
+ * xml/XPathExpression.h:
+ * xml/XPathNSResolver.h:
+ * xml/XPathResult.h:
+ * xml/XPathUtil.h:
+
+2010-08-09 Nat Duca <nduca@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] Blue line visible at the right hand side of the window with accelerated compositor
+ https://bugs.webkit.org/show_bug.cgi?id=43748
+
+ Correct the ortho projection matrix for the root layer, which was
+ too large by 0.5px in both width and height. For even view sizes,
+ this would cause the viewport to appear 1 pixel too small.
+
+ Fixing this requires removal of several 0.5 correction factors
+ that were previously added to compensate for the too-large viewport.
+
+ Finally, compute the translation for the root layer quad using
+ floating point rather than integer arithmetic. This avoids us losing
+ a key half-pixel of translation when the width of the window is odd.
+
+ To test, size window to even/odd dimensions. No blue line should be visible.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::drawLayers):
+
+2010-08-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Justin Garcia.
+
+ fontColorChangesComputedStyle, fontSizeChangesComputedStyle, and fontFaceChangesComputedStyle should be removed
+ https://bugs.webkit.org/show_bug.cgi?id=43465
+
+ Removed fontColorChangesComputedStyle, fontSizeChangesComputedStyle, and fontFaceChangesComputedStyle
+ because StyleChange's applyFontColor, applyFontFace, and applyFontSize all return false
+ if there was no difference between the new font color, font size, font face and that of the computed style.
+
+ Also added a work-around for the bug 28282 in getPropertiesNotInComputedStyle with a test so that
+ the above change will not add a redundant font or span element.
+
+ Test: editing/style/fore-color-by-name.html
+
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::getRGBAFontColor): Added.
+ (WebCore::StyleChange::extractTextStyles): Calls getRGBAFontColor.
+ (WebCore::getPropertiesNotInComputedStyle): Removes color property manually by checking the RGBA values.
+ (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): See above.
+
+2010-08-09 Kenneth Russell <kbr@google.com>
+
+ Reviewed by David Levin.
+
+ Fix compilation of VideoLayerChromium on Mac OS X with compositor
+ https://bugs.webkit.org/show_bug.cgi?id=43757
+
+ No new tests; build fix only (associated functionality not implemented yet).
+
+ * platform/graphics/chromium/VideoLayerChromium.cpp:
+ (WebCore::VideoLayerChromium::VideoLayerChromium):
+ (WebCore::VideoLayerChromium::updateTextureContents):
+ (WebCore::VideoLayerChromium::createTextureRect):
+ (WebCore::VideoLayerChromium::updateTextureRect):
+ * platform/graphics/chromium/VideoLayerChromium.h:
+
+2010-08-09 Ariya Hidayat <ariya@sencha.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Need to implement GraphicsContextQt::clipConvexPolygon()
+ https://bugs.webkit.org/show_bug.cgi?id=41310
+
+ Based on the prototype code by Simon Hausmann.
+
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::clipConvexPolygon):
+ * rendering/RenderObject.h:
+
+2010-08-09 Chris Fleizach <cfleizach@apple.com>
+
+ Reviewed by David Kilzer.
+
+ AX: Placeholder value for text fields not exposed like it should be
+ https://bugs.webkit.org/show_bug.cgi?id=43598
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::placeholderValue):
+ * accessibility/AccessibilityObject.h:
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::title):
+ * accessibility/mac/AccessibilityObjectWrapper.mm:
+ (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
+ (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
+
+2010-08-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Justin Garcia.
+
+ Undo fails in RemoveCSSPropertyCommand when the corresponding style attribute is removed
+ https://bugs.webkit.org/show_bug.cgi?id=43639
+
+ The bug was caused when RemoveCSSPropertyCommand is called with CSSMutableStyleDeclaration of some styled element,
+ and the style attribute of the element is removed subsequently. When the attribute removal is undone, new instance of
+ CSSMutableStyleDeclaration is created and RemoveCSSPropertyCommand's m_style became detached from the element.
+
+ Modified RemoveCSSPropertyCommand to store the styled element directly instead of its CSSMutableStyleDeclaration.
+
+ Test: editing/undo/remove-css-property-and-remove-style.html
+
+ * WebCore.order:
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::ApplyStyleCommand::removeCSSStyle): Calls removeCSSProperty.
+ (WebCore::ApplyStyleCommand::extractTextDecorationStyle): Calls removeCSSProperty.
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::CompositeEditCommand::removeCSSProperty): Takes StyledElement instead of CSSMutableStyleDeclaration.
+ * editing/CompositeEditCommand.h:
+ * editing/RemoveCSSPropertyCommand.cpp:
+ (WebCore::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand): Takes StyledElement instead of CSSMutableStyleDeclaration.
+ (WebCore::RemoveCSSPropertyCommand::doApply): See above.
+ (WebCore::RemoveCSSPropertyCommand::doUnapply): See above.
+ * editing/RemoveCSSPropertyCommand.h:
+ (WebCore::RemoveCSSPropertyCommand::create): See above.
+
+2010-08-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Tony Chang.
+
+ Use getIdentifierValue to obtain direction and unicode-bidi properties in ApplyStyleCommand
+ https://bugs.webkit.org/show_bug.cgi?id=43699
+
+ Deployed getIdentifierValue in various parts of ApplyStyleCommand where
+ direction and unicode-bidi properties were obtained manually.
+
+ No new tests since this is a cleanup.
+
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::getIdentifierValue): Takes CSSStyleDeclaration instead of CSSMutableStyleDeclaration.
+ (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi): Calls getIdentifierValue.
+ (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock): Calls getIdentifierValue.
+ (WebCore::ApplyStyleCommand::applyInlineStyle): Calls getIdentifierValue.
+ * editing/ApplyStyleCommand.h:
+
+2010-08-09 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Remove trailing whitespace in HTMLViewSourceDocument.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=43741
+
+ No behavior change. The whitespace was distracting me while porting
+ this class to the new parser.
+
+ * html/HTMLViewSourceDocument.cpp:
+ (WebCore::HTMLViewSourceDocument::createContainingTable):
+ (WebCore::HTMLViewSourceDocument::addViewSourceToken):
+ (WebCore::HTMLViewSourceDocument::addLine):
+ (WebCore::HTMLViewSourceDocument::addText):
+ (WebCore::HTMLViewSourceDocument::addLink):
+
+2010-08-09 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Adam Barth.
+
+ Use the HTML5 TreeBuilder for Fragment Parsing
+ https://bugs.webkit.org/show_bug.cgi?id=43586
+
+ The bulk of this change is just a transcription of the HTML5 spec:
+ http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#fragment-case
+
+ DocumentParser() now sets the right tokenizer state before handling
+ fragments. Since default code path uses the HTML5 tokenizer with the
+ legacy tree builder, this fixes 2 tokenizer-state tests for the html5lib.
+ This fixes 2 more tree-builder tests when the html5 treebuilder is enabled too.
+
+ * dom/DocumentFragment.cpp:
+ (WebCore::DocumentFragment::parseHTML):
+ - HTML5 implementation of fragment parsing requires the context element (parent)
+ pointer. The legacy implementation handles all parsing branches which require
+ the context element outside of the parser itself, which likely produces "wrong"
+ results. We'll remove those branches when we turn on the HMTL5 fragment parser.
+ (WebCore::DocumentFragment::parseXML):
+ - Rename "parent" to "contextElement" to match the HTML path (and the HTML5 spec).
+ * dom/DocumentFragment.h:
+ * dom/Element.cpp:
+ (WebCore::Element::createContextualFragment):
+ - Pass the contextElement (this).
+ * html/HTMLConstructionSite.cpp:
+ (WebCore::HTMLConstructionSite::setForm):
+ - Needed by for the fragment case.
+ (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
+ - I'm not sure this method should exist, it only has one caller.
+ but for now, I've moved the fragment case FIXME out to the
+ one caller and implemented it.
+ * html/HTMLConstructionSite.h:
+ * html/HTMLDocumentParser.cpp:
+ (WebCore::HTMLNames::tokenizerStateForContextElement):
+ - Part of the fragment case handling for the HTML5 parser.
+ (WebCore::HTMLDocumentParser::HTMLDocumentParser):
+ - Set the Tokenizer state based on the contextElement.
+ (WebCore::HTMLDocumentParser::parseDocumentFragment):
+ - Take a contextElement argument.
+ * html/HTMLDocumentParser.h:
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::setInnerHTML):
+ - Added a FIXME before the branches the old parser used to avoid ever needing
+ to pass a context element when parsing HTML fragments.
+ (WebCore::HTMLElement::insertAdjacentHTML):
+ - Pass the context element.
+ * html/HTMLTokenizer.h:
+ * html/HTMLTreeBuilder.cpp:
+ - I added a new helper class FragmentParsingContext to simplify the two
+ HTMLTreeBuilder constructors and hide the existence of m_dummyDocumentForFragmentParse.
+ - I also removed m_isParsingFragment and replaced it with an isParsingFragment() function.
+ (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::document):
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::~FragmentParsingContext):
+ (WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
+ (WebCore::HTMLTreeBuilder::processStartTagForInBody):
+ - I had to implement two notImplemented() states in order to get most of the
+ layout tests to pass when using the HTML5 parser fragment case.
+ (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
+ (WebCore::HTMLTreeBuilder::processStartTagForInTable):
+ (WebCore::HTMLTreeBuilder::processStartTag):
+ (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
+ (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
+ (WebCore::HTMLTreeBuilder::processEndTagForInRow):
+ (WebCore::HTMLTreeBuilder::processEndTagForInCell):
+ (WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
+ (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
+ (WebCore::HTMLTreeBuilder::processTableEndTagForInTable):
+ (WebCore::HTMLTreeBuilder::processEndTag):
+ (WebCore::HTMLTreeBuilder::processCharacterBuffer):
+ (WebCore::HTMLTreeBuilder::processEndOfFile):
+ (WebCore::HTMLTreeBuilder::finished):
+ - The HTML5 parsing algorithm fragment case uses a dummy document to handle all the parsing
+ and then moves all the children from the dummy document over into a DocumentFragment
+ when the parse is done. We could avoid this adopt step by making the TreeBuilder a bit
+ more complicated, but I'm not sure that's necessary (yet).
+ * html/HTMLTreeBuilder.h:
+ (WebCore::HTMLTreeBuilder::isParsingFragment):
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::fragment):
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement):
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::scriptingPermission):
+ * xml/XSLTProcessor.cpp:
+ (WebCore::createFragmentFromSource):
+
+2010-08-09 Dumitru Daniliuc <dumi@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Auto-generate most HTML5 DB bindings.
+ https://bugs.webkit.org/show_bug.cgi?id=43382
+
+ * Android.jscbindings.mk: Remove {JS|V8}Database{Sync}Custom.cpp
+ and the custom implementations of openDatabase{Sync}().
+ * Android.v8bindings.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSBindingsAllInOne.cpp:
+ * bindings/js/JSDOMWindowCustom.cpp:
+ * bindings/js/JSDatabaseCustom.cpp: Removed.
+ * bindings/js/JSDatabaseSyncCustom.cpp: Removed.
+ * bindings/js/JSWorkerContextCustom.cpp:
+ * bindings/v8/custom/V8DOMWindowCustom.cpp:
+ * bindings/v8/custom/V8DatabaseCustom.cpp: Removed.
+ * bindings/v8/custom/V8DatabaseSyncCustom.cpp: Removed.
+ * bindings/v8/custom/V8WorkerContextCustom.cpp:
+
+ * bindings/scripts/CodeGeneratorGObject.pm: Change the code generators
+ to check that each value can be converted to the respective
+ argument type.
+ * bindings/scripts/CodeGeneratorJS.pm:
+ * bindings/scripts/CodeGeneratorV8.pm:
+ * bindings/scripts/test/JS/JSTestCallback.cpp:
+ (WebCore::JSTestCallback::~JSTestCallback):
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
+ (WebCore::jsTestObjPrototypeFunctionSerializedValue):
+ (WebCore::jsTestObjPrototypeFunctionIdbKey):
+ (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::TestObjInternal::voidMethodWithArgsCallback):
+ (WebCore::TestObjInternal::intMethodWithArgsCallback):
+ (WebCore::TestObjInternal::objMethodWithArgsCallback):
+ (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback):
+ (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
+ (WebCore::TestObjInternal::idbKeyCallback):
+ (WebCore::TestObjInternal::customArgsAndExceptionCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
+ (WebCore::TestObjInternal::methodWithOptionalArgCallback):
+ (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
+ (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
+ (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
+ (WebCore::TestObjInternal::overloadedMethod1Callback):
+ (WebCore::TestObjInternal::overloadedMethod2Callback):
+ (WebCore::TestObjInternal::overloadedMethod3Callback):
+ (WebCore::TestObjInternal::overloadedMethod4Callback):
+ (WebCore::):
+ (WebCore::ConfigureV8TestObjTemplate):
+ * bindings/v8/custom/V8BindingMacros.h:
+
+ * bindings/v8/V8Binding.h: Minor changes required to support the
+ auto-generated bindings.
+ (WebCore::V8Parameter::V8Parameter):
+ * bindings/v8/custom/V8SQLTransactionCustom.cpp:
+ (WebCore::V8SQLTransaction::executeSqlCallback):
+ * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
+ (WebCore::V8SQLTransactionSync::executeSqlCallback):
+ * page/DOMWindow.idl:
+ * storage/Database.cpp:
+ (WebCore::Database::transaction):
+ (WebCore::Database::readTransaction):
+ (WebCore::Database::runTransaction):
+ * storage/Database.h:
+ * storage/Database.idl:
+ * storage/DatabaseSync.cpp:
+ (WebCore::DatabaseSync::transaction):
+ (WebCore::DatabaseSync::readTransaction):
+ (WebCore::DatabaseSync::runTransaction):
+ * storage/DatabaseSync.h:
+ * storage/DatabaseSync.idl:
+ * workers/WorkerContext.idl:
+
+2010-08-09 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Move HTMLViewSourceDocument from legacyParserAddChild to parserAddChild
+ https://bugs.webkit.org/show_bug.cgi?id=43740
+
+ This removes the DTD checks, which aren't needed for view source
+ documents.
+
+ * html/HTMLViewSourceDocument.cpp:
+ (WebCore::HTMLViewSourceDocument::createContainingTable):
+ (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
+ (WebCore::HTMLViewSourceDocument::addLine):
+ (WebCore::HTMLViewSourceDocument::addText):
+ (WebCore::HTMLViewSourceDocument::addLink):
+
+2010-08-09 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ Fixed an uninitialized member variable in the Color(CGColorRef) constructor.
+
+ * platform/graphics/cg/ColorCG.cpp:
+ (WebCore::Color::Color): Initialize m_valid to true if the color is not 0.
+
+2010-08-09 James Robinson <jamesr@chromium.org>
+
+ Chromium compile fix, unreviewed.
+
+ * platform/graphics/skia/PlatformContextSkia.cpp:
+ (WebCore::PlatformContextSkia::~PlatformContextSkia):
+ (WebCore::PlatformContextSkia::setGraphicsContext3D):
+
+2010-08-09 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] Add a PrepareTextureCallback to the chromium canvas layer compositor to upload mixed-mode results before compositing
+ https://bugs.webkit.org/show_bug.cgi?id=43656
+
+ When compositing an accelerated canvas that is using both hardware and software drawing,
+ we need a callback before compositing the layer to make sure that we upload any software
+ drawn results to the texture. This will go away as soon as implement all draw calls
+ in hardware.
+
+ To test, run any canvas demo that runs in mixed mode and verifies that the software results
+ always show up.
+
+ * platform/graphics/chromium/CanvasLayerChromium.cpp:
+ (WebCore::CanvasLayerChromium::updateTextureContents):
+ * platform/graphics/chromium/CanvasLayerChromium.h:
+ (WebCore::CanvasLayerChromium::setPrepareTextureCallback):
+ * platform/graphics/skia/PlatformContextSkia.cpp:
+ (WebCore::PrepareTextureCallbackImpl::create):
+ (WebCore::PrepareTextureCallbackImpl::willPrepareTexture):
+ (WebCore::PrepareTextureCallbackImpl::PrepareTextureCallbackImpl):
+ (WebCore::PlatformContextSkia::setGraphicsContext3D):
+
+2010-08-09 Zhenyao Mo <zmo@google.com>
+
+ Reviewed by David Levin.
+
+ sizeInBytes should be removed
+ https://bugs.webkit.org/show_bug.cgi?id=43693
+
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::sizeInBytes): Don't generate GL errors. Generate them in the callers instead.
+ (WebCore::WebGLRenderingContext::vertexAttribPointer): Generate GL error if sizeInBytes fails.
+ * html/canvas/WebGLRenderingContext.h: Make sizeInBytes private helper.
+ * html/canvas/WebGLRenderingContext.idl: Remove sizeInBytes.
+
+2010-08-09 Eric Carlson <eric.carlson@apple.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43702
+ <video> element does not resize correctly
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::setReadyState): RenderVideo::videoSizeChanged is gone, just use
+ updateFromElement instead.
+ (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): Ditto.
+ (WebCore::HTMLMediaElement::mediaPlayerSizeChanged): Ditto.
+
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::parseMappedAttribute): Clear the image loader and cached image when
+ the 'poster' attribute is changed and we aren't displaying a poster.
+
+ * rendering/RenderVideo.cpp:
+ (WebCore::RenderVideo::RenderVideo):
+ (WebCore::RenderVideo::intrinsicSizeChanged): videoSizeChanged -> updateIntrinsicSize.
+ (WebCore::RenderVideo::updateIntrinsicSize): Renamed from videoSizeChanged, calculate initial
+ intrinsic size with calculateIntrinsicSize
+ (WebCore::RenderVideo::calculateIntrinsicSize): New, calculate size according to current spec.
+ (WebCore::RenderVideo::imageChanged): Reset intrinsic size to default when poster fails to load.
+ (WebCore::RenderVideo::updatePlayer): Call updateIntrinsicSize.
+ * rendering/RenderVideo.h: Renamed videoSizeChanged to updateIntrinsicSize and make private.
+
+2010-08-09 Marcus Bulach <bulach@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Fixes custom JS bindings for IDBCursor after r64828.
+ https://bugs.webkit.org/show_bug.cgi?id=43729
+
+ Build fix, no tests.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSIDBAnyCustom.cpp:
+ (WebCore::toJS):
+ * storage/IDBObjectStore.h:
+
+2010-08-09 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64993.
+ http://trac.webkit.org/changeset/64993
+ https://bugs.webkit.org/show_bug.cgi?id=43734
+
+ broke chromium compile (Requested by jamesr on #webkit).
+
+ * platform/graphics/chromium/CanvasLayerChromium.cpp:
+ (WebCore::CanvasLayerChromium::updateTextureContents):
+ * platform/graphics/chromium/CanvasLayerChromium.h:
+ * platform/graphics/skia/PlatformContextSkia.cpp:
+ (WebCore::PlatformContextSkia::~PlatformContextSkia):
+ (WebCore::PlatformContextSkia::setGraphicsContext3D):
+
+2010-08-09 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] Add a PrepareTextureCallback to the chromium canvas layer compositor to upload mixed-mode results before compositing
+ https://bugs.webkit.org/show_bug.cgi?id=43656
+
+ When compositing an accelerated canvas that is using both hardware and software drawing,
+ we need a callback before compositing the layer to make sure that we upload any software
+ drawn results to the texture. This will go away as soon as implement all draw calls
+ in hardware.
+
+ To test, run any canvas demo that runs in mixed mode and verifies that the software results
+ always show up.
+
+ * platform/graphics/chromium/CanvasLayerChromium.cpp:
+ (WebCore::CanvasLayerChromium::updateTextureContents):
+ * platform/graphics/chromium/CanvasLayerChromium.h:
+ (WebCore::CanvasLayerChromium::setPrepareTextureCallback):
+ * platform/graphics/skia/PlatformContextSkia.cpp:
+ (WebCore::PrepareTextureCallbackImpl::create):
+ (WebCore::PrepareTextureCallbackImpl::willPrepareTexture):
+ (WebCore::PrepareTextureCallbackImpl::PrepareTextureCallbackImpl):
+ (WebCore::PlatformContextSkia::setGraphicsContext3D):
+
+2010-08-09 Dominic Cooney <dominicc@google.com>
+
+ Reviewed by Adam Barth.
+
+ Moves window.open logic into the generic bindings.
+
+ This patch moves window.open logic from V8 into the generic
+ bindings so it could be shared with JSC. JSC sharing is not in
+ this patch. This patch is of the same flavor/intent as 33201.
+
+ https://bugs.webkit.org/show_bug.cgi?id=41392
+
+ * bindings/generic/BindingDOMWindow.h:
+ (WebCore::::createWindow):
+ (WebCore::::open):
+ (WebCore::::completeURL):
+ * bindings/generic/BindingSecurity.h:
+ (WebCore::::allowPopUp):
+ (WebCore::::shouldAllowNavigation):
+ * bindings/v8/V8Binding.h:
+ (WebCore::V8Binding::emptyScriptValue):
+ * bindings/v8/V8Utilities.cpp:
+ (WebCore::transferHiddenDependency):
+ (WebCore::processingUserGesture):
+ (WebCore::shouldAllowNavigation):
+ (WebCore::completeURL):
+ * bindings/v8/custom/V8ArrayBufferCustom.cpp:
+ * bindings/v8/custom/V8DOMWindowCustom.cpp:
+ (WebCore::V8DOMWindow::showModalDialogCallback):
+ (WebCore::V8DOMWindow::openCallback):
+ * bindings/v8/specialization/V8BindingState.cpp:
+ (WebCore::::getActiveFrame):
+ (WebCore::::getFirstFrame):
+ (WebCore::::processingUserGesture):
+ * bindings/v8/specialization/V8BindingState.h:
+ (WebCore::):
+
+2010-08-09 Marcus Bulach <bulach@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Fixes xcode project issues after r64828:
+ https://bugs.webkit.org/show_bug.cgi?id=43638
+
+ Build fix, no tests (sort-Xcode-project-file should not throw any warnings).
+
+ * WebCore.xcodeproj/project.pbxproj: fixed IDBCursor and related IndexedDB files, and re-ran sort-Xcode-project-file.
+
+2010-08-09 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: Remove callId argument from all backend agents' methods.
+ https://bugs.webkit.org/show_bug.cgi?id=43723
+
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/InspectorApplicationCacheAgent.cpp:
+ (WebCore::InspectorApplicationCacheAgent::getApplicationCaches):
+ * inspector/InspectorApplicationCacheAgent.h:
+ * inspector/InspectorBackend.cpp:
+ (WebCore::InspectorBackend::getProfilerLogLines):
+ (WebCore::InspectorBackend::clearConsoleMessages):
+ (WebCore::InspectorBackend::getDatabaseTableNames):
+ * inspector/InspectorBackend.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::getCookies):
+ (WebCore::InspectorController::getDOMStorageEntries):
+ (WebCore::InspectorController::setDOMStorageItem):
+ (WebCore::InspectorController::removeDOMStorageItem):
+ (WebCore::InspectorController::getProfileHeaders):
+ (WebCore::InspectorController::getProfile):
+ (WebCore::InspectorController::getResourceContent):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::getChildNodes):
+ (WebCore::InspectorDOMAgent::setAttribute):
+ (WebCore::InspectorDOMAgent::removeAttribute):
+ (WebCore::InspectorDOMAgent::removeNode):
+ (WebCore::InspectorDOMAgent::changeTagName):
+ (WebCore::InspectorDOMAgent::getOuterHTML):
+ (WebCore::InspectorDOMAgent::setOuterHTML):
+ (WebCore::InspectorDOMAgent::setTextNodeValue):
+ (WebCore::InspectorDOMAgent::getEventListenersForNode):
+ (WebCore::InspectorDOMAgent::getStyles):
+ (WebCore::InspectorDOMAgent::getAllStyles):
+ (WebCore::InspectorDOMAgent::getStyleSheet):
+ (WebCore::InspectorDOMAgent::getRuleRanges):
+ (WebCore::InspectorDOMAgent::getInlineStyle):
+ (WebCore::InspectorDOMAgent::getComputedStyle):
+ (WebCore::InspectorDOMAgent::applyStyleText):
+ (WebCore::InspectorDOMAgent::setStyleText):
+ (WebCore::InspectorDOMAgent::setStyleProperty):
+ (WebCore::InspectorDOMAgent::toggleStyleEnabled):
+ (WebCore::InspectorDOMAgent::setRuleSelector):
+ (WebCore::InspectorDOMAgent::addRule):
+ (WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorDebuggerAgent.cpp:
+ (WebCore::InspectorDebuggerAgent::setBreakpoint):
+ (WebCore::InspectorDebuggerAgent::editScriptSource):
+ (WebCore::InspectorDebuggerAgent::getScriptSource):
+ * inspector/InspectorDebuggerAgent.h:
+
+2010-08-09 François Sausset <sausset@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Take into account style color to draw MathML mroot radical.
+ https://bugs.webkit.org/show_bug.cgi?id=43628
+
+ Test: mathml/presentation/roots.xhtml
+
+ * mathml/RenderMathMLRoot.cpp:
+ (WebCore::RenderMathMLRoot::paint):
+
+2010-08-09 François Sausset <sausset@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Implement MathML deprecated style attributes
+ https://bugs.webkit.org/show_bug.cgi?id=43503
+
+ Test: mathml/presentation/attributes.xhtml
+
+ * mathml/MathMLElement.cpp:
+ (WebCore::MathMLElement::mapToEntry):
+ (WebCore::MathMLElement::parseMappedAttribute):
+ * mathml/mathattrs.in:
+
+2010-08-09 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: remove unnecessary did* methods from RemoteInspectorFrontend.
+ https://bugs.webkit.org/show_bug.cgi?id=43721
+
+ * inspector/CodeGeneratorInspector.pm:
+
+2010-08-09 Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Antonio Gomes.
+
+ Canvas: Fast-path for setting the already set color with setStrokeColor() and setFillColor()
+ https://bugs.webkit.org/show_bug.cgi?id=43718
+
+ Avoid creating CanvasStyle objects when setting the same fill or stroke color using
+ the WebKit-specific setters of CanvasRenderingContext2D.
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::setStrokeColor):
+ (WebCore::CanvasRenderingContext2D::setFillColor):
+ * html/canvas/CanvasStyle.cpp:
+ (WebCore::CanvasStyle::isEquivalentColor):
+ * html/canvas/CanvasStyle.h: Added CanvasStyle::isEquivalentColor() overloads
+ for RGBA and CMYKA channel values.
+
+2010-08-09 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: restore original last panel restore logic.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43719
+
+ * inspector/front-end/inspector.js:
+ (WebInspector.showPanel):
+
+2010-08-09 Dumitru Daniliuc <dumi@chromium.org>
+
+ Unreviewed, fixing the builds after r64967.
+
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+
+2010-05-27 MORITA Hajime <morrita@google.com>
+
+ Reviewed by Ojan Vafai.
+
+ <http://webkit.org/b/36359>
+ Double clicking page's last editable inline element causes assertion failure.
+ <http://webkit.org/b/36360>
+ Double clicking page's first editable inline element cannot select a word.
+
+ nextBoundary() and previousBoundary() assumed that editable
+ boundaries are on block-level elements, But it can appear on
+ inline-level elements. So we start boundary look-up from the given
+ node, instead of the containingBlock of the given node.
+ Also, added TextIteratorEndsAtEditingBoundary to
+ BackwardsCharacterIterator, otherwise, the VisiblePosition
+ returned by BackwardsCharacterIterator might cross an editing
+ boundary.
+
+ Test: editing/selection/doubleclick-inline-first-last-contenteditable.html
+
+ * dom/Position.cpp:
+ (WebCore::Position::parentEditingBoundary): Added.
+ * dom/Position.h:
+ * editing/TextIterator.cpp:
+ (WebCore::TextIterator::TextIterator):
+ (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
+ (WebCore::SimplifiedBackwardsTextIterator::advance):
+ (WebCore::SimplifiedBackwardsTextIterator::crossesEditingBoundary): Added.
+ (WebCore::SimplifiedBackwardsTextIterator::setCurrentNode): Added.
+ (WebCore::SimplifiedBackwardsTextIterator::clearCurrentNode): Added.
+ (WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator):
+ * editing/TextIterator.h:
+ (WebCore::):
+ * editing/visible_units.cpp:
+ (WebCore::previousBoundary):
+ (WebCore::nextBoundary):
+
+2010-08-09 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ WebInspector: Current implementation of showPanel is a bit complicated.
+ It is using internal enum for all the panels and this is the problem because
+ we should change a lot of code for a new panel.
+ https://bugs.webkit.org/show_bug.cgi?id=43711
+
+ * WebCore.exp.in:
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::storeLastActivePanel):
+ (WebCore::InspectorController::connectFrontend):
+ (WebCore::InspectorController::showPanel):
+ (WebCore::InspectorController::disconnectFrontend):
+ * inspector/InspectorController.h:
+ * inspector/InspectorFrontend.cpp:
+ * inspector/InspectorFrontend.h:
+ * inspector/front-end/ElementsTreeOutline.js:
+ (WebInspector.ElementsTreeElement.prototype.selectOnMouseDown):
+ * inspector/front-end/ExtensionServer.js:
+ (WebInspector.ExtensionServer.prototype._onRevealAndSelectResource):
+ * inspector/front-end/inspector.js:
+ (WebInspector.documentClick.followLink):
+ (WebInspector.documentClick):
+ (WebInspector.toggleSearchingForNode):
+ (WebInspector.showPanel):
+ (WebInspector.selectDatabase):
+ (WebInspector.selectDOMStorage):
+ (WebInspector.showProfileForURL):
+
+2010-08-09 Ariya Hidayat <ariya@sencha.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] GraphicsContext::clipOut(IntRect) ignores the transformation matrix.
+ https://bugs.webkit.org/show_bug.cgi?id=43705
+
+ Just like clipOut(Path), which is taken care in r60796 already,
+ clipOut(IntRect) must transform the window bounding box properly.
+
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::clipOut):
+
+2010-08-09 François Sausset <sausset@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Implement mfenced MathML element
+ Update stretchy operator code to take into account new brackets and to tune layout parameters
+ https://bugs.webkit.org/show_bug.cgi?id=42472
+
+ Test: mathml/presentation/fenced.xhtml
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * mathml/MathMLInlineContainerElement.cpp:
+ (WebCore::MathMLInlineContainerElement::MathMLInlineContainerElement):
+ (WebCore::MathMLInlineContainerElement::createRenderer):
+ * mathml/RenderMathMLFenced.cpp: Added.
+ (WebCore::RenderMathMLFenced::RenderMathMLFenced):
+ (WebCore::RenderMathMLFenced::updateFromElement):
+ (WebCore::RenderMathMLFenced::makeOperatorStyle):
+ (WebCore::RenderMathMLFenced::makeFences):
+ (WebCore::RenderMathMLFenced::addChild):
+ (WebCore::RenderMathMLFenced::layout):
+ * mathml/RenderMathMLFenced.h: Added.
+ * mathml/RenderMathMLOperator.cpp:
+ (WebCore::RenderMathMLOperator::RenderMathMLOperator):
+ (WebCore::RenderMathMLOperator::stretchToHeight):
+ (WebCore::):
+ (WebCore::RenderMathMLOperator::updateFromElement):
+ (WebCore::RenderMathMLOperator::createStackableStyle):
+ (WebCore::RenderMathMLOperator::createGlyph):
+
+2010-08-08 ryuan choi <ryuan.choi@samsung.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION(64898,64949) build break because of wrong filename
+ https://bugs.webkit.org/show_bug.cgi?id=43701
+
+ add SVGPathStringSource.cpp and modify SVGPathSourceString.cpp to
+ SVGPathStringSource.cpp
+
+ simple fixing build break, so No new tests.
+
+ * CMakeLists.txt:
+
+2010-08-08 Ariya Hidayat <ariya@sencha.com>
+
+ Reviewed by Antonio Gomes.
+
+ Inconsistent Qt version checks
+ https://bugs.webkit.org/show_bug.cgi?id=43695
+
+ Use QT_VERSION_CHECK macro instead of encoded hex.
+
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::getImageData):
+ * platform/network/qt/NetworkStateNotifierPrivate.h:
+ * platform/network/qt/NetworkStateNotifierQt.cpp:
+ * platform/network/qt/QNetworkReplyHandler.cpp:
+ (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
+ (WebCore::QNetworkReplyHandler::start):
+ * platform/qt/RenderThemeQt.cpp:
+ (WebCore::RenderThemeQt::paintMediaSliderTrack):
+
+2010-08-08 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Antonio Gomes.
+
+ Web Inspector: Fix warning in WebCore/inspector/InspectorDebuggerAgent.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=43698
+
+ * inspector/InspectorDebuggerAgent.cpp:
+ (WebCore::InspectorDebuggerAgent::editScriptSource): Add suggested parentheses.
+
+2010-08-05 MORITA Hajime <morrita@google.com>
+
+ Reviewed by Tony Chang.
+
+ Pasting should fire textInput event.
+ https://bugs.webkit.org/show_bug.cgi?id=42958
+
+ - Extended TextEvents to hold paste-specific parameters
+ - Did fire TextEvents at where we originally did immediate pastes.
+ - Factored out TextEvent handling from EventHandler::defaultTextInputEventHandler()
+ to Editor::handleTextEvent() because it's solely done by the editor.
+ - move actual pasting logic to Editor::handleTextEvent()
+
+ Test: editing/pasteboard/paste-text-events.html
+
+ * WebCore.exp.in:
+ * dom/TextEvent.cpp:
+ (WebCore::TextEvent::create):
+ (WebCore::TextEvent::createForPlainTextPaste):
+ (WebCore::TextEvent::createForFragmentPaste):
+ (WebCore::TextEvent::TextEvent):
+ * dom/TextEvent.h:
+ (WebCore::TextEvent::isPaste):
+ (WebCore::TextEvent::shouldSmartReplace):
+ (WebCore::TextEvent::shouldMatchStyle):
+ (WebCore::TextEvent::pastingFragment):
+ * editing/Editor.cpp:
+ (WebCore::Editor::handleTextEvent):
+ (WebCore::Editor::pasteAsPlainText):
+ (WebCore::Editor::pasteAsFragment):
+ (WebCore::Editor::pasteAsPlainTextWithPasteboard):
+ (WebCore::Editor::pasteWithPasteboard):
+ (WebCore::Editor::dispatchCPPEvent):
+ (WebCore::Editor::findEventTargetFromSelection):
+ * editing/Editor.h:
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::defaultTextInputEventHandler):
+
+2010-08-08 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix, add member needed to compile Mac-specific font code.
+
+ * platform/graphics/wx/FontPlatformData.h:
+ (WebCore::FontPlatformData::ctFont):
+
+2010-08-08 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Fix warnings in WebCore/platform/WindowsKeyboardCodes.h
+ https://bugs.webkit.org/show_bug.cgi?id=43360
+
+ * platform/WindowsKeyboardCodes.h: Undef macros which are also defined in MinGW/include/winuser.h to aviod gcc redefinition warning
+
+2010-08-08 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Set the shouldLazyAttach flag to true in the tree builder's adoption agency algorithm
+ https://bugs.webkit.org/show_bug.cgi?id=43610
+
+ Sets the shouldLazyAttach flag to true for appendChild() calls inside the HTML tree
+ builder's adoption agency flag. This is a speedup assuming that nodes subjected
+ to the adoption agency are likely to be frequently reparented, and thus it is better
+ to delay creating the render tree until later (when hopefully the DOM is finalized).
+
+ On my mac pro this speeds up fast/parser/residual-style-hang.html by 2.6X.
+
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
+
+2010-08-08 Nikita Vasilyev <me@elv1s.ru>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: speed-up Element.prototype.removeChildren
+ https://bugs.webkit.org/show_bug.cgi?id=43687
+
+ * inspector/front-end/utilities.js:
+ (Element.prototype.removeChildren):
+
+2010-08-08 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ WebInspector: remove hand written InspectorFrontend from almost all places.
+ https://bugs.webkit.org/show_bug.cgi?id=43630
+
+ * inspector/ConsoleMessage.cpp:
+ * inspector/InjectedScriptHost.cpp:
+ (WebCore::InjectedScriptHost::pushNodePathToFrontend):
+ * inspector/InjectedScriptHost.h:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBackend.cpp:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ (WebCore::InspectorController::inspect):
+ (WebCore::InspectorController::focusNode):
+ (WebCore::InspectorController::windowVisible):
+ (WebCore::InspectorController::addConsoleMessage):
+ (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
+ (WebCore::InspectorController::setSearchingForNode):
+ (WebCore::InspectorController::setMonitoringXHR):
+ (WebCore::InspectorController::connectFrontend):
+ (WebCore::InspectorController::show):
+ (WebCore::InspectorController::showPanel):
+ (WebCore::InspectorController::close):
+ (WebCore::InspectorController::disconnectFrontend):
+ (WebCore::InspectorController::populateScriptObjects):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::enableResourceTracking):
+ (WebCore::InspectorController::disableResourceTracking):
+ (WebCore::InspectorController::startTimelineProfiler):
+ (WebCore::InspectorController::stopTimelineProfiler):
+ (WebCore::InspectorController::postWorkerNotificationToFrontend):
+ (WebCore::InspectorController::didCreateWorker):
+ (WebCore::InspectorController::didDestroyWorker):
+ (WebCore::InspectorController::toggleRecordButton):
+ (WebCore::InspectorController::enableProfiler):
+ (WebCore::InspectorController::disableProfiler):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::enableDebugger):
+ (WebCore::InspectorController::disableDebugger):
+ (WebCore::InspectorController::evaluateForTestInFrontend):
+ * inspector/InspectorFrontend.cpp:
+ * inspector/InspectorFrontend.h:
+ * inspector/InspectorFrontendClientLocal.cpp:
+ * inspector/TimelineRecordFactory.cpp:
+
+2010-08-08 Dan Bernstein <mitz@apple.com>
+
+ Try to fix the Chromium Mac build after r64915.
+
+ * platform/graphics/chromium/FontPlatformDataChromiumMac.mm:
+ (WebCore::FontPlatformData::ctFont): Copied from mac/FontPlatformDataMac.mm.
+
+2010-08-08 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Add missing String builder for SVGPathParser
+ https://bugs.webkit.org/show_bug.cgi?id=43682
+
+ Introduces SVGPathStringBuilder. SVGPathParser clients, like normalized and unaltered
+ SVGPathSegLists or SVGPathByteStreams, can be parsed and transformed to a string.
+ StringBuilder can create a string of individual strings, seperated by spaces now.
+ Share more code in SVGPathParserFactory and use a common general concept to manage SVG path
+ data parsing.
+
+ Doesn't affect any tests.
+
+ * Android.mk:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/text/StringBuilder.cpp:
+ (WebCore::StringBuilder::toString): Added possibility to use a space between individual strings.
+ * platform/text/StringBuilder.h: Cleanup according to WebKit style.
+ (WebCore::):
+ (WebCore::StringBuilder::StringBuilder):
+ (WebCore::StringBuilder::setNonNull):
+ (WebCore::StringBuilder::isNull):
+ * svg/SVGAllInOne.cpp:
+ * svg/SVGPathBuilder.h:
+ (WebCore::SVGPathBuilder::cleanup): Clear all references.
+ * svg/SVGPathByteStreamBuilder.h:
+ (WebCore::SVGPathByteStreamBuilder::cleanup): dito.
+ * svg/SVGPathConsumer.h:
+ * svg/SVGPathParser.cpp:
+ (WebCore::SVGPathParser::cleanup): dito.
+ * svg/SVGPathParser.h:
+ * svg/SVGPathParserFactory.cpp: Cleanup of factory. More code get shared.
+ (WebCore::globalSVGPathBuilder):
+ (WebCore::globalSVGPathSegListBuilder):
+ (WebCore::globalSVGPathByteStreamBuilder):
+ (WebCore::globalSVGPathStringBuilder):
+ (WebCore::globalSVGPathParser):
+ (WebCore::SVGPathParserFactory::buildPathFromString):
+ (WebCore::SVGPathParserFactory::buildPathFromByteStream):
+ (WebCore::SVGPathParserFactory::buildSVGPathSegListFromString):
+ (WebCore::SVGPathParserFactory::buildSVGPathSegListFromByteStream):
+ (WebCore::SVGPathParserFactory::buildStringFromByteStream):
+ (WebCore::SVGPathParserFactory::buildSVGPathByteStreamFromString):
+ * svg/SVGPathParserFactory.h:
+ * svg/SVGPathSegListBuilder.h:
+ (WebCore::SVGPathSegListBuilder::cleanup):
+ * svg/SVGPathStringBuilder.cpp: Added. Build string from parsed SVG data.
+ (WebCore::SVGPathStringBuilder::SVGPathStringBuilder):
+ (WebCore::SVGPathStringBuilder::moveTo):
+ (WebCore::SVGPathStringBuilder::lineTo):
+ (WebCore::SVGPathStringBuilder::lineToHorizontal):
+ (WebCore::SVGPathStringBuilder::lineToVertical):
+ (WebCore::SVGPathStringBuilder::curveToCubic):
+ (WebCore::SVGPathStringBuilder::curveToCubicSmooth):
+ (WebCore::SVGPathStringBuilder::curveToQuadratic):
+ (WebCore::SVGPathStringBuilder::curveToQuadraticSmooth):
+ (WebCore::SVGPathStringBuilder::arcTo):
+ (WebCore::SVGPathStringBuilder::closePath):
+ * svg/SVGPathStringBuilder.h: Added.
+ (WebCore::SVGPathStringBuilder::cleanup):
+ (WebCore::SVGPathStringBuilder::result):
+
+2010-08-08 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ cross_fuzz WebCore::SelectionController::isFocusedAndActive ReadAV@NULL (9e865de49b1800ec790dcc35d8ebd069)
+ https://bugs.webkit.org/show_bug.cgi?id=43040
+
+ The pointer from Document to Frame can be null. See http://webkit.org/coding/major-objects.html.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
+
+2010-08-08 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ frame()->selection() can't be null
+ https://bugs.webkit.org/show_bug.cgi?id=43681
+
+ SelectionController is a component of Frame. If frame is non-null, it
+ can't possibly be null.
+
+ * html/HTMLAnchorElement.cpp:
+ (WebCore::HTMLAnchorElement::setActive):
+
+2010-08-08 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ SVGLength uses ASSERTs to validate user input
+ https://bugs.webkit.org/show_bug.cgi?id=43680
+
+ ASSERTs aren't in release builds, so we can't use them to validate user
+ input! We've seen a bunch of examples of this in SVG code. It might
+ be worth auditing all the code to remove this misguided pattern.
+
+ Test: svg/dom/svg-length-units.html
+
+ * svg/SVGLength.cpp:
+ (WebCore::SVGLength::newValueSpecifiedUnits):
+ (WebCore::SVGLength::convertToSpecifiedUnits):
+
+2010-08-07 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Sam Weinig.
+
+ Empty strings can have more than one ref
+ https://bugs.webkit.org/show_bug.cgi?id=43666
+
+ These asserts are trying to say that we have a thread-safe copy of the
+ string, but they're not accurate for empty strings because we use a
+ special static empty string that magically has infinite refs.
+
+ * storage/OriginUsageRecord.cpp:
+ (WebCore::OriginUsageRecord::addDatabase):
+ (WebCore::OriginUsageRecord::markDatabase):
+
+2010-08-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+ Reviewed by Eric Seidel.
+
+ [WML] Add KURL parameter to WMLDocument::create()
+ https://bugs.webkit.org/show_bug.cgi?id=43173
+
+ To fix build break in WML, url parameter is added. Because,
+ Document class has url parameter.
+
+ * wml/WMLDocument.cpp:
+ (WebCore::WMLDocument::WMLDocument):
+ * wml/WMLDocument.h:
+ (WebCore::WMLDocument::create): Add an url parameter to create() method
+
+2010-08-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Eric Seidel.
+
+ [WML] Change getIDAttribute() with getIdAttribute()
+ https://bugs.webkit.org/show_bug.cgi?id=43175
+
+ Change getIDAttribute() with getIdAttribute() because function
+ name was changed.
+
+ * wml/WMLCardElement.cpp:
+ (WebCore::WMLCardElement::findNamedCardInDocument): Change getIDAttribute() with getIdAttribute().
+
+2010-08-07 Mihai Parparita <mihaip@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ WebTiming does not take page cache into account
+ https://bugs.webkit.org/show_bug.cgi?id=42772
+
+ When restoring a page from the page cache, reset its DocumentLoadTiming
+ struct and record navigationStart.
+
+ Test: fast/events/onunload-back-to-page-cache.html
+
+ * loader/DocumentLoadTiming.h: removed Noncopyable, since it's just a simple struct.
+ * loader/DocumentLoader.h:
+ (WebCore::DocumentLoader::resetTiming): Added method.
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::stopLoading): Uncommented assert.
+ (WebCore::FrameLoader::loadProvisionalItemFromCachedPage): Added resetTiming() call.
+
+2010-08-07 Zoltan Horvath <zoltan@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Allow custom memory allocation control for EventHandlingState struct
+ https://bugs.webkit.org/show_bug.cgi?id=43548
+
+ Inherits the following class from FastAllocBase because it is
+ instantiated by 'new':
+
+ struct name - instantiated at: WebCore/
+ EventHandlingState - html/HTMLInputElement.cpp:2051
+
+ * html/HTMLInputElement.cpp:
+
+2010-08-07 Jay Civelli <jcivelli@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ [Chromium] Remove unecessary focus code.
+ https://bugs.webkit.org/show_bug.cgi?id=43542
+
+ * platform/chromium/ChromiumBridge.h:
+ * platform/chromium/WidgetChromium.cpp:
+ (WebCore::Widget::setFocus):
+
+2010-08-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Eric Seidel.
+
+ [WML] Include FormDataBuilder.h in WMLGoElement.h
+ https://bugs.webkit.org/show_bug.cgi?id=43177
+
+ To fix build breaks in WMLGoElement.cpp, FormDataBuilder.h needs to be included.
+
+ * wml/WMLGoElement.cpp: Include FormDataBuilder.h
+
+2010-08-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Eric Seidel.
+
+ [WML] Add dummy argument to SelectElement::defaultEventHandler() in WMLSelectElement
+ https://bugs.webkit.org/show_bug.cgi?id=43176
+
+ * wml/WMLSelectElement.cpp:
+ (WebCore::WMLSelectElement::defaultEventHandler): Sets NULL parameter to SelectElement::defaultEventHandler.
+
+2010-08-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Eric Seidel.
+
+ [WML] Change DocumentParser with ScriptableDocumentParser in WMLDocument
+ https://bugs.webkit.org/show_bug.cgi?id=43174
+
+ * wml/WMLDocument.cpp:
+ (WebCore::WMLDocument::finishedParsing): Change DocumentParser with ScriptableDocumentParser.
+
+2010-08-07 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Use ctFont() to get the CTFont.
+
+ * platform/graphics/mac/FontMac.mm:
+ (WebCore::showGlyphsWithAdvances):
+
+2010-08-07 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Sam Weinig.
+
+ document->documentElement can always be null
+ https://bugs.webkit.org/show_bug.cgi?id=43677
+
+ This ASSERT is bogus.
+
+ * css/StyleMedia.cpp:
+ (WebCore::StyleMedia::matchMedium):
+
+2010-08-07 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ <rdar://problem/8285090> First word on a line doesn’t hyphenate properly
+ https://bugs.webkit.org/show_bug.cgi?id=43679
+
+ Test: fast/text/hyphenate-first-word.html
+
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::tryHyphenating): The character at lastSpace is not necessarily a whitespace character
+ before the current word. It can also be part of the word, such as when the word is the first
+ one on the line. Include the charcater at lastSpace in the string passed to lastHyphenLocation().
+
+2010-08-07 Dan Bernstein <mitz@apple.com>
+
+ Build fix
+
+ * platform/graphics/SimpleFontData.h:
+
+2010-08-07 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Created a separate SimpleFontData constructor exclusively for SVG fonts and moved the CTFontRef
+ from SimpleFontData to FontPlatformData.
+ https://bugs.webkit.org/show_bug.cgi?id=43674
+
+ * config.h: Moved definitions of WTF_USE_CORE_TEXT and WTF_USE_ATSUI from here to wtf/Platform.h.
+ * css/CSSFontFaceSource.cpp:
+ (WebCore::CSSFontFaceSource::getFontData): Use new SimpleFontData constructor for SVG fonts.
+ * platform/graphics/SimpleFontData.cpp:
+ (WebCore::SimpleFontData::SimpleFontData): Separated into two constructors, one for
+ PlatformFontData-based fonts and one for SVG fonts.
+ * platform/graphics/SimpleFontData.h: Moved the m_CTFont member variable and the getCTFont()
+ accessor from here…
+ * platform/graphics/mac/FontPlatformData.h: …to here, renaming the latter ctFont().
+ * platform/graphics/mac/FontPlatformDataMac.mm:
+ (WebCore::FontPlatformData::FontPlatformData): Copy m_CTFont.
+ (WebCore::FontPlatformData::operator=): Copy m_CTFont.
+ (WebCore::FontPlatformData::setFont): Clear m_CTFont.
+ (WebCore::FontPlatformData::ctFont): Moved here from SimpleFontDataCoreText.cpp and renamed.
+ * platform/graphics/mac/SimpleFontDataCoreText.cpp:
+ (WebCore::SimpleFontData::getCFStringAttributes): Updated to use FontPlatformData::ctFont().
+ * svg/SVGFontData.cpp:
+ (WebCore::SVGFontData::SVGFontData): Added an assertion.
+
+2010-08-07 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Regression: Memory corruption in tree builder
+ https://bugs.webkit.org/show_bug.cgi?id=43672
+
+ Turns out this ASSERT was wrong and we need the branch. Yay for
+ test-driven development.
+
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
+
+2010-08-07 Dirk Schulze <krit@webkit.org>
+
+ Unreviewed build-fix.
+
+ Come up with a more efficient way to represent Path segments
+ https://bugs.webkit.org/show_bug.cgi?id=41159
+
+ Landed wrong version of the patch.
+
+ * svg/SVGPathByteStreamSource.cpp:
+ (WebCore::SVGPathByteStreamSource::SVGPathByteStreamSource):
+ (WebCore::SVGPathByteStreamSource::hasMoreData):
+ * svg/SVGPathByteStreamSource.h:
+ (WebCore::SVGPathByteStreamSource::moveToNextToken):
+ * svg/SVGPathParserFactory.cpp:
+ (WebCore::SVGPathParserFactory::buildSVGPathSegListFromByteStream):
+ (WebCore::SVGPathParserFactory::createSVGPathByteStreamFromString):
+ * svg/SVGPathParserFactory.h:
+
+2010-08-07 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Come up with a more efficient way to represent Path segments
+ https://bugs.webkit.org/show_bug.cgi?id=41159
+
+ Introduce SVGPathByteStream as a fast and efficient way to organize the synchronization
+ of Path, SVG path data string and SVGPathSegList in normalized and unaltered modes.
+ Extended SVGPathParserFactory to accept SVGPathByteStreams as input source and to create
+ a SVGPathByteStream from a SVG path data string.
+
+ Doesn't affect any tests.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * svg/SVGAllInOne.cpp:
+ * svg/SVGPathByteStream.h: Added.
+ (WebCore::):
+ (WebCore::SVGPathByteStream::create):
+ (WebCore::SVGPathByteStream::data):
+ (WebCore::SVGPathByteStream::begin):
+ (WebCore::SVGPathByteStream::end):
+ (WebCore::SVGPathByteStream::append):
+ (WebCore::SVGPathByteStream::clear):
+ (WebCore::SVGPathByteStream::isEmpty):
+ (WebCore::SVGPathByteStream::SVGPathByteStream):
+ * svg/SVGPathByteStreamBuilder.cpp: Added.
+ (WebCore::SVGPathByteStreamBuilder::SVGPathByteStreamBuilder):
+ (WebCore::SVGPathByteStreamBuilder::moveTo):
+ (WebCore::SVGPathByteStreamBuilder::lineTo):
+ (WebCore::SVGPathByteStreamBuilder::lineToHorizontal):
+ (WebCore::SVGPathByteStreamBuilder::lineToVertical):
+ (WebCore::SVGPathByteStreamBuilder::curveToCubic):
+ (WebCore::SVGPathByteStreamBuilder::curveToCubicSmooth):
+ (WebCore::SVGPathByteStreamBuilder::curveToQuadratic):
+ (WebCore::SVGPathByteStreamBuilder::curveToQuadraticSmooth):
+ (WebCore::SVGPathByteStreamBuilder::arcTo):
+ (WebCore::SVGPathByteStreamBuilder::closePath):
+ * svg/SVGPathByteStreamBuilder.h: Added.
+ (WebCore::SVGPathByteStreamBuilder::setCurrentByteStream):
+ (WebCore::SVGPathByteStreamBuilder::writeType):
+ (WebCore::SVGPathByteStreamBuilder::writeFlag):
+ (WebCore::SVGPathByteStreamBuilder::writeFloat):
+ (WebCore::SVGPathByteStreamBuilder::writeFloatPoint):
+ (WebCore::SVGPathByteStreamBuilder::writeSegmentType):
+ * svg/SVGPathByteStreamSource.cpp: Added.
+ (WebCore::SVGPathByteStreamSource::SVGPathByteStreamSource):
+ (WebCore::SVGPathByteStreamSource::~SVGPathByteStreamSource):
+ (WebCore::SVGPathByteStreamSource::hasMoreData):
+ (WebCore::SVGPathByteStreamSource::parseFloat):
+ (WebCore::SVGPathByteStreamSource::parseFlag):
+ (WebCore::SVGPathByteStreamSource::parseSVGSegmentType):
+ (WebCore::SVGPathByteStreamSource::nextCommand):
+ * svg/SVGPathByteStreamSource.h: Added.
+ (WebCore::SVGPathByteStreamSource::create):
+ (WebCore::SVGPathByteStreamSource::readType):
+ (WebCore::SVGPathByteStreamSource::readFlag):
+ (WebCore::SVGPathByteStreamSource::readFloat):
+ (WebCore::SVGPathByteStreamSource::readSVGSegmentType):
+ (WebCore::SVGPathByteStreamSource::readFloatPoint):
+ * svg/SVGPathParserFactory.cpp:
+ (WebCore::globalSVGPathByteStreamBuilder):
+ (WebCore::SVGPathParserFactory::buildPathFromByteStream):
+ (WebCore::SVGPathParserFactory::buildSVGPathSegListFromByteStream):
+ (WebCore::SVGPathParserFactory::buildSVGPathByteStreamFromString):
+ * svg/SVGPathParserFactory.h:
+
+2010-08-07 Dirk Schulze <krit@webkit.org>
+
+ Not reviewed. Sort Xcode project file.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2010-08-07 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64904.
+ http://trac.webkit.org/changeset/64904
+ https://bugs.webkit.org/show_bug.cgi?id=43671
+
+ Broke the Qt Windows builders. (Requested by bbandix on
+ #webkit).
+
+ * WebCore.pri:
+ * WebCore.pro:
+ * features.pri: Removed.
+
+2010-08-07 Balazs Kelemen <kb@inf.u-szeged.hu>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Build WebKit2 into a static lib
+
+ https://bugs.webkit.org/show_bug.cgi?id=43621
+
+ Just build changes so no new tests.
+
+ * WebCore.pri: Moved feature detection logic into features.pri since we need this in WebKit2.pro as well.
+ * WebCore.pro: Moved the specification of the WebKit2 build to WebKit2.pro. Link against the static lib.
+ * features.pri: Added.
+
+2010-08-07 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Daniel Bates.
+
+ Pattern fill with image not rendered after reload
+ https://bugs.webkit.org/show_bug.cgi?id=41596
+
+ Fixed by a one-liner. Instead of just invalidating it's own resources, images also have to update
+ resources in the ancestor chain, if imageChanged() has been called (for example, a slow loading image)
+
+ Test: http/tests/misc/slow-loading-image-in-pattern.html
+
+ * rendering/RenderSVGImage.cpp:
+ (WebCore::RenderSVGImage::imageChanged):
+
+2010-08-06 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Generalize SVGPathParser to allow more than just strings as input source
+ https://bugs.webkit.org/show_bug.cgi?id=43618
+
+ Generalize SVGPathParser, by allowing different parsing sources than just strings.
+ For now only a SVGPathStringSource is available, parsing from bytestreams follows soon.
+ Each client that wants to parse strings, like Path or SVGPathSegList objects, only
+ needs to use the new central SVGPathParserFactory, which glues consumer and sources together.
+ Moved the SVGPathSegType enum from SVGPathSeg class in WebCore namespace, for
+ easier access throughout the SVG code.
+
+ Doesn't affect any tests.
+
+ * Android.mk:
+ * CMakeLists.txt
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj
+ * svg/SVGAllInOne.cpp:
+ * svg/SVGAnimateElement.cpp:
+ (WebCore::SVGAnimateElement::calculateFromAndToValues):
+ * svg/SVGAnimateMotionElement.cpp:
+ (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
+ * svg/SVGGlyphElement.cpp:
+ (WebCore::parsePathData):
+ * svg/SVGPathBuilder.cpp:
+ (WebCore::SVGPathBuilder::SVGPathBuilder):
+ (WebCore::SVGPathBuilder::moveTo):
+ (WebCore::SVGPathBuilder::lineTo):
+ (WebCore::SVGPathBuilder::curveToCubic):
+ (WebCore::SVGPathBuilder::closePath):
+ * svg/SVGPathBuilder.h:
+ (WebCore::SVGPathBuilder::setCurrentPath):
+ (WebCore::SVGPathBuilder::arcTo):
+ * svg/SVGPathConsumer.h:
+ * svg/SVGPathElement.cpp:
+ (WebCore::SVGPathElement::parseMappedAttribute):
+ * svg/SVGPathParser.cpp:
+ (WebCore::SVGPathParser::SVGPathParser):
+ (WebCore::SVGPathParser::parseClosePathSegment):
+ (WebCore::SVGPathParser::parseMoveToSegment):
+ (WebCore::SVGPathParser::parseLineToSegment):
+ (WebCore::SVGPathParser::parseLineToHorizontalSegment):
+ (WebCore::SVGPathParser::parseLineToVerticalSegment):
+ (WebCore::SVGPathParser::parseCurveToCubicSegment):
+ (WebCore::SVGPathParser::parseCurveToCubicSmoothSegment):
+ (WebCore::SVGPathParser::parseCurveToQuadraticSegment):
+ (WebCore::SVGPathParser::parseCurveToQuadraticSmoothSegment):
+ (WebCore::SVGPathParser::parseArcToSegment):
+ (WebCore::SVGPathParser::parsePathDataFromSource):
+ (WebCore::SVGPathParser::decomposeArcToCubic):
+ * svg/SVGPathParser.h:
+ (WebCore::SVGPathParser::setCurrentConsumer):
+ * svg/SVGPathParserFactory.cpp: Added.
+ (WebCore::globalSVGPathBuilder):
+ (WebCore::globalSVGPathSegListBuilder):
+ (WebCore::globalSVGPathParser):
+ (WebCore::SVGPathParserFactory::self):
+ (WebCore::SVGPathParserFactory::SVGPathParserFactory):
+ (WebCore::SVGPathParserFactory::~SVGPathParserFactory):
+ (WebCore::SVGPathParserFactory::buildPathFromString):
+ (WebCore::SVGPathParserFactory::buildSVGPathSegListFromString):
+ * svg/SVGPathParserFactory.h: Added.
+ * svg/SVGPathSeg.h:
+ (WebCore::):
+ (WebCore::SVGPathSeg::~SVGPathSeg):
+ (WebCore::SVGPathSeg::):
+ (WebCore::SVGPathSeg::pathSegType):
+ (WebCore::SVGPathSeg::pathSegTypeAsLetter):
+ (WebCore::SVGPathSeg::toString):
+ (WebCore::SVGPathSeg::associatedAttributeName):
+ (WebCore::SVGPathSeg::SVGPathSeg):
+ (WebCore::SVGPathSegSingleCoord::SVGPathSegSingleCoord):
+ (WebCore::SVGPathSegSingleCoord::setX):
+ (WebCore::SVGPathSegSingleCoord::x):
+ (WebCore::SVGPathSegSingleCoord::setY):
+ (WebCore::SVGPathSegSingleCoord::y):
+ (WebCore::SVGPathSegSingleCoord::toString):
+ * svg/SVGPathSegList.cpp:
+ (WebCore::SVGPathSegList::getPathSegAtLength):
+ (WebCore::SVGPathSegList::toPathData):
+ (WebCore::SVGPathSegList::createAnimated):
+ * svg/SVGPathSegListBuilder.cpp:
+ (WebCore::SVGPathSegListBuilder::SVGPathSegListBuilder):
+ (WebCore::SVGPathSegListBuilder::moveTo):
+ (WebCore::SVGPathSegListBuilder::lineTo):
+ (WebCore::SVGPathSegListBuilder::curveToCubic):
+ (WebCore::SVGPathSegListBuilder::curveToCubicSmooth):
+ (WebCore::SVGPathSegListBuilder::curveToQuadratic):
+ (WebCore::SVGPathSegListBuilder::curveToQuadraticSmooth):
+ (WebCore::SVGPathSegListBuilder::arcTo):
+ * svg/SVGPathSegListBuilder.h:
+ (WebCore::SVGPathSegListBuilder::setCurrentSVGPathSegList):
+ * svg/SVGPathSource.h: Added.
+ (WebCore::SVGPathSource::~SVGPathSource):
+ (WebCore::SVGPathSource::SVGPathSource):
+ * svg/SVGPathStringSource.cpp: Added.
+ (WebCore::SVGPathStringSource::SVGPathStringSource):
+ (WebCore::SVGPathStringSource::~SVGPathStringSource):
+ (WebCore::SVGPathStringSource::endOfStream):
+ (WebCore::SVGPathStringSource::parseFloat):
+ (WebCore::SVGPathStringSource::parseFlag):
+ (WebCore::SVGPathStringSource::skipSpaces):
+ (WebCore::SVGPathStringSource::parseSVGSegmentType):
+ (WebCore::SVGPathStringSource::hasRemainingCoordinatesInCurrentCommand):
+ * svg/SVGPathStringSource.h: Added.
+ (WebCore::SVGPathStringSource::create):
+
+2010-08-06 Robert Hogan <robert@webkit.org>
+
+ Reviewed by Adam Barth.
+
+ Define setPrivateBrowsingEnabled()
+ https://bugs.webkit.org/show_bug.cgi?id=42283
+
+ Define the scope of 'private browsing' in WebKit
+ See also https://bugs.webkit.org/show_bug.cgi?id=41801
+
+ * page/Settings.h:
+
+2010-08-06 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ REGRESSION (r64712): YouTube video pages have contents of <noembed> elements overlapping the video description
+ https://bugs.webkit.org/show_bug.cgi?id=43605
+
+ The old parser used to drop <noembed> on the floor. We're supposed to
+ add it to the DOM, but we don't want to create a renderer for it.
+
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::rendererIsNeeded):
+
+2010-08-06 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Fix style violations in Document
+ https://bugs.webkit.org/show_bug.cgi?id=43657
+
+ No new tests because no new functionality.
+
+ * dom/Document.cpp:
+ (WebCore::acceptsEditingFocus):
+ (WebCore::Document::Document):
+ (WebCore::Document::importNode):
+ (WebCore::Document::adoptNode):
+ (WebCore::Document::getElementById):
+ (WebCore::Document::readyState):
+ (WebCore::Document::createTreeWalker):
+ (WebCore::Document::shouldScheduleLayout):
+ (WebCore::Document::nextFocusableNode):
+ (WebCore::Document::previousFocusableNode):
+ (WebCore::Document::nodeAbsIndex):
+ (WebCore::Document::nodeWithAbsIndex):
+ (WebCore::Document::childTypeAllowed):
+ (WebCore::Document::canReplaceChild):
+ (WebCore::Document::recalcStyleSelector):
+ (WebCore::Document::setFocusedNode):
+ (WebCore::Document::attachNodeIterator):
+ (WebCore::Document::detachNodeIterator):
+ (WebCore::Document::parseQualifiedName):
+ (WebCore::Document::getImageMap):
+ (WebCore::Document::setInPageCache):
+ (WebCore::Document::addMarker):
+ (WebCore::Document::copyMarkers):
+ (WebCore::Document::shiftMarkers):
+ (WebCore::Document::setMarkersActive):
+ (WebCore::Document::parentDocument):
+ (WebCore::Document::topDocument):
+ (WebCore::FormElementKeyHash::hash):
+ (WebCore::Document::initSecurityContext):
+ * dom/Document.h:
+ (WebCore::Document::incDOMTreeVersion):
+ (WebCore::Document::domTreeVersion):
+
+2010-08-06 Eric Carlson <eric.carlson@apple.com>
+
+ Unreviewed, release Qt build fix.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::containsPaintedContent): Guard call to toRenderVideo()
+ with #if ENABLE(VIDEO).
+
+2010-08-06 Eric Carlson <eric.carlson@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ HTML5 "video" tag with poster frame defined "flashes" right before movie displays
+ https://bugs.webkit.org/show_bug.cgi?id=37591
+ <rdar://problem/5650561>
+
+ If a video element has a poster frame, display it until the playback is requested or the movie's
+ time is changed.
+
+ Test: compositing/video/video-poster.html
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_displayMode.
+ (WebCore::HTMLMediaElement::prepareForLoad): Set m_displayMode to Unknown.
+ (WebCore::HTMLMediaElement::loadResource): Call updateDisplayState to let it set configure
+ the poster, if necessary.
+ (WebCore::HTMLMediaElement::noneSupported): updatePosterImage -> updateDisplayState.
+ (WebCore::HTMLMediaElement::setNetworkState): Ditto.
+ (WebCore::HTMLMediaElement::setReadyState): Ditto.
+ (WebCore::HTMLMediaElement::finishSeek): Set display mode to Video so a video frame will be
+ displayed if a poster is currently visible.
+ (WebCore::HTMLMediaElement::mediaPlayerRepaint): updatePosterImage -> updateDisplayState.
+ (WebCore::HTMLMediaElement::updatePlayState): Set display mode to Video.
+ * html/HTMLMediaElement.h:
+ (WebCore::HTMLMediaElement::displayMode): New.
+ (WebCore::HTMLMediaElement::setDisplayMode): Ditto.
+ (WebCore::HTMLMediaElement::updateDisplayState): Ditto.
+
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::HTMLVideoElement): Remove m_shouldDisplayPosterImage.
+ (WebCore::HTMLVideoElement::attach): Call shouldDisplayPosterImage instead of checking
+ m_shouldDisplayPosterImage directly.
+ (WebCore::HTMLVideoElement::detach): Ditto.
+ (WebCore::HTMLVideoElement::parseMappedAttribute): Set m_displayMode to Unknown before calling
+ updateDisplayState so shouldDisplayPosterImage() will return the correct result. Remove the
+ PLUGIN_PROXY_FOR_VIDEO code, it is now in updateDisplayState.
+ (WebCore::HTMLVideoElement::setDisplayMode): Renamed from updatePosterImage and rework logic
+ so we tell the media engine it is OK to display video frames when there is no poster, or
+ once the media engine has something to display and the movie has started or seeked.
+ (WebCore::HTMLVideoElement::updateDisplayState): New, manage display mode based on poster
+ attribute.
+ * html/HTMLVideoElement.h:
+ (WebCore::HTMLVideoElement::shouldDisplayPosterImage):
+
+ * platform/graphics/MediaPlayer.cpp:
+ (WebCore::MediaPlayer::prepareForRendering): New, call media engine's prepareForRendering.
+ * platform/graphics/MediaPlayer.h:
+ * platform/graphics/MediaPlayerPrivate.h:
+ (WebCore::MediaPlayerPrivateInterface::prepareForRendering):
+
+ * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
+ * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+ (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_isAllowedToRender.
+ (WebCore::MediaPlayerPrivate::setUpVideoRendering):
+ (WebCore::MediaPlayerPrivate::isReadyForVideoSetup): Renamed from isReadyForRendering.
+ (WebCore::MediaPlayerPrivate::prepareForRendering): New, set m_isAllowedToRender and
+ inform the client that render tree should be updated so we correctly switch from showing
+ the poster, which often doens't use a layer, to showing video frames, which do.
+ (WebCore::MediaPlayerPrivate::updateStates): Don't call setUpVideoRendering until
+ isReadyForVideoSetup() returns true.
+ (WebCore::MediaPlayerPrivate::supportsAcceleratedRendering): isReadyForRendering -> isReadyForVideoSetup
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::containsPaintedContent): Only consider video when displaying
+ video frames so a poster won't force compositing mode.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForVideo): Ditto.
+
+ * rendering/RenderVideo.cpp:
+ (WebCore::RenderVideo::shouldDisplayVideo): New, return true when not displaying a poster.
+ * rendering/RenderVideo.h:
+
+2010-08-06 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ Accelerated 2d canvases should get compositing layers
+ https://bugs.webkit.org/show_bug.cgi?id=43362
+
+ Allows for 2d canvas rendering contexts to use a GraphicsContext3D for
+ accelerated rendering. The rendering context holds the GraphicsContext3D
+ alive and exposes it to the compositor. The 3d context itself is passed
+ down through the GraphicsContext to use for actual rendering:
+ https://bug-43362-attachments.webkit.org/attachment.cgi?id=63557
+
+ This approach will let us simultaneously prototype accelerated techniques
+ for canvas 2d and revise the design of canvas elements without destabilizing
+ all ports.
+
+ * html/HTMLCanvasElement.cpp:
+ (WebCore::HTMLCanvasElement::getContext):
+ (WebCore::HTMLCanvasElement::willDraw):
+ (WebCore::HTMLCanvasElement::makeRenderingResultsAvailable):
+ * html/canvas/CanvasRenderingContext.h:
+ (WebCore::CanvasRenderingContext::paintRenderingResultsToCanvas):
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
+ (WebCore::CanvasRenderingContext2D::isAccelerated):
+ (WebCore::CanvasRenderingContext2D::reset):
+ (WebCore::CanvasRenderingContext2D::willDraw):
+ (WebCore::CanvasRenderingContext2D::paintRenderingResultsToCanvas):
+ * html/canvas/CanvasRenderingContext2D.h:
+ (WebCore::CanvasRenderingContext2D::graphicsContext3D):
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
+ * html/canvas/WebGLRenderingContext.h:
+ * platform/graphics/GraphicsContext.h:
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::GraphicsContext::syncSoftwareCanvas):
+
+2010-08-06 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Chris Fleizach.
+
+ Make AX Code use more specific RenderObject subclass types
+ https://bugs.webkit.org/show_bug.cgi?id=43632
+
+ No functional change, thus no tests.
+
+ * accessibility/AXObjectCache.cpp:
+ (WebCore::nodeHasRole):
+ - Make this take a String instead of AtomicString, to avoid
+ thrashing the atomic string hash.
+ It would be better to take a const char* here, except
+ one caller passes nullAtom.
+ (WebCore::createFromRenderer):
+ - Split this out from getOrCreate to make it simpler.
+ - No longer needs to deal with setting a "result"
+ pointer and can instead just return.
+ - I've also made this function use RenderBoxModelObject*
+ where appropriate.
+ (WebCore::AXObjectCache::getOrCreate):
+ * accessibility/AXObjectCache.h:
+ * accessibility/AccessibilityImageMapLink.cpp:
+ (WebCore::AccessibilityImageMapLink::AccessibilityImageMapLink):
+ - Fix style.
+ * accessibility/AccessibilityMenuList.cpp:
+ (WebCore::AccessibilityMenuList::AccessibilityMenuList):
+ - Use a more specific type.
+ (WebCore::AccessibilityMenuList::renderer):
+ * accessibility/AccessibilityMenuList.h:
+ (WebCore::AccessibilityMenuList::create):
+ * accessibility/AccessibilityMenuListPopup.cpp:
+ - Need RenderMenuList.h since renderer() is a RenderMenuList*
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::renderListItemContainerForNode):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::renderBoxModelObject):
+ - New helper function, similar to Node::renderBoxModelObject()
+ (WebCore::isInlineWithContinuation):
+ (WebCore::AccessibilityRenderObject::isNativeImage):
+ (WebCore::AccessibilityRenderObject::isAttachment):
+ (WebCore::AccessibilityRenderObject::isMultiSelectable):
+ (WebCore::AccessibilityRenderObject::isReadOnly):
+ (WebCore::AccessibilityRenderObject::isFieldset):
+ (WebCore::AccessibilityRenderObject::actionElement):
+ (WebCore::AccessibilityRenderObject::stringValue):
+ (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
+ (WebCore::AccessibilityRenderObject::setValue):
+ (WebCore::AccessibilityRenderObject::widget):
+ (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
+ (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
+ (WebCore::AccessibilityRenderObject::renderObjectIsObservable):
+ (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+ (WebCore::AccessibilityRenderObject::addChildren):
+ (WebCore::msaaRoleForRenderer):
+ * accessibility/AccessibilityRenderObject.h:
+ * accessibility/AccessibilityTable.cpp:
+ (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
+ * accessibility/AccessibilityTable.h:
+ - Remove unneeded "using namespace std".
+
+2010-08-06 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ Factor an AsyncScriptRunner out of Document
+ https://bugs.webkit.org/show_bug.cgi?id=43633
+
+ This copies the existing implementation exactly. In the future
+ this will use PendingScript which handles ref counting without
+ the need for those manual ref()/deref()s. This is also currently
+ a trivial class, but a little more logic will be added to it to
+ support <script async>.
+
+ No new tests because no new functionality.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/AsyncScriptRunner.cpp: Added.
+ (WebCore::AsyncScriptRunner::AsyncScriptRunner):
+ (WebCore::AsyncScriptRunner::~AsyncScriptRunner):
+ (WebCore::AsyncScriptRunner::executeScriptSoon):
+ (WebCore::AsyncScriptRunner::suspend):
+ (WebCore::AsyncScriptRunner::resume):
+ (WebCore::AsyncScriptRunner::timerFired):
+ * dom/AsyncScriptRunner.h: Added.
+ (WebCore::AsyncScriptRunner::create):
+ (WebCore::AsyncScriptRunner::hasPendingScripts):
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::~Document):
+ * dom/Document.h:
+ (WebCore::Document::asyncScriptRunner):
+ * dom/ScriptElement.cpp:
+ (WebCore::ScriptElementData::notifyFinished):
+ * page/PageGroupLoadDeferrer.cpp:
+ (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
+ (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
+
+2010-08-06 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] Implement GLES2Canvas/Texture in terms of GraphicsContext3D instead of direct OpenGL calls
+ https://bugs.webkit.org/show_bug.cgi?id=43608
+
+ This converts all OpenGL calls in GLES2(Canvas|Texture) to calls on the corresponding GraphicsContext3D
+ API, due to feedback on https://bugs.webkit.org/show_bug.cgi?id=43362. Nearly all the changes are
+ applying the regex s/gl([A-Z])/m_context->%1</ and removing unnecessary makeCurrent() calls.
+ Other changes hilighted below.
+
+ * platform/graphics/chromium/GLES2Canvas.cpp:
+ (WebCore::affineTo3x3):
+ (WebCore::GLES2Canvas::GLES2Canvas):
+ (WebCore::GLES2Canvas::~GLES2Canvas):
+ (WebCore::GLES2Canvas::clearRect):
+ (WebCore::GLES2Canvas::fillRect):
+ (WebCore::GLES2Canvas::drawTexturedRect):
+ (WebCore::GLES2Canvas::applyCompositeOperator):
+ (WebCore::GLES2Canvas::getQuadVertices):
+ (WebCore::GLES2Canvas::getQuadIndices):
+ - use new typed XXArray classes for buffer uploads
+ (WebCore::loadShader):
+ (WebCore::GLES2Canvas::getSimpleProgram):
+ (WebCore::GLES2Canvas::getTexProgram):
+ (WebCore::GLES2Canvas::createTexture):
+ (WebCore::GLES2Canvas::checkGLError):
+ * platform/graphics/chromium/GLES2Canvas.h:
+ (WebCore::GLES2Canvas::context):
+ * platform/graphics/chromium/GLES2Texture.cpp:
+ (WebCore::GLES2Texture::GLES2Texture):
+ (WebCore::GLES2Texture::~GLES2Texture):
+ (WebCore::GLES2Texture::create):
+ (WebCore::convertFormat):
+ (WebCore::GLES2Texture::load):
+ (WebCore::GLES2Texture::bind):
+ * platform/graphics/chromium/GLES2Texture.h:
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::GraphicsContext::fillRect):
+ - add a missing restore() call to the H/W path
+ * platform/graphics/skia/ImageSkia.cpp:
+ (WebCore::drawBitmapGLES2):
+ * platform/graphics/skia/PlatformContextSkia.cpp:
+ (WebCore::PlatformContextSkia::setGraphicsContext3D):
+ (WebCore::PlatformContextSkia::uploadSoftwareToHardware):
+ - avoid applying CTM to uploads
+ (WebCore::PlatformContextSkia::readbackHardwareToSoftware):
+ * platform/graphics/skia/PlatformContextSkia.h:
+
+2010-08-06 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ Composited canvas should be treated the same by the compositor and not be WebGL specific
+ https://bugs.webkit.org/show_bug.cgi?id=43589
+
+ This treats all GraphicsContext3D-backed layers the same instead of special casing WebGL.
+ The cross-platform change is to rename GraphicsLayer::setContentsToWebGL() to
+ GraphicsLayer::setContentsToCanvas() and to rename all implementations.
+
+ This patch also renames the chromium class used for accelerating these layers.
+
+ Cross platform changes:
+ * WebCore.gypi:
+ * platform/graphics/GraphicsLayer.h:
+ (WebCore::GraphicsLayer::setContentsToCanvas):
+ Rename the function on the base class. GraphicsLayerCA and GraphicsLayerChromium implement this.
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::isAcceleratedCanvas):
+ Helper function to see if a renderer is associated with an accelerated compositing layer.
+ (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
+ (WebCore::RenderLayerBacking::containsPaintedContent):
+ (WebCore::RenderLayerBacking::rendererContentChanged):
+ Chromium specific changes:
+ * platform/graphics/chromium/CanvasLayerChromium.cpp: Added.
+ (WebCore::CanvasLayerChromium::create):
+ (WebCore::CanvasLayerChromium::CanvasLayerChromium):
+ (WebCore::CanvasLayerChromium::textureId):
+ (WebCore::CanvasLayerChromium::updateTextureContents):
+ (WebCore::CanvasLayerChromium::setContext):
+ * platform/graphics/chromium/CanvasLayerChromium.h: Added.
+ (WebCore::CanvasLayerChromium::drawsContent):
+ (WebCore::CanvasLayerChromium::ownsTexture):
+ (WebCore::CanvasLayerChromium::shaderProgramId):
+ (WebCore::CanvasLayerChromium::setShaderProgramId):
+ * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+ (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
+ (WebCore::GraphicsLayerChromium::setContentsToCanvas):
+ * platform/graphics/chromium/GraphicsLayerChromium.h:
+ (WebCore::GraphicsLayerChromium::):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::drawLayer):
+ (WebCore::LayerRendererChromium::initializeSharedGLObjects):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (WebCore::LayerRendererChromium::):
+ * platform/graphics/chromium/WebGLLayerChromium.cpp: Removed.
+ * platform/graphics/chromium/WebGLLayerChromium.h: Removed.
+ Mac specific changes:
+ * platform/graphics/mac/GraphicsLayerCA.h:
+ (WebCore::GraphicsLayerCA::):
+ * platform/graphics/mac/GraphicsLayerCA.mm:
+ (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
+ (WebCore::GraphicsLayerCA::updateContentsCanvasLayer):
+ (WebCore::GraphicsLayerCA::setContentsToCanvas):
+
+2010-08-06 Patrick Gansterer <paroga@paroga.com>
+
+ Reviewed by Eric Seidel.
+
+ Add PluginView::bindingInstance() to PluginViewNone
+ https://bugs.webkit.org/show_bug.cgi?id=42936
+
+ * bindings/js/ScriptControllerEfl.cpp:
+ (WebCore::ScriptController::createScriptInstanceForWidget): Removed workaround.
+ * plugins/PluginViewNone.cpp: Added property svn:eol-style.
+ (WebCore::PluginView::bindingInstance): Added missing method and use it on WinCE.
+
+2010-08-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Xan Lopez.
+
+ Use new "package" name also for the directory where the inspector
+ support files are installed.
+
+ * GNUmakefile.am:
+
+2010-08-06 Jian Li <jianli@chromium.org>
+
+ Fix chromium build break.
+
+ * inspector/InspectorDebuggerAgent.h:
+
+2010-08-06 Dirk Schulze <krit@webkit.org>
+
+ Not reviewed. Sort Xcode project file.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * accessibility/AXObjectCache.h:
+ * accessibility/AccessibilityARIAGrid.h:
+ * accessibility/AccessibilityListBoxOption.h:
+ * accessibility/AccessibilityObject.h:
+ * accessibility/AccessibilityRenderObject.h:
+ * accessibility/AccessibilityTable.h:
+ * bindings/cpp/WebDOMCString.h:
+ * bindings/cpp/WebDOMString.h:
+ * bindings/gobject/ConvertToUTF8String.h:
+ * bindings/js/DOMWrapperWorld.h:
+ * bindings/js/JSDOMBinding.h:
+ * bindings/js/JSDOMWindowBase.h:
+ * bindings/js/JSMessagePortCustom.h:
+ * bindings/js/JavaScriptCallFrame.h:
+ * bindings/js/ScriptController.h:
+ * bindings/js/ScriptProfile.h:
+ * bindings/js/ScriptSourceProvider.h:
+ * bindings/js/ScriptString.h:
+ * bindings/js/WorkerScriptController.h:
+ * bindings/objc/DOMImplementationFront.h:
+ * bindings/v8/ScheduledAction.h:
+ * bindings/v8/ScriptController.h:
+ * bindings/v8/V8DOMWindowShell.h:
+ * bindings/v8/V8Proxy.h:
+ * bindings/v8/V8Utilities.h:
+ * bindings/v8/custom/V8CustomXPathNSResolver.h:
+ * bridge/c/c_utility.h:
+ * css/CSSFontSelector.h:
+ * css/CSSHelper.h:
+ * css/CSSOMUtils.h:
+ * css/CSSPrimitiveValue.h:
+ * css/MediaList.h:
+ * css/StyleBase.h:
+ * css/StyleSheetList.h:
+ * css/WebKitCSSKeyframesRule.h:
+ * dom/CheckedRadioButtons.h:
+ * dom/DOMImplementation.h:
+ * dom/DocumentMarker.h:
+ * dom/DynamicNodeList.h:
+ * dom/EventTarget.h:
+ * dom/MessagePort.h:
+ * dom/MessagePortChannel.h:
+ * dom/NameNodeList.h:
+ * dom/Node.h:
+ * dom/NodeList.h:
+ * dom/OptionGroupElement.h:
+ * dom/ScriptExecutionContext.h:
+ * dom/SelectElement.h:
+ * dom/ViewportArguments.h:
+ * dom/make_names.pl:
+ * editing/HTMLInterchange.h:
+ * editing/htmlediting.h:
+ * editing/markup.h:
+ * html/CollectionCache.h:
+ * html/DOMFormData.h:
+ * html/DataGridColumnList.h:
+ * html/DateComponents.h:
+ * html/FileStream.h:
+ * html/FileStreamProxy.h:
+ * html/FormDataList.h:
+ (WebCore::FormDataList::appendData):
+ * html/HTMLCollection.h:
+ * html/HTMLElementStack.h:
+ * html/HTMLFormattingElementList.h:
+ * html/HTMLParserQuirks.h:
+ * html/HTMLQuoteElement.h:
+ * html/HTMLScriptRunnerHost.h:
+ * html/StepRange.h:
+ * html/canvas/CanvasGradient.h:
+ * html/canvas/CanvasNumberArray.h:
+ * html/canvas/CanvasPattern.h:
+ * inspector/InjectedScript.h:
+ * inspector/InspectorCSSStore.h:
+ * inspector/InspectorClient.h:
+ * inspector/InspectorFrontendClient.h:
+ * inspector/InspectorValues.h:
+ * inspector/ScriptDebugListener.h:
+ * loader/CachedResourceClient.h:
+ * loader/CrossOriginAccessControl.h:
+ * loader/DocumentThreadableLoader.h:
+ * loader/FrameLoaderClient.h:
+ * loader/RedirectScheduler.h:
+ * loader/SubframeLoader.h:
+ * loader/appcache/DOMApplicationCache.h:
+ * loader/archive/ArchiveFactory.h:
+ * loader/icon/IconDatabaseClient.h:
+ * notifications/NotificationPresenter.h:
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+ * page/Console.h:
+ * page/ContextMenuClient.h:
+ * page/DOMSelection.h:
+ * page/EditorClient.h:
+ * page/EventHandler.h:
+ * page/FrameView.h:
+ * page/GeolocationPositionCache.h:
+ * page/History.h:
+ * page/Location.h:
+ * page/Navigator.h:
+ * page/NavigatorBase.h:
+ * page/PluginHalterClient.h:
+ * page/PrintContext.h:
+ * page/SpeechInput.h:
+ * page/SpeechInputListener.h:
+ * page/animation/AnimationController.h:
+ * platform/CookieJar.h:
+ * platform/CrossThreadCopier.h:
+ * platform/DragImage.h:
+ * platform/FileSystem.h:
+ * platform/Language.h:
+ * platform/Length.h:
+ * platform/LinkHash.h:
+ * platform/LocalizationStrategy.h:
+ * platform/LocalizedStrings.h:
+ * platform/Logging.h:
+ * platform/Pasteboard.h:
+ * platform/PopupMenuClient.h:
+ * platform/SearchPopupMenu.h:
+ * platform/Widget.h:
+ * platform/cf/BinaryPropertyList.h:
+ * platform/chromium/ChromiumBridge.h:
+ * platform/chromium/ClipboardUtilitiesChromium.h:
+ * platform/cocoa/KeyEventCocoa.h:
+ * platform/graphics/Color.h:
+ * platform/graphics/FontCache.h:
+ * platform/graphics/FontData.h:
+ * platform/graphics/FontSelector.h:
+ * platform/graphics/GraphicsTypes.h:
+ * platform/graphics/Icon.h:
+ * platform/graphics/ImageBuffer.h:
+ * platform/graphics/ImageSource.h:
+ * platform/graphics/MediaPlayer.h:
+ * platform/graphics/MediaPlayerPrivate.h:
+ * platform/graphics/Path.h:
+ * platform/graphics/StringTruncator.h:
+ * platform/graphics/cairo/FontCustomPlatformData.h:
+ * platform/graphics/cairo/FontPlatformData.h:
+ * platform/graphics/cg/FontPlatformData.h:
+ * platform/graphics/cg/ImageSourceCG.h:
+ * platform/graphics/chromium/FontCustomPlatformData.h:
+ * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
+ * platform/graphics/chromium/FontPlatformDataLinux.h:
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ * platform/graphics/haiku/FontCustomPlatformData.h:
+ * platform/graphics/mac/FontCustomPlatformData.h:
+ * platform/graphics/mac/FontPlatformData.h:
+ * platform/graphics/qt/FontCustomPlatformData.h:
+ * platform/graphics/qt/FontPlatformData.h:
+ * platform/graphics/win/FontCustomPlatformData.h:
+ * platform/graphics/win/FontCustomPlatformDataCairo.h:
+ * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
+ * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
+ * platform/graphics/wince/FontPlatformData.h:
+ * platform/graphics/wince/MediaPlayerPrivateWince.h:
+ * platform/graphics/wince/MediaPlayerProxy.h:
+ * platform/graphics/wx/FontCustomPlatformData.h:
+ * platform/graphics/wx/FontPlatformData.h:
+ * platform/mac/PasteboardHelper.h:
+ * platform/network/DNS.h:
+ * platform/network/FormData.h:
+ * platform/network/FormDataBuilder.h:
+ * platform/network/HTTPParsers.h:
+ * platform/text/Hyphenation.h:
+ * platform/text/LineEnding.h:
+ * platform/text/TextCodec.h:
+ * platform/text/TextEncoding.h:
+ * platform/text/TextStream.h:
+ * platform/win/BString.h:
+ * platform/win/ClipboardUtilitiesWin.h:
+ * platform/win/WCDataObject.h:
+ * platform/win/WebCoreTextRenderer.h:
+ * plugins/DOMMimeType.h:
+ * plugins/DOMMimeTypeArray.h:
+ * plugins/DOMPlugin.h:
+ * plugins/DOMPluginArray.h:
+ * rendering/CounterNode.h:
+ * rendering/HitTestResult.h:
+ * rendering/RenderObjectChildList.h:
+ * rendering/RenderText.h:
+ * rendering/RenderTreeAsText.h:
+ * rendering/TextControlInnerElements.h:
+ * rendering/style/ContentData.h:
+ * rendering/style/RenderStyle.h:
+ * storage/DatabaseAuthorizer.h:
+ * storage/DatabaseTrackerClient.h:
+ * storage/SQLTransaction.h:
+ * storage/SQLTransactionSync.h:
+ * storage/Storage.h:
+ * storage/chromium/DatabaseObserver.h:
+ * svg/SVGAnimatedTemplate.h:
+ * svg/SVGDocumentExtensions.h:
+ * svg/SVGGlyphElement.h:
+ * svg/SVGHKernElement.h:
+ * svg/SVGNumberList.h:
+ * svg/SVGPointList.h:
+ * svg/SVGPreserveAspectRatio.h:
+ * svg/SVGStylable.h:
+ * svg/SVGTests.h:
+ * svg/SVGTransformList.h:
+ * svg/SVGTransformable.h:
+ * svg/SVGVKernElement.h:
+ * websockets/ThreadableWebSocketChannel.h:
+ * websockets/ThreadableWebSocketChannelClientWrapper.h:
+ * websockets/WebSocket.h:
+ * websockets/WebSocketChannel.h:
+ * websockets/WebSocketHandshakeResponse.h:
+ * wml/WMLErrorHandling.h:
+ * wml/WMLPageState.h:
+ * wml/WMLVariables.h:
+ * workers/DefaultSharedWorkerRepository.h:
+ * workers/SharedWorkerRepository.h:
+ * workers/Worker.h:
+ * workers/WorkerContextProxy.h:
+ * workers/WorkerLoaderProxy.h:
+ * workers/WorkerLocation.h:
+ * workers/WorkerMessagingProxy.h:
+ * workers/WorkerReportingProxy.h:
+ * workers/WorkerThread.h:
+ * xml/DOMParser.h:
+ * xml/XMLHttpRequestUpload.h:
+ * xml/XPathEvaluator.h:
+ * xml/XPathExpression.h:
+ * xml/XPathNSResolver.h:
+ * xml/XPathResult.h:
+ * xml/XPathUtil.h:
+
+2010-08-04 Zhenyao Mo <zmo@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ WebGLBuffer::associateBufferData(ArrayBufferView* array) copies incorrect data for sliced views
+ https://bugs.webkit.org/show_bug.cgi?id=42124
+
+ * html/canvas/WebGLBuffer.cpp:
+ (WebCore::WebGLBuffer::associateBufferDataImpl): Helper function that's called by all associateBufferData().
+ (WebCore::WebGLBuffer::associateBufferData): Call associateBufferDataImpl().
+ (WebCore::WebGLBuffer::associateBufferSubDataImpl): Helper function that's called by all associateBufferSubData().
+ (WebCore::WebGLBuffer::associateBufferSubData): Call associateBufferSubDataImpl().
+ * html/canvas/WebGLBuffer.h: Declare helper functions.
+
+2010-08-06 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ noembed should respect whether plugins are enabled
+ https://bugs.webkit.org/show_bug.cgi?id=43611
+
+ This instruction isn't in the HTML5 spec, but it seems like the right
+ thing to do. I suspect this is because the spec doesn't understand
+ that plugins can be disabled.
+
+ I'm not sure how we can test this in DumpRenderTree, but I'm open to
+ suggestions.
+
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::adjustedLexerState):
+ (WebCore::HTMLTreeBuilder::processStartTagForInBody):
+ (WebCore::HTMLTreeBuilder::processStartTagForInHead):
+ (WebCore::HTMLTreeBuilder::scriptEnabled):
+ (WebCore::HTMLTreeBuilder::pluginsEnabled):
+ * html/HTMLTreeBuilder.h:
+
+2010-08-06 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Factor out PendingScript and protect its members
+ https://bugs.webkit.org/show_bug.cgi?id=43391
+
+ This will be shared by AsyncScriptRunner.
+
+ No new tests because no new functionality.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/PendingScript.cpp: Added.
+ (WebCore::PendingScript::~PendingScript):
+ (WebCore::PendingScript::element):
+ (WebCore::PendingScript::releaseElementAndClear):
+ (WebCore::PendingScript::setCachedScript):
+ (WebCore::PendingScript::cachedScript):
+ * dom/PendingScript.h: Added.
+ (WebCore::PendingScript::PendingScript):
+ (WebCore::PendingScript::startingLineNumber):
+ (WebCore::PendingScript::watchingForLoad):
+ (WebCore::PendingScript::setWatchingForLoad):
+ (WebCore::PendingScript::hasElement):
+ (WebCore::PendingScript::adoptElement):
+ (WebCore::PendingScript::notifyFinished):
+ * html/HTMLScriptRunner.cpp:
+ (WebCore::HTMLScriptRunner::sourceFromPendingScript):
+ (WebCore::HTMLScriptRunner::haveParsingBlockingScript):
+ (WebCore::HTMLScriptRunner::requestScript):
+ * html/HTMLScriptRunner.h:
+
+2010-08-06 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Darin Adler.
+
+ Change permission to access methods in XMLDocumentParser.h
+ https://bugs.webkit.org/show_bug.cgi?id=43180
+
+ Change permission to access wellFormed(), lineNumber() and columnNumber()
+ in XMLDocumentParser.h. Because, the methods are used by WML.
+
+ * dom/XMLDocumentParser.h:
+ (WebCore::XMLDocumentParser::wellFormed): Change accebility permission.
+
+2010-08-06 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Gustavo Noronha Silva.
+
+ [GTK] Support for image drags
+ https://bugs.webkit.org/show_bug.cgi?id=40788
+
+ Add image drag-and-drop support for WebKit GTK+.
+
+ * platform/gtk/ClipboardGtk.cpp:
+ (WebCore::ClipboardGtk::setDragImage): Filled this stub.
+ (WebCore::ClipboardGtk::setDragImageElement): Filled this stub.
+ (WebCore::ClipboardGtk::createDragImage): Filled this stub.
+ (WebCore::ClipboardGtk::declareAndWriteDragImage): Write the image URL, markup, and image itself to the data object member.
+ * platform/gtk/ClipboardGtk.h: Brought method declarations into line with the parent class.
+
+2010-08-06 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: extract debugger implementation into InspectorDebuggerAgent
+ https://bugs.webkit.org/show_bug.cgi?id=42340
+
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::connectFrontend):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::disableDebugger):
+ (WebCore::InspectorController::resume):
+ (WebCore::InspectorController::loadBreakpoints):
+ (WebCore::InspectorController::saveBreakpoints):
+ * inspector/InspectorController.h:
+ (WebCore::InspectorController::debuggerAgent):
+ * inspector/InspectorDebuggerAgent.cpp: Added.
+ (WebCore::md5Base16):
+ (WebCore::formatBreakpointId):
+ (WebCore::InspectorDebuggerAgent::create):
+ (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
+ (WebCore::InspectorDebuggerAgent::~InspectorDebuggerAgent):
+ (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled):
+ (WebCore::InspectorDebuggerAgent::activateBreakpoints):
+ (WebCore::InspectorDebuggerAgent::deactivateBreakpoints):
+ (WebCore::InspectorDebuggerAgent::setBreakpoint):
+ (WebCore::InspectorDebuggerAgent::removeBreakpoint):
+ (WebCore::InspectorDebuggerAgent::editScriptSource):
+ (WebCore::InspectorDebuggerAgent::getScriptSource):
+ (WebCore::InspectorDebuggerAgent::pause):
+ (WebCore::InspectorDebuggerAgent::resume):
+ (WebCore::InspectorDebuggerAgent::stepOverStatement):
+ (WebCore::InspectorDebuggerAgent::stepIntoStatement):
+ (WebCore::InspectorDebuggerAgent::stepOutOfFunction):
+ (WebCore::InspectorDebuggerAgent::setPauseOnExceptionsState):
+ (WebCore::InspectorDebuggerAgent::clearForPageNavigation):
+ (WebCore::InspectorDebuggerAgent::currentCallFrames):
+ (WebCore::InspectorDebuggerAgent::loadBreakpoints):
+ (WebCore::InspectorDebuggerAgent::saveBreakpoints):
+ (WebCore::InspectorDebuggerAgent::didParseSource):
+ (WebCore::InspectorDebuggerAgent::failedToParseSource):
+ (WebCore::InspectorDebuggerAgent::didPause):
+ (WebCore::InspectorDebuggerAgent::didContinue):
+ (WebCore::InspectorDebuggerAgent::remoteFrontend):
+ * inspector/InspectorDebuggerAgent.h: Added.
+ * inspector/InspectorFrontend.cpp:
+ * inspector/InspectorFrontend.h:
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel):
+
+2010-08-06 Dean Jackson <dino@apple.com>
+
+ Reviewed by Simon Fraser and Steve Block.
+
+ https://bugs.webkit.org/show_bug.cgi?id=42865
+ Implement DeviceMotionEvent
+
+ Implement the DeviceMotionEvent interface as defined
+ in http://dev.w3.org/geo/api/spec-source-orientation.html
+ This is currently an empty implementation, in that there is
+ no motion client connected - the platform implementations
+ will need to do that.
+
+ Tests: fast/dom/DeviceMotion/create-event.html
+ fast/dom/DeviceMotion/optional-event-properties.html
+ fast/dom/DeviceMotion/window-property.html
+
+ * Android.derived.jscbindings.mk:
+ * Android.derived.v8bindings.mk:
+ * Android.jscbindings.mk:
+ * Android.mk:
+ * Android.v8bindings.mk:
+ * CMakeLists.txt:
+ * Configurations/FeatureDefines.xcconfig:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ - Add new files for DeviceMotionEvent build support
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ * bindings/generic/RuntimeEnabledFeatures.h:
+ - new runtime flags for device motion
+ * bindings/js/JSDeviceMotionEventCustom.cpp: Added.
+ * bindings/v8/custom/V8DeviceMotionEventCustom.cpp: Added.
+ - Custom JS binding to translate property access through
+ to the DeviceMotionData object that the Event holds
+ * bindings/js/JSEventCustom.cpp:
+ - Include the custom code for DeviceMotionEvent
+ * dom/DeviceMotionClient.h: Added.
+ - Pure virtual client for DeviceMotion access
+ * dom/DeviceMotionController.cpp: Added.
+ * dom/DeviceMotionController.h: Added.
+ - Controller class that manages event dispatch
+ * dom/DeviceMotionData.cpp: Added.
+ * dom/DeviceMotionData.h: Added.
+ - Representation of the data that comes from a device motion
+ client that is then used within the event.
+ * dom/DeviceMotionEvent.cpp: Added.
+ * dom/DeviceMotionEvent.h: Added.
+ * dom/DeviceMotionEvent.idl: Added.
+ - The actual event implementation
+ * dom/Document.cpp:
+ (WebCore::Document::createEvent):
+ - Update createEvent to allow "devicemotion" events
+ * dom/Event.cpp:
+ * dom/Event.h:
+ - isDeviceMotionEvent virtual method
+ * dom/EventNames.h:
+ - new "devicemotion" event type
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::addEventListener):
+ * page/DOMWindow.h:
+ * page/DOMWindow.idl:
+ - allow creation of "devicemotion" events and pass registration
+ through to the Page's deviceMotionController object
+ * page/Page.cpp:
+ * page/Page.h:
+ - new PageClient for deviceMotionController
+
+2010-08-06 Kavita Kanetkar <kkanetkar@chromium.org>
+
+ Reviewed by Joseph Pecoraro.
+
+ Web Inspector: Remove "Online/Offline" icon for Chrome's appcache devtools UI.
+ https://bugs.webkit.org/show_bug.cgi?id=43450
+
+ * inspector/front-end/ApplicationCacheItemsView.js:
+ (WebInspector.ApplicationCacheItemsView):
+ (WebInspector.ApplicationCacheItemsView.prototype.get statusBarItems):
+ (WebInspector.ApplicationCacheItemsView.prototype.updateNetworkState):
+ * inspector/front-end/Settings.js:
+
+2010-08-06 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed. Rolling out 64835, 64836 and 64839.
+
+ * Android.jscbindings.mk:
+ * Android.v8bindings.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSBindingsAllInOne.cpp:
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::openDatabase):
+ * bindings/js/JSDatabaseCustom.cpp: Added.
+ (WebCore::JSDatabase::changeVersion):
+ (WebCore::createTransaction):
+ (WebCore::JSDatabase::transaction):
+ (WebCore::JSDatabase::readTransaction):
+ * bindings/js/JSDatabaseSyncCustom.cpp: Added.
+ (WebCore::JSDatabaseSync::changeVersion):
+ (WebCore::createTransaction):
+ (WebCore::JSDatabaseSync::transaction):
+ (WebCore::JSDatabaseSync::readTransaction):
+ * bindings/js/JSWorkerContextCustom.cpp:
+ (WebCore::JSWorkerContext::openDatabase):
+ (WebCore::JSWorkerContext::openDatabaseSync):
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ * bindings/scripts/CodeGeneratorJS.pm:
+ * bindings/scripts/CodeGeneratorV8.pm:
+ * bindings/scripts/test/JS/JSTestCallback.cpp:
+ (WebCore::JSTestCallback::~JSTestCallback):
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
+ (WebCore::jsTestObjPrototypeFunctionSerializedValue):
+ (WebCore::jsTestObjPrototypeFunctionIdbKey):
+ (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
+ * bindings/scripts/test/TestObj.idl:
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::TestObjInternal::voidMethodWithArgsCallback):
+ (WebCore::TestObjInternal::intMethodWithArgsCallback):
+ (WebCore::TestObjInternal::objMethodWithArgsCallback):
+ (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback):
+ (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
+ (WebCore::TestObjInternal::serializedValueCallback):
+ (WebCore::TestObjInternal::idbKeyCallback):
+ (WebCore::TestObjInternal::customArgsAndExceptionCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
+ (WebCore::TestObjInternal::methodWithOptionalArgCallback):
+ (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
+ (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
+ (WebCore::TestObjInternal::methodWithCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
+ (WebCore::TestObjInternal::overloadedMethod1Callback):
+ (WebCore::TestObjInternal::overloadedMethod2Callback):
+ (WebCore::TestObjInternal::overloadedMethod3Callback):
+ (WebCore::TestObjInternal::overloadedMethod4Callback):
+ (WebCore::):
+ (WebCore::ConfigureV8TestObjTemplate):
+ * bindings/v8/V8Binding.h:
+ (WebCore::String):
+ (WebCore::AtomicString):
+ * bindings/v8/custom/V8DOMWindowCustom.cpp:
+ (WebCore::V8DOMWindow::openDatabaseCallback):
+ * bindings/v8/custom/V8DatabaseCustom.cpp: Added.
+ (WebCore::V8Database::changeVersionCallback):
+ (WebCore::createTransaction):
+ (WebCore::V8Database::transactionCallback):
+ (WebCore::V8Database::readTransactionCallback):
+ * bindings/v8/custom/V8DatabaseSyncCustom.cpp: Added.
+ (WebCore::V8DatabaseSync::changeVersionCallback):
+ (WebCore::createTransaction):
+ (WebCore::V8DatabaseSync::transactionCallback):
+ (WebCore::V8DatabaseSync::readTransactionCallback):
+ * bindings/v8/custom/V8WorkerContextCustom.cpp:
+ (WebCore::V8WorkerContext::openDatabaseCallback):
+ (WebCore::V8WorkerContext::openDatabaseSyncCallback):
+ * page/DOMWindow.idl:
+ * storage/Database.cpp:
+ (WebCore::Database::transaction):
+ * storage/Database.h:
+ * storage/Database.idl:
+ * storage/DatabaseSync.cpp:
+ (WebCore::DatabaseSync::transaction):
+ * storage/DatabaseSync.h:
+ * storage/DatabaseSync.idl:
+ * workers/WorkerContext.idl:
+
+2010-08-06 Dumitru Daniliuc <dumi@chromium.org>
+
+ Unreviewed, fix the "GTK Linux 64-bit Debug" bot.
+
+ CodeGeneratorGObject.pm doesn't know yet how to auto-generate
+ callbacks, so we should not auto-generate functions that take
+ callbacks as parameters. This shouldn't break anything, because
+ all these functions were marked as ["Custom"] until now, and this
+ code generator skipped those functions anyway.
+
+ * bindings/scripts/CodeGeneratorGObject.pm:
+
+2010-08-06 Dumitru Daniliuc <dumi@chromium.org>
+
+ Unreviewed, "Qt Linux Realese minimal" build fix.
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+
+2010-08-06 Dumitru Daniliuc <dumi@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Auto-generate all HTML5 DB bindings.
+ https://bugs.webkit.org/show_bug.cgi?id=43382
+
+ * Android.jscbindings.mk: Remove {JS|V8}Database{Sync}Custom.cpp
+ and the custom implementations of openDatabas{Sync}().
+ * Android.v8bindings.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSBindingsAllInOne.cpp:
+ * bindings/js/JSDOMWindowCustom.cpp:
+ * bindings/js/JSDatabaseCustom.cpp: Removed.
+ * bindings/js/JSDatabaseSyncCustom.cpp: Removed.
+ * bindings/js/JSWorkerContextCustom.cpp:
+ * bindings/v8/custom/V8DOMWindowCustom.cpp:
+ * bindings/v8/custom/V8DatabaseCustom.cpp: Removed.
+ * bindings/v8/custom/V8DatabaseSyncCustom.cpp: Removed.
+ * bindings/v8/custom/V8WorkerContextCustom.cpp:
+
+ * bindings/scripts/CodeGeneratorJS.pm: Change the code generators
+ to check that a value was passed for each non-optional argument,
+ and that the value can be converted to the argument type.
+ * bindings/scripts/CodeGeneratorV8.pm:
+ * bindings/scripts/test/JS/JSTestCallback.cpp:
+ (WebCore::JSTestCallback::~JSTestCallback):
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
+ (WebCore::jsTestObjPrototypeFunctionSerializedValue):
+ (WebCore::jsTestObjPrototypeFunctionIdbKey):
+ (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
+ (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
+ * bindings/scripts/test/TestObj.idl:
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::TestObjInternal::voidMethodWithArgsCallback):
+ (WebCore::TestObjInternal::intMethodWithArgsCallback):
+ (WebCore::TestObjInternal::objMethodWithArgsCallback):
+ (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback):
+ (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
+ (WebCore::TestObjInternal::serializedValueCallback):
+ (WebCore::TestObjInternal::idbKeyCallback):
+ (WebCore::TestObjInternal::customArgsAndExceptionCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
+ (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
+ (WebCore::TestObjInternal::methodWithOptionalArgCallback):
+ (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
+ (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
+ (WebCore::TestObjInternal::methodWithCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
+ (WebCore::TestObjInternal::overloadedMethod1Callback):
+ (WebCore::TestObjInternal::overloadedMethod2Callback):
+ (WebCore::TestObjInternal::overloadedMethod3Callback):
+ (WebCore::TestObjInternal::overloadedMethod4Callback):
+ (WebCore::):
+ (WebCore::ConfigureV8TestObjTemplate):
+ * bindings/v8/V8Binding.h:
+ (WebCore::String):
+ (WebCore::AtomicString):
+
+ * page/DOMWindow.idl: Minor changes required by the auto-generated
+ bindings.
+ * storage/Database.cpp:
+ (WebCore::Database::transaction):
+ (WebCore::Database::readTransaction):
+ (WebCore::Database::runTransaction):
+ * storage/Database.h:
+ * storage/Database.idl:
+ * storage/DatabaseSync.cpp:
+ (WebCore::DatabaseSync::transaction):
+ (WebCore::DatabaseSync::readTransaction):
+ (WebCore::DatabaseSync::runTransaction):
+ * storage/DatabaseSync.h:
+ * storage/DatabaseSync.idl:
+ * workers/WorkerContext.idl:
+
+2010-08-06 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Not reviewed. Sort Xcode project file.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2010-08-06 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Not reviewed. Fix warning, breaking win build.
+
+ * svg/SVGLength.cpp:
+ (WebCore::SVGLength::toCSSPrimitiveValue):
+
+2010-08-06 Alexey Proskuryakov <ap@apple.com>
+
+ Fix crashing Leopard and Gtk bots.
+
+ * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
+ Don't register ISO8859-16, because older versions of ICU don't support ISO-8859-16, causing
+ crashes when we try to register an alias. Also, we don't need it, because Firefox doesn't
+ support this particular alias (it supports ISO8859-1 to ISO8859-15, but only supports the
+ main name for ISO-8859-16).
+
+2010-08-06 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Dirk Schulze.
+
+ SVG - stroke-width:0 bug with stroke other than "none"
+ https://bugs.webkit.org/show_bug.cgi?id=42387
+
+ Stop storing refcounted CSSValue/CSSValueList objects in SVGRenderStyle, replacing them with SVGLength types.
+ Allows us to directly specify default values for stroke-dashoffset/width in the SVGRenderStyle, fixing a problem
+ with stroke-width animations when resetting to the original stored baseVal, exposed in svg/W3C-1.1/animate-elem-40-t.svg
+ Originally discovered by Fady Samuel.
+
+ Test: svg/custom/path-zero-strokewidth.svg
+
+ * css/SVGCSSComputedStyleDeclaration.cpp:
+ (WebCore::strokeDashArrayToCSSValueList): New helper function converting from Vector<SVGLength> to CSSValueList.
+ (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue): Convert SVGLength values to CSSPrimitiveValues.
+ * css/SVGCSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applySVGProperty): Convert CSSPrimitiveValues to SVGLength objects, for SVGRenderStyle storage.
+ * rendering/RenderPath.cpp:
+ (WebCore::RenderPath::calculateMarkerBoundsIfNeeded): Just grab strokeWidth SVGLength value from SVGRenderSTyle, no need to call cssPrimitiveToLength anymore.
+ * rendering/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::strokeBoundingBox): Ditto.
+ * rendering/SVGCharacterLayoutInfo.cpp:
+ (WebCore::calculateBaselineShift): Ditto (for baseline-shift).
+ * rendering/SVGInlineTextBox.cpp:
+ (WebCore::SVGInlineTextBox::buildLayoutInformation): Ditto (for kerning).
+ * rendering/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::applyStrokeStyleToContext): Ditto (for stroke-width/stroke-dashoffset/stroke-dasharray).
+ * rendering/SVGRenderSupport.h:
+ * rendering/SVGRenderTreeAsText.cpp:
+ (WebCore::writeStyle): Ditto.
+ * rendering/SVGTextLayoutUtilities.cpp:
+ (WebCore::calculateCSSKerning): Ditto.
+ * rendering/SVGTextLayoutUtilities.h:
+ * rendering/style/SVGRenderStyle.cpp: Remove no longer needed cssPrimitiveToLength function.
+ * rendering/style/SVGRenderStyle.h: Stop storing RefPtr<CSSValue> / RefPtr<CSSValueList> but use SVGLength/Vector<SVGLength>.
+ (WebCore::SVGRenderStyle::initialStrokeDashArray): Allows us to specify correct default values, instead of null pointers.
+ (WebCore::SVGRenderStyle::initialBaselineShiftValue): Specify 0px default value.
+ (WebCore::SVGRenderStyle::initialKerning): Ditto.
+ (WebCore::SVGRenderStyle::initialStrokeDashOffset): Ditto.
+ (WebCore::SVGRenderStyle::initialStrokeWidth): Specify 1px default value.
+ (WebCore::SVGRenderStyle::setStrokeDashArray): Takes a Vector<SVGLength> now, not a PassRefPtr<CSSValueList>.
+ (WebCore::SVGRenderStyle::setStrokeWidth): Takes a SVGLength now, not a PassRefPtr<CSSValue>.
+ (WebCore::SVGRenderStyle::setStrokeDashOffset): Ditto.
+ (WebCore::SVGRenderStyle::setKerning): Ditto.
+ (WebCore::SVGRenderStyle::setStopColor): Pass Color as const-reference.
+ (WebCore::SVGRenderStyle::setFloodColor): Ditto.
+ (WebCore::SVGRenderStyle::setLightingColor): Ditto.
+ (WebCore::SVGRenderStyle::setBaselineShiftValue): Takes a SVGLength now, not a PassRefPtr<CSSValue>.
+ (WebCore::SVGRenderStyle::setShadow): Reformat, had wrong style.
+ (WebCore::SVGRenderStyle::setClipperResource): Pass String as const-reference.
+ (WebCore::SVGRenderStyle::setFilterResource): Ditto.
+ (WebCore::SVGRenderStyle::setMaskerResource): Ditto.
+ (WebCore::SVGRenderStyle::setMarkerStartResource): Ditto.
+ (WebCore::SVGRenderStyle::setMarkerMidResource): Ditto.
+ (WebCore::SVGRenderStyle::setMarkerEndResource): Ditto.
+ (WebCore::SVGRenderStyle::strokeDashArray): Return Vector<SVGLength>.
+ (WebCore::SVGRenderStyle::strokeWidth): Return SVGLength.
+ (WebCore::SVGRenderStyle::strokeDashOffset): Ditto.
+ (WebCore::SVGRenderStyle::kerning): Ditto.
+ (WebCore::SVGRenderStyle::baselineShiftValue): Ditto.
+ * rendering/style/SVGRenderStyleDefs.cpp:
+ (WebCore::StyleStrokeData::StyleStrokeData): Changed initialization order, to group stroke properties.
+ * rendering/style/SVGRenderStyleDefs.h: Store SVGLength values instead of reference counted CSS objects.
+ * svg/SVGLength.cpp:
+ (WebCore::SVGLength::SVGLength): Add copy constructor.
+ (WebCore::SVGLength::operator==): Add comparision operator.
+ (WebCore::SVGLength::operator!=): Ditto.
+ (WebCore::SVGLength::fromCSSPrimitiveValue): New static helper function to convert from a CSSPrimitiveValue.
+ (WebCore::SVGLength::toCSSPrimitiveValue): New static helper function to convert to a CSSPrimitiveValue.
+ * svg/SVGLength.h: Reindent.
+
+2010-08-06 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Move Qt's popup menu implementation from WebCore to WebKit layer
+ https://bugs.webkit.org/show_bug.cgi?id=43427
+
+ After PopupMenu changes in bug 42592 class QtAbstractWebPopup became unecessary and
+ there is no need to keep any Qt specific code for popup menus in WebCore/platform/qt.
+
+ PopupMenuQt has been moved from WebCore/platform/qt to WebKit/qt/WebCoreSupport and
+ assumed the responsibilities of QtAbstractWebPopup. SearchPopupMenuQt has been moved
+ to WebKit/qt/WebCoreSupport as well.
+
+ All classes that previously inherited from QtAbstractWebPopup now inherit from
+ QWebSelectMethod and QtPlatformPlugin's method createSelectInputMethod now returns an
+ instance of class QWebSelectMethod instead of QtAbstractWebPopup.
+
+ * WebCore.pro:
+ * platform/qt/PopupMenuQt.cpp: Removed.
+ * platform/qt/PopupMenuQt.h: Removed.
+ * platform/qt/QtAbstractWebPopup.cpp: Removed.
+ * platform/qt/QtAbstractWebPopup.h: Removed.
+ * platform/qt/SearchPopupMenuQt.cpp: Removed.
+ * platform/qt/SearchPopupMenuQt.h: Removed.
+
+2010-08-05 Marcus Bulach <bulach@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Initial bindings and plumbing for IDBCursor.
+ https://bugs.webkit.org/show_bug.cgi?id=41888
+
+ Test: storage/indexeddb/idb-opencursor.html
+
+ * Android.derived.jscbindings.mk:
+ * Android.derived.v8bindings.mk:
+ * Android.mk:
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pri:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/v8/custom/V8IDBAnyCustom.cpp:
+ (WebCore::toV8):
+ * storage/IDBAny.cpp:
+ (WebCore::IDBAny::idbCursor):
+ (WebCore::IDBAny::set):
+ * storage/IDBAny.h:
+ (WebCore::IDBAny::):
+ * storage/IDBCallbacks.h:
+ * storage/IDBCursor.cpp: Added.
+ (WebCore::IDBCursor::IDBCursor):
+ (WebCore::IDBCursor::~IDBCursor):
+ (WebCore::IDBCursor::direction):
+ (WebCore::IDBCursor::key):
+ (WebCore::IDBCursor::value):
+ (WebCore::IDBCursor::update):
+ (WebCore::IDBCursor::continueFunction):
+ (WebCore::IDBCursor::remove):
+ * storage/IDBCursor.h: Added.
+ (WebCore::IDBCursor::):
+ (WebCore::IDBCursor::create):
+ * storage/IDBCursor.idl: Added.
+ * storage/IDBCursorBackendImpl.cpp: Added.
+ (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
+ (WebCore::IDBCursorBackendImpl::~IDBCursorBackendImpl):
+ (WebCore::IDBCursorBackendImpl::direction):
+ (WebCore::IDBCursorBackendImpl::key):
+ (WebCore::IDBCursorBackendImpl::value):
+ (WebCore::IDBCursorBackendImpl::update):
+ (WebCore::IDBCursorBackendImpl::continueFunction):
+ (WebCore::IDBCursorBackendImpl::remove):
+ * storage/IDBCursorBackendImpl.h: Added.
+ (WebCore::IDBCursorBackendImpl::create):
+ * storage/IDBCursorBackendInterface.h: Added.
+ (WebCore::IDBCursorBackendInterface::~IDBCursorBackendInterface):
+ * storage/IDBObjectStore.cpp:
+ (WebCore::IDBObjectStore::openCursor):
+ * storage/IDBObjectStore.h:
+ * storage/IDBObjectStore.idl:
+ * storage/IDBObjectStoreBackendImpl.cpp:
+ (WebCore::IDBObjectStoreBackendImpl::openCursor):
+ * storage/IDBObjectStoreBackendImpl.h:
+ * storage/IDBObjectStoreBackendInterface.h:
+ * storage/IDBRequest.cpp:
+ (WebCore::IDBRequest::onSuccess):
+ (WebCore::IDBRequest::timerFired):
+ * storage/IDBRequest.h:
+
+2010-08-06 Andrei Popescu <andreip@google.com>
+
+ Unreviewed, release build fix.
+
+ Leopard relase build is broken due to absolute path to JSIDBTransaction.cpp file present in Xcode project file.
+ https://bugs.webkit.org/show_bug.cgi?id=43616
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2010-08-05 Andrei Popescu <andreip@dhcp-172-16-14-12.lon.corp.google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ [IndexedDB] IndexedDB is missing the Transaction interface.
+ https://bugs.webkit.org/show_bug.cgi?id=42970
+
+ Add IDBTransaction boilerplate.
+
+ No new tests, not functional yet.
+
+ * Android.derived.jscbindings.mk:
+ * Android.derived.v8bindings.mk:
+ * Android.mk:
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pri:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/EventNames.h:
+ * storage/IDBDatabase.cpp:
+ (WebCore::IDBDatabase::transaction):
+ * storage/IDBDatabase.h:
+ * storage/IDBDatabase.idl:
+ * storage/IDBDatabaseBackendImpl.cpp:
+ (WebCore::IDBDatabaseBackendImpl::transaction):
+ * storage/IDBDatabaseBackendImpl.h:
+ * storage/IDBDatabaseBackendInterface.h:
+ * storage/IDBRequest.cpp:
+ (WebCore::IDBRequest::IDBRequest):
+ (WebCore::IDBRequest::canSuspend):
+ (WebCore::IDBRequest::timerFired):
+ (WebCore::IDBRequest::onEventCommon):
+ * storage/IDBRequest.h:
+ * storage/IDBTransaction.cpp: Added.
+ (WebCore::IDBTransaction::IDBTransaction):
+ (WebCore::IDBTransaction::~IDBTransaction):
+ (WebCore::IDBTransaction::mode):
+ (WebCore::IDBTransaction::db):
+ (WebCore::IDBTransaction::objectStore):
+ (WebCore::IDBTransaction::abort):
+ (WebCore::IDBTransaction::scriptExecutionContext):
+ (WebCore::IDBTransaction::canSuspend):
+ (WebCore::IDBTransaction::eventTargetData):
+ (WebCore::IDBTransaction::ensureEventTargetData):
+ * storage/IDBTransaction.h: Added.
+ (WebCore::IDBTransaction::create):
+ (WebCore::IDBTransaction::):
+ (WebCore::IDBTransaction::toIDBTransaction):
+ (WebCore::IDBTransaction::refEventTarget):
+ (WebCore::IDBTransaction::derefEventTarget):
+ * storage/IDBTransaction.idl: Added.
+ * storage/IDBTransactionBackendInterface.h: Added.
+ (WebCore::IDBTransactionBackendInterface::~IDBTransactionBackendInterface):
+
+2010-08-06 Rafael Antognolli <antognolli@profusion.mobi>
+
+ Unreviewed build fix.
+
+ [EFL] Regression (64735) build fix for efl.
+ https://bugs.webkit.org/show_bug.cgi?id=43564
+
+ Removing bindings/js/ScriptArray.cpp from the WebCore_SOURCES.
+ No new features, so no new tests.
+
+ * CMakeLists.txt:
+
+2010-08-05 Alexey Proskuryakov <ap@apple.com>
+
+ Fix http/tests/webarchive/test-css-url-encoding-shift-jis.html
+
+ For some reason, I didn't see the failure locally, but bots complain.
+
+ * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
+ Register "shift-jis" (with dash instead of underscore). At least Firefox supports it.
+
+2010-08-05 Ben Murdoch <benm@google.com>
+
+ Reviewed by Simon Fraser.
+
+ Form button input elements lacking text in some cases after switching from
+ visibility:collapse to visibility:visible
+ https://bugs.webkit.org/show_bug.cgi?id=38050
+
+ A relayout is required after toggling visibility from collapse to another value.
+
+ Test: fast/css/visibility-collapse-form-buttons.html
+
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::diff): If we're toggling from visibility:collapse to another
+ visibility value (or vice versa) then we need to trigger a relayout.
+
+2010-08-05 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43554
+ Way too many encoding aliases are treated as valid
+
+ <rdar://problem/7863399> Garbage characters displayed in some yesky.com pages.
+
+ <rdar://problem/7859068> Garbage characters displayed for most text at ceping.zhaopin.com
+
+ Test: http/tests/misc/bad-charset-alias.html
+
+ * loader/TextResourceDecoder.cpp: (WebCore::TextResourceDecoder::checkForCSSCharset):
+ Fix encoding name length computation. Previously, a trailing quote was ignored by
+ TextEncodingRegistry.
+
+ * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
+ Added dashes to alias names that didn't have them. Added aliases prompted by regression tests.
+
+ * platform/text/TextCodecLatin1.cpp: (WebCore::TextCodecLatin1::registerEncodingNames):
+ Don't register 8859-1, other browsers do not support this encoding name.
+
+ * platform/text/TextEncoding.cpp: (WebCore::Latin1Encoding):
+ "Latin-1" is not a real encoding name, it's not known to Firefox or IE.
+
+ * platform/text/TextEncodingRegistry.cpp:
+ (WebCore::TextEncodingNameHash::equal): Changed to no longer ignore non-alphanumeric characters.
+ There is a good chance that we'll be missing support for some necessary alias names, but other
+ browsers don't ignore any characters when matching names.
+ (WebCore::TextEncodingNameHash::hash): Ditto.
+ (WebCore::checkExistingName): Re-formatted a line.
+ (WebCore::isUndesiredAlias): Added a filter to reject "8859_1" and any names containing commas.
+ (WebCore::addToTextEncodingNameMap): Used it.
+ (WebCore::atomicCanonicalTextEncodingName): Changed to no longer ignore non-alphanumeric characters.
+
+2010-08-05 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Laszlo Gombos.
+
+ [Qt] Temporary files should not be created in the current directory
+ https://bugs.webkit.org/show_bug.cgi?id=43562
+
+ Don't create temporary files in the current directory, use QDir::tempPath()
+ instead, as suggested by the QTemporaryFile documentation.
+
+ * platform/qt/FileSystemQt.cpp:
+ (WebCore::openTemporaryFile):
+
+2010-08-05 François Sausset <sausset@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Make STIX font the default one to render MathML
+ https://bugs.webkit.org/show_bug.cgi?id=41961
+
+ * css/mathml.css:
+ (math):
+
+2010-08-05 Cosmin Truta <ctruta@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ Apply a stylistic fix to the patch 62640.
+ https://bug-41175-attachments.webkit.org/attachment.cgi?id=62640
+ https://bugs.webkit.org/show_bug.cgi?id=41175
+
+ * WebCore/platform/graphics/skia/ImageBufferSkia.cpp:
+ (getImageData):
+
+2010-08-05 Patrick Gansterer <paroga@paroga.com>
+
+ Reviewed by Adam Roben.
+
+ Make SearchPopupMenuWin more portable
+ https://bugs.webkit.org/show_bug.cgi?id=43527
+
+ Add #if PLATFORM(CF) around CoreFoundation code.
+
+ * platform/win/SearchPopupMenuWin.cpp:
+ (WebCore::SearchPopupMenuWin::enabled):
+ (WebCore::SearchPopupMenuWin::saveRecentSearches):
+ (WebCore::SearchPopupMenuWin::loadRecentSearches):
+
+2010-08-05 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r63653.
+ http://trac.webkit.org/changeset/63653
+ https://bugs.webkit.org/show_bug.cgi?id=43592
+
+ regressed multiple background-images (Requested by smfr on
+ #webkit).
+
+ * manual-tests/css3-background-layer-count.html: Removed.
+ * rendering/style/FillLayer.cpp:
+ (WebCore::FillLayer::fillUnsetProperties):
+ (WebCore::FillLayer::cullEmptyLayers):
+ * rendering/style/RenderStyle.h:
+ (WebCore::InheritedFlags::adjustBackgroundLayers):
+ (WebCore::InheritedFlags::adjustMaskLayers):
+
+2010-08-05 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Jon Honeycutt.
+
+ Fix some leaks seen on the buildbot.
+
+ * platform/graphics/cg/GraphicsContext3DCG.cpp:
+ (WebCore::GraphicsContext3D::paintToCanvas): Adopt the newly-created CoreGraphics objects rather than sharing ownership
+ and over-incrementing their reference count. Also cleaned up the bizarre wrapping used for function arguments while I was
+ touching this code.
+
+2010-08-05 James Robinson <jamesr@chromium.org>
+
+ Rubber stamped by Eric Seidel.
+
+ [SVG] SVGPathSeg.cpp needs an #if ENABLE(SVG) guard
+ https://bugs.webkit.org/show_bug.cgi?id=43599
+
+ Matches the rest of the .cpp files in this directory.
+
+ * svg/SVGPathSeg.cpp:
+
+2010-08-05 Erik Arvidsson <arv@chromium.org>
+
+ Reviewed by Kent Tamura.
+
+ Calling setCustomValidity should trigger a layout
+ https://bugs.webkit.org/show_bug.cgi?id=43582
+
+ Test: fast/forms/setCustomValidity.html
+
+ * html/ValidityState.cpp:
+ (WebCore::ValidityState::setCustomErrorMessage): Call setNeedsValidityCheck to tell the system that the validity might have changed.
+ * html/ValidityState.h:
+
+2010-08-05 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ Add ability to get a JSValueRef for a node handle and a world
+ https://bugs.webkit.org/show_bug.cgi?id=43591
+
+ * WebCore.exp.in: Add exports.
+
+2010-08-05 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * accessibility/AXObjectCache.h:
+ * accessibility/AccessibilityARIAGrid.h:
+ * accessibility/AccessibilityListBoxOption.h:
+ * accessibility/AccessibilityObject.h:
+ * accessibility/AccessibilityRenderObject.h:
+ * accessibility/AccessibilityTable.h:
+ * bindings/cpp/WebDOMCString.h:
+ * bindings/cpp/WebDOMString.h:
+ * bindings/gobject/ConvertToUTF8String.h:
+ * bindings/js/DOMWrapperWorld.h:
+ * bindings/js/JSDOMBinding.h:
+ * bindings/js/JSDOMWindowBase.h:
+ * bindings/js/JSMessagePortCustom.h:
+ * bindings/js/JavaScriptCallFrame.h:
+ * bindings/js/ScriptController.h:
+ * bindings/js/ScriptProfile.h:
+ * bindings/js/ScriptSourceProvider.h:
+ * bindings/js/ScriptString.h:
+ * bindings/js/WorkerScriptController.h:
+ * bindings/objc/DOMImplementationFront.h:
+ * bindings/v8/ScheduledAction.h:
+ * bindings/v8/ScriptController.h:
+ * bindings/v8/V8DOMWindowShell.h:
+ * bindings/v8/V8Proxy.h:
+ * bindings/v8/V8Utilities.h:
+ * bindings/v8/custom/V8CustomXPathNSResolver.h:
+ * bridge/c/c_utility.h:
+ * css/CSSFontSelector.h:
+ * css/CSSHelper.h:
+ * css/CSSOMUtils.h:
+ * css/CSSPrimitiveValue.h:
+ * css/MediaList.h:
+ * css/StyleBase.h:
+ * css/StyleSheetList.h:
+ * css/WebKitCSSKeyframesRule.h:
+ * dom/CheckedRadioButtons.h:
+ * dom/DOMImplementation.h:
+ * dom/DocumentMarker.h:
+ * dom/DynamicNodeList.h:
+ * dom/EventTarget.h:
+ * dom/MessagePort.h:
+ * dom/MessagePortChannel.h:
+ * dom/NameNodeList.h:
+ * dom/Node.h:
+ * dom/NodeList.h:
+ * dom/OptionGroupElement.h:
+ * dom/ScriptExecutionContext.h:
+ * dom/SelectElement.h:
+ * dom/ViewportArguments.h:
+ * dom/make_names.pl:
+ * editing/HTMLInterchange.h:
+ * editing/htmlediting.h:
+ * editing/markup.h:
+ * html/CollectionCache.h:
+ * html/DOMFormData.h:
+ * html/DataGridColumnList.h:
+ * html/DateComponents.h:
+ * html/FileStream.h:
+ * html/FileStreamProxy.h:
+ * html/FormDataList.h:
+ (WebCore::FormDataList::appendData):
+ * html/HTMLCollection.h:
+ * html/HTMLElementStack.h:
+ * html/HTMLFormattingElementList.h:
+ * html/HTMLParserQuirks.h:
+ * html/HTMLQuoteElement.h:
+ * html/HTMLScriptRunnerHost.h:
+ * html/StepRange.h:
+ * html/canvas/CanvasGradient.h:
+ * html/canvas/CanvasNumberArray.h:
+ * html/canvas/CanvasPattern.h:
+ * inspector/InjectedScript.h:
+ * inspector/InspectorCSSStore.h:
+ * inspector/InspectorClient.h:
+ * inspector/InspectorFrontendClient.h:
+ * inspector/InspectorValues.h:
+ * inspector/ScriptDebugListener.h:
+ * loader/CachedResourceClient.h:
+ * loader/CrossOriginAccessControl.h:
+ * loader/DocumentThreadableLoader.h:
+ * loader/FrameLoaderClient.h:
+ * loader/RedirectScheduler.h:
+ * loader/SubframeLoader.h:
+ * loader/appcache/DOMApplicationCache.h:
+ * loader/archive/ArchiveFactory.h:
+ * loader/icon/IconDatabaseClient.h:
+ * notifications/NotificationPresenter.h:
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+ * page/Console.h:
+ * page/ContextMenuClient.h:
+ * page/DOMSelection.h:
+ * page/EditorClient.h:
+ * page/EventHandler.h:
+ * page/FrameView.h:
+ * page/GeolocationPositionCache.h:
+ * page/History.h:
+ * page/Location.h:
+ * page/Navigator.h:
+ * page/NavigatorBase.h:
+ * page/PluginHalterClient.h:
+ * page/PrintContext.h:
+ * page/SpeechInput.h:
+ * page/SpeechInputListener.h:
+ * page/animation/AnimationController.h:
+ * platform/CookieJar.h:
+ * platform/CrossThreadCopier.h:
+ * platform/DragImage.h:
+ * platform/FileSystem.h:
+ * platform/Language.h:
+ * platform/Length.h:
+ * platform/LinkHash.h:
+ * platform/LocalizationStrategy.h:
+ * platform/LocalizedStrings.h:
+ * platform/Logging.h:
+ * platform/Pasteboard.h:
+ * platform/PopupMenuClient.h:
+ * platform/SearchPopupMenu.h:
+ * platform/Widget.h:
+ * platform/cf/BinaryPropertyList.h:
+ * platform/chromium/ChromiumBridge.h:
+ * platform/chromium/ClipboardUtilitiesChromium.h:
+ * platform/cocoa/KeyEventCocoa.h:
+ * platform/graphics/Color.h:
+ * platform/graphics/FontCache.h:
+ * platform/graphics/FontData.h:
+ * platform/graphics/FontSelector.h:
+ * platform/graphics/GraphicsTypes.h:
+ * platform/graphics/Icon.h:
+ * platform/graphics/ImageBuffer.h:
+ * platform/graphics/ImageSource.h:
+ * platform/graphics/MediaPlayer.h:
+ * platform/graphics/MediaPlayerPrivate.h:
+ * platform/graphics/Path.h:
+ * platform/graphics/StringTruncator.h:
+ * platform/graphics/cairo/FontCustomPlatformData.h:
+ * platform/graphics/cairo/FontPlatformData.h:
+ * platform/graphics/cg/FontPlatformData.h:
+ * platform/graphics/cg/ImageSourceCG.h:
+ * platform/graphics/chromium/FontCustomPlatformData.h:
+ * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
+ * platform/graphics/chromium/FontPlatformDataLinux.h:
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ * platform/graphics/haiku/FontCustomPlatformData.h:
+ * platform/graphics/mac/FontCustomPlatformData.h:
+ * platform/graphics/mac/FontPlatformData.h:
+ * platform/graphics/qt/FontCustomPlatformData.h:
+ * platform/graphics/qt/FontPlatformData.h:
+ * platform/graphics/win/FontCustomPlatformData.h:
+ * platform/graphics/win/FontCustomPlatformDataCairo.h:
+ * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
+ * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
+ * platform/graphics/wince/FontPlatformData.h:
+ * platform/graphics/wince/MediaPlayerPrivateWince.h:
+ * platform/graphics/wince/MediaPlayerProxy.h:
+ * platform/graphics/wx/FontCustomPlatformData.h:
+ * platform/graphics/wx/FontPlatformData.h:
+ * platform/mac/PasteboardHelper.h:
+ * platform/network/DNS.h:
+ * platform/network/FormData.h:
+ * platform/network/FormDataBuilder.h:
+ * platform/network/HTTPParsers.h:
+ * platform/text/Hyphenation.h:
+ * platform/text/LineEnding.h:
+ * platform/text/TextCodec.h:
+ * platform/text/TextEncoding.h:
+ * platform/text/TextStream.h:
+ * platform/win/BString.h:
+ * platform/win/ClipboardUtilitiesWin.h:
+ * platform/win/WCDataObject.h:
+ * platform/win/WebCoreTextRenderer.h:
+ * plugins/DOMMimeType.h:
+ * plugins/DOMMimeTypeArray.h:
+ * plugins/DOMPlugin.h:
+ * plugins/DOMPluginArray.h:
+ * rendering/CounterNode.h:
+ * rendering/HitTestResult.h:
+ * rendering/RenderObjectChildList.h:
+ * rendering/RenderText.h:
+ * rendering/RenderTreeAsText.h:
+ * rendering/TextControlInnerElements.h:
+ * rendering/style/ContentData.h:
+ * rendering/style/RenderStyle.h:
+ * storage/DatabaseAuthorizer.h:
+ * storage/DatabaseTrackerClient.h:
+ * storage/SQLTransaction.h:
+ * storage/SQLTransactionSync.h:
+ * storage/Storage.h:
+ * storage/chromium/DatabaseObserver.h:
+ * svg/SVGAnimatedTemplate.h:
+ * svg/SVGDocumentExtensions.h:
+ * svg/SVGGlyphElement.h:
+ * svg/SVGHKernElement.h:
+ * svg/SVGNumberList.h:
+ * svg/SVGPointList.h:
+ * svg/SVGPreserveAspectRatio.h:
+ * svg/SVGStylable.h:
+ * svg/SVGTests.h:
+ * svg/SVGTransformList.h:
+ * svg/SVGTransformable.h:
+ * svg/SVGVKernElement.h:
+ * websockets/ThreadableWebSocketChannel.h:
+ * websockets/ThreadableWebSocketChannelClientWrapper.h:
+ * websockets/WebSocket.h:
+ * websockets/WebSocketChannel.h:
+ * websockets/WebSocketHandshakeResponse.h:
+ * wml/WMLErrorHandling.h:
+ * wml/WMLPageState.h:
+ * wml/WMLVariables.h:
+ * workers/DefaultSharedWorkerRepository.h:
+ * workers/SharedWorkerRepository.h:
+ * workers/Worker.h:
+ * workers/WorkerContextProxy.h:
+ * workers/WorkerLoaderProxy.h:
+ * workers/WorkerLocation.h:
+ * workers/WorkerMessagingProxy.h:
+ * workers/WorkerReportingProxy.h:
+ * workers/WorkerThread.h:
+ * xml/DOMParser.h:
+ * xml/XMLHttpRequestUpload.h:
+ * xml/XPathEvaluator.h:
+ * xml/XPathExpression.h:
+ * xml/XPathNSResolver.h:
+ * xml/XPathResult.h:
+ * xml/XPathUtil.h:
+
+2010-08-05 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ U+0000 is turned to U+FFFD (replacement character)
+ https://bugs.webkit.org/show_bug.cgi?id=42112
+
+ This patch introduces an intentional parsing difference from the HTML5
+ parsing specificiation. The spec requires us to convert NULL
+ characters to U+FFFD, but doing so causes compatibility issues with a
+ number of sites, including US Bank.
+
+ In this patch, we strip the null characters instead in certain cases.
+ Firefox has made a corresponding change. After gathering compatability
+ data, we hope to convince the HTML WG to adopt this change.
+
+ Tests: fast/tokenizer/null-in-text.html
+ fast/tokenizer/null-xss.html
+
+ * html/HTMLTokenizer.cpp:
+ (WebCore::HTMLTokenizer::HTMLTokenizer):
+ (WebCore::HTMLTokenizer::reset):
+ * html/HTMLTokenizer.h:
+ (WebCore::HTMLTokenizer::setSkipLeadingNewLineForListing):
+ (WebCore::HTMLTokenizer::forceNullCharacterReplacement):
+ (WebCore::HTMLTokenizer::setForceNullCharacterReplacement):
+ (WebCore::HTMLTokenizer::shouldSkipNullCharacters):
+ (WebCore::HTMLTokenizer::InputStreamPreprocessor::InputStreamPreprocessor):
+ (WebCore::HTMLTokenizer::InputStreamPreprocessor::peek):
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
+ (WebCore::HTMLTreeBuilder::constructTreeFromToken):
+ (WebCore::HTMLTreeBuilder::processStartTagForInBody):
+
+2010-08-05 Andy Estes <aestes@apple.com>
+
+ Reviewed by David Kilzer.
+
+ Rename iOS-related OS and PLATFORM macros.
+ https://bugs.webkit.org/show_bug.cgi?id=43493
+
+ Rename WTF_OS_IPHONE_OS to WTF_OS_IOS, WTF_PLATFORM_IPHONE to
+ WTF_PLATFORM_IOS, and WTF_PLATFORM_IPHONE_SIMULATOR to
+ WTF_PLATFORM_IOS_SIMULATOR.
+
+ * platform/cocoa/KeyEventCocoa.mm:
+ * platform/iphone/KeyEventIPhone.mm:
+ * platform/network/Credential.h:
+
+2010-08-05 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Use the visited link provider for visited links
+ https://bugs.webkit.org/show_bug.cgi?id=43583
+
+ Export Page::visitedStateChanged and Page::allvisitedStateChanged.
+
+ * WebCore.exp.in:
+
+2010-08-05 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Touching SVGNames should only rebuild hundreds of files, not thousands
+ https://bugs.webkit.org/show_bug.cgi?id=43308
+
+ Remove SVGNames.h include from several core SVG header files
+ which do not need to include it.
+
+ One of them, SVGPathSeg.h, required creation of an SVGPathSeg.cpp.
+ A bunch of SVGPathSeg* could remove PlatformString.h includes if
+ we moved their toString() methods into the .cpp files.
+
+ I re-indented on header to stop check-webkit-style from complaining.
+ I removed a couple mode lines I saw, since my understanding from
+ previous webkit-dev threads is that we plan to remove those all.
+
+ No functional change, thus no tests.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.xcodeproj/project.pbxproj:
+ * svg/SVGAllInOne.cpp:
+ * svg/SVGAngle.h:
+ * svg/SVGPathSeg.cpp: Added.
+ (WebCore::SVGPathSeg::~SVGPathSeg):
+ (WebCore::SVGPathSeg::pathSegType):
+ (WebCore::SVGPathSeg::pathSegTypeAsLetter):
+ (WebCore::SVGPathSeg::toString):
+ (WebCore::SVGPathSeg::associatedAttributeName):
+ (WebCore::SVGPathSegSingleCoord::toString):
+ * svg/SVGPathSeg.h:
+ (WebCore::SVGPathSegSingleCoord::SVGPathSegSingleCoord):
+ * svg/SVGPathSegArc.cpp:
+ (WebCore::SVGPathSegArc::toString):
+ * svg/SVGPathSegArc.h:
+ (WebCore::SVGPathSegArc::SVGPathSegArc):
+ * svg/SVGPathSegClosePath.h:
+ (WebCore::SVGPathSegClosePath::create):
+ (WebCore::SVGPathSegClosePath::pathSegType):
+ (WebCore::SVGPathSegClosePath::pathSegTypeAsLetter):
+ (WebCore::SVGPathSegClosePath::toString):
+ * svg/SVGPathSegCurvetoCubic.h:
+ * svg/SVGPathSegCurvetoCubicSmooth.h:
+ * svg/SVGPathSegCurvetoQuadratic.h:
+ * svg/SVGPathSegCurvetoQuadraticSmooth.h:
+ * svg/SVGPathSegLineto.h:
+ * svg/SVGPathSegLinetoHorizontal.h:
+ * svg/SVGPathSegLinetoVertical.h:
+ * svg/SVGPathSegMoveto.h:
+ * svg/SVGTransform.h:
+
+2010-08-05 Dirk Schulze <krit@webkit.org>
+
+ Unreviewed sort of Xcode project file.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2010-08-05 Adam Barth <abarth@webkit.org>
+
+ Actually make HTMLEntityNames.json valid JSON.
+
+ * html/HTMLEntityNames.json:
+
+2010-08-05 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=43516 REGRESSION:
+ Huge number of memory leaks after enabling MathML
+ -and corresponding-
+ <rdar://problem/8274123>
+
+ Destroy the old children in
+ RenderMathMLOperator::updateFromElement() instead of just removing
+ them since just removing them will cause them to leak.
+ * mathml/RenderMathMLOperator.cpp:
+ (WebCore::RenderMathMLOperator::updateFromElement):
+
+2010-08-05 Tony Chang <tony@chromium.org>
+
+ Reviewed by David Hyatt.
+
+ Fix a crash when a hidden iframe with a custom scrollbar finishes loading an image.
+ https://bugs.webkit.org/show_bug.cgi?id=42724
+
+ Test: scrollbars/hidden-iframe-scrollbar-crash2.html
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::createScrollbar):
+ * rendering/RenderScrollbar.cpp:
+ (WebCore::RenderScrollbar::createCustomScrollbar): Pass in Frame
+ (WebCore::RenderScrollbar::RenderScrollbar): Pass in Frame
+ (WebCore::RenderScrollbar::owningRenderer): Use the frame to get the RenderBox
+ (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
+ (WebCore::RenderScrollbar::updateScrollbarParts):
+ (WebCore::RenderScrollbar::updateScrollbarPart):
+ * rendering/RenderScrollbar.h:
+ * rendering/RenderScrollbarPart.cpp:
+ (WebCore::RenderScrollbarPart::computeScrollbarWidth): null check
+ (WebCore::RenderScrollbarPart::computeScrollbarHeight): null check
+
+2010-08-05 Yong Li <yoli@rim.com>
+
+ Reviewed by Adam Treat.
+
+ Fix the problem that down-sampling code doesn't work
+ for some GIF's. GIF reader can call setSize() multiple times.
+ We should clear the scaling maps before adding new entries.
+ Also add a fast path to check if the size has changed since last time.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43501
+
+ * platform/image-decoders/ImageDecoder.cpp:
+ (WebCore::ImageDecoder::prepareScaleDataIfNecessary):
+ * platform/image-decoders/gif/GIFImageDecoder.cpp:
+ (WebCore::GIFImageDecoder::setSize):
+
+2010-08-05 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ WebInspector: In the current implementation of inspector agents we're calling
+ did methods manually. That is error prone and is bad from protocol point of view.
+ It would be better to call did methods automatically from the corresponding methods
+ of InspectorBackendDispatcher and report the results. As far as our protocol is
+ statefull this trick will keep it in the consistent state.
+ https://bugs.webkit.org/show_bug.cgi?id=43489
+
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/InspectorApplicationCacheAgent.cpp:
+ (WebCore::InspectorApplicationCacheAgent::getApplicationCaches):
+ * inspector/InspectorApplicationCacheAgent.h:
+ * inspector/InspectorBackend.cpp:
+ (WebCore::InspectorBackend::getProfilerLogLines):
+ (WebCore::InspectorBackend::setInjectedScriptSource):
+ (WebCore::InspectorBackend::dispatchOnInjectedScript):
+ (WebCore::InspectorBackend::clearConsoleMessages):
+ (WebCore::InspectorBackend::releaseWrapperObjectGroup):
+ (WebCore::InspectorBackend::getDatabaseTableNames):
+ * inspector/InspectorBackend.h:
+ * inspector/InspectorCSSStore.cpp:
+ (WebCore::InspectorCSSStore::inspectorStyleSheet):
+ * inspector/InspectorCSSStore.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::getCookies):
+ (WebCore::InspectorController::getDOMStorageEntries):
+ (WebCore::InspectorController::setDOMStorageItem):
+ (WebCore::InspectorController::removeDOMStorageItem):
+ (WebCore::InspectorController::getProfileHeaders):
+ (WebCore::InspectorController::getProfile):
+ (WebCore::InspectorController::editScriptSource):
+ (WebCore::InspectorController::getScriptSource):
+ (WebCore::InspectorController::setBreakpoint):
+ (WebCore::InspectorController::getResourceContent):
+ * inspector/InspectorController.h:
+ (WebCore::InspectorController::inspectorClient):
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::getChildNodes):
+ (WebCore::InspectorDOMAgent::setAttribute):
+ (WebCore::InspectorDOMAgent::removeAttribute):
+ (WebCore::InspectorDOMAgent::removeNode):
+ (WebCore::InspectorDOMAgent::changeTagName):
+ (WebCore::InspectorDOMAgent::getOuterHTML):
+ (WebCore::InspectorDOMAgent::setOuterHTML):
+ (WebCore::InspectorDOMAgent::setTextNodeValue):
+ (WebCore::InspectorDOMAgent::getEventListenersForNode):
+ (WebCore::InspectorDOMAgent::getStyles):
+ (WebCore::InspectorDOMAgent::getAllStyles):
+ (WebCore::InspectorDOMAgent::getStyleSheet):
+ (WebCore::InspectorDOMAgent::getRuleRanges):
+ (WebCore::InspectorDOMAgent::getInlineStyle):
+ (WebCore::InspectorDOMAgent::getComputedStyle):
+ (WebCore::InspectorDOMAgent::applyStyleText):
+ (WebCore::InspectorDOMAgent::setStyleText):
+ (WebCore::InspectorDOMAgent::setStyleProperty):
+ (WebCore::InspectorDOMAgent::toggleStyleEnabled):
+ (WebCore::InspectorDOMAgent::setRuleSelector):
+ (WebCore::InspectorDOMAgent::addRule):
+ (WebCore::InspectorDOMAgent::buildObjectForRule):
+ (WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorValues.cpp:
+ (WebCore::InspectorValue::asNumber):
+ (WebCore::InspectorBasicValue::asNumber):
+ * inspector/InspectorValues.h:
+ * inspector/front-end/Callback.js:
+ (WebInspector.Callback.prototype.processCallback):
+ (WebInspector.Callback.prototype.removeCallbackEntry):
+ * inspector/front-end/ElementsPanel.js:
+ (WebInspector.ElementsPanel.prototype.reset):
+ * inspector/front-end/inspector.js:
+ (WebInspector.reportProtocolError):
+
+2010-08-04 Kenneth Russell <kbr@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Style cleanups in WebGL
+ https://bugs.webkit.org/show_bug.cgi?id=38761
+
+ Cleaned up all style violations in WebGL-related files reported by
+ check-webkit-style. No logic or other changes. Built WebKit and
+ Chromium and ran WebGL layout tests.
+
+ * html/canvas/ArrayBuffer.cpp:
+ (WebCore::ArrayBuffer::ArrayBuffer):
+ (WebCore::ArrayBuffer::data):
+ (WebCore::ArrayBuffer::byteLength):
+ (WebCore::ArrayBuffer::~ArrayBuffer):
+ (WebCore::ArrayBuffer::tryAllocate):
+ * html/canvas/ArrayBufferView.cpp:
+ (WebCore::ArrayBufferView::setImpl):
+ * html/canvas/ArrayBufferView.h:
+ * html/canvas/TypedArrayBase.h:
+ * html/canvas/WebGLBuffer.cpp:
+ (WebCore::WebGLBuffer::deleteObjectImpl):
+ (WebCore::WebGLBuffer::associateBufferData):
+ * html/canvas/WebGLBuffer.h:
+ (WebCore::WebGLBuffer::~WebGLBuffer):
+ (WebCore::WebGLBuffer::elementArrayBuffer):
+ (WebCore::WebGLBuffer::getTarget):
+ (WebCore::WebGLBuffer::isBuffer):
+ * html/canvas/WebGLFramebuffer.cpp:
+ (WebCore::WebGLFramebuffer::deleteObjectImpl):
+ * html/canvas/WebGLFramebuffer.h:
+ (WebCore::WebGLFramebuffer::~WebGLFramebuffer):
+ (WebCore::WebGLFramebuffer::isDepthAttached):
+ (WebCore::WebGLFramebuffer::isStencilAttached):
+ (WebCore::WebGLFramebuffer::isDepthStencilAttached):
+ (WebCore::WebGLFramebuffer::isFramebuffer):
+ * html/canvas/WebGLGetInfo.cpp:
+ * html/canvas/WebGLGetInfo.h:
+ * html/canvas/WebGLObject.cpp:
+ (WebCore::WebGLObject::deleteObject):
+ * html/canvas/WebGLObject.h:
+ (WebCore::WebGLObject::object):
+ (WebCore::WebGLObject::detachContext):
+ (WebCore::WebGLObject::context):
+ (WebCore::WebGLObject::isBuffer):
+ (WebCore::WebGLObject::isFramebuffer):
+ (WebCore::WebGLObject::isProgram):
+ (WebCore::WebGLObject::isRenderbuffer):
+ (WebCore::WebGLObject::isShader):
+ (WebCore::WebGLObject::isTexture):
+ * html/canvas/WebGLProgram.cpp:
+ (WebCore::WebGLProgram::deleteObjectImpl):
+ * html/canvas/WebGLProgram.h:
+ (WebCore::WebGLProgram::~WebGLProgram):
+ (WebCore::WebGLProgram::isLinkFailureFlagSet):
+ (WebCore::WebGLProgram::setLinkFailureFlag):
+ (WebCore::WebGLProgram::isProgram):
+ * html/canvas/WebGLRenderbuffer.cpp:
+ (WebCore::WebGLRenderbuffer::deleteObjectImpl):
+ * html/canvas/WebGLRenderbuffer.h:
+ (WebCore::WebGLRenderbuffer::~WebGLRenderbuffer):
+ (WebCore::WebGLRenderbuffer::setInternalFormat):
+ (WebCore::WebGLRenderbuffer::getInternalFormat):
+ (WebCore::WebGLRenderbuffer::isInitialized):
+ (WebCore::WebGLRenderbuffer::setInitialized):
+ (WebCore::WebGLRenderbuffer::isRenderbuffer):
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::beginPaint):
+ (WebCore::WebGLRenderingContext::blendEquation):
+ (WebCore::WebGLRenderingContext::getActiveAttrib):
+ (WebCore::WebGLRenderingContext::getActiveUniform):
+ (WebCore::WebGLRenderingContext::getBufferParameter):
+ (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
+ (WebCore::WebGLRenderingContext::vertexAttribPointer):
+ * html/canvas/WebGLRenderingContext.h:
+ (WebCore::WebGLRenderingContext::is3d):
+ (WebCore::WebGLRenderingContext::isAccelerated):
+ (WebCore::WebGLRenderingContext::graphicsContext3D):
+ (WebCore::WebGLRenderingContext::cleanupAfterGraphicsCall):
+ (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState):
+ (WebCore::WebGLRenderingContext::VertexAttribState::initValue):
+ * html/canvas/WebGLShader.cpp:
+ (WebCore::WebGLShader::deleteObjectImpl):
+ * html/canvas/WebGLShader.h:
+ (WebCore::WebGLShader::~WebGLShader):
+ (WebCore::WebGLShader::getType):
+ (WebCore::WebGLShader::isShader):
+ * html/canvas/WebGLTexture.cpp:
+ (WebCore::WebGLTexture::deleteObjectImpl):
+ * html/canvas/WebGLTexture.h:
+ (WebCore::WebGLTexture::~WebGLTexture):
+ (WebCore::WebGLTexture::isCubeMapRWrapModeInitialized):
+ (WebCore::WebGLTexture::setCubeMapRWrapModeInitialized):
+ (WebCore::WebGLTexture::isTexture):
+ (WebCore::WebGLTexture::LevelInfo::LevelInfo):
+ (WebCore::WebGLTexture::LevelInfo::setInfo):
+ * platform/graphics/GraphicsContext3D.h:
+ (WebCore::GraphicsContext3D::):
+ (WebCore::GraphicsContext3D::Attributes::Attributes):
+ (WebCore::GraphicsContext3D::platformGraphicsContext3D):
+ (WebCore::GraphicsContext3D::platformTexture):
+ (WebCore::GraphicsContext3D::platformLayer):
+
+2010-08-05 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org>
+
+ Reviewed by Simon Hausmann.
+
+ Make the viewport meta tag parser support the Android
+ target-densitydpi extension.
+ http://webkit.org/b/43492
+
+ http://developer.android.com/reference/android/webkit/WebView.html
+ Section 'Building web pages to support different screen densities'
+
+ * dom/ViewportArguments.cpp:
+ (WebCore::setViewportFeature):
+ (WebCore::viewportErrorMessageTemplate):
+ * dom/ViewportArguments.h:
+ (WebCore::):
+ (WebCore::ViewportArguments::ViewportArguments):
+ (WebCore::ViewportArguments::hasCustomArgument):
+
+2010-08-05 Jian Li <jianli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Unify blob related feature defines to ENABLE(BLOB).
+ https://bugs.webkit.org/show_bug.cgi?id=43081
+
+ * Configurations/FeatureDefines.xcconfig:
+ * GNUmakefile.am:
+ * WebCore.pri:
+ * bindings/js/JSEventTarget.cpp:
+ (WebCore::toJS):
+ * bindings/v8/V8DOMWrapper.cpp:
+ (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
+ * dom/EventTarget.cpp:
+ * dom/EventTarget.h:
+ * dom/ExceptionCode.h:
+ (WebCore::):
+ * dom/ScriptExecutionContext.cpp:
+ (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
+ * dom/ScriptExecutionContext.h:
+ * html/Blob.cpp:
+ * html/Blob.h:
+ * html/Blob.idl:
+ * html/FileError.h:
+ * html/FileError.idl:
+ * html/FileReader.cpp:
+ * html/FileReader.h:
+ * html/FileReader.idl:
+ * html/FileStream.cpp:
+ (WebCore::FileStream::openForRead):
+ * html/FileStream.h:
+ * html/FileStreamClient.h:
+ * html/FileStreamProxy.cpp:
+ * html/FileStreamProxy.h:
+ * html/FileThread.cpp:
+ * html/FileThread.h:
+ * page/DOMWindow.idl:
+ * platform/BlobItem.cpp:
+ (WebCore::getFileSnapshotModificationTime):
+ (WebCore::DataBlobItem::slice):
+ (WebCore::FileBlobItem::slice):
+ * platform/BlobItem.h:
+ * platform/network/FormData.cpp:
+ (WebCore::FormData::deepCopy):
+ (WebCore::FormData::appendFile):
+ (WebCore::FormData::appendItem):
+ (WebCore::FormData::appendKeyValuePairItems):
+ * platform/network/FormData.h:
+ (WebCore::operator==):
+ * platform/network/mac/FormDataStreamMac.mm:
+ (WebCore::closeCurrentStream):
+ (WebCore::advanceCurrentStream):
+ (WebCore::formCreate):
+ (WebCore::formRead):
+ (WebCore::setHTTPBody):
+
+2010-08-05 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ When trying to wrap a Node we know is an Element fallback to a
+ simple Element wrapper in the worst case, not to Node.
+
+ * bindings/gobject/WebKitDOMBinding.cpp:
+ (WebKit::createWrapper):
+
+2010-08-05 François Sausset <sausset@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Implement basic values of MathML mathvariant attribute
+ https://bugs.webkit.org/show_bug.cgi?id=43481
+
+ Test: mathml/presentation/attributes.xhtml
+
+ * css/mathml.css:
+ (math[mathvariant="normal"], mstyle[mathvariant="normal"], mo[mathvariant="normal"], mn[mathvariant="normal"], mi[mathvariant="normal"], mtext[mathvariant="normal"], mspace[mathvariant="normal"], ms[mathvariant="normal"]):
+ (math[mathvariant="bold"], mstyle[mathvariant="bold"], mo[mathvariant="bold"], mn[mathvariant="bold"], mi[mathvariant="bold"], mtext[mathvariant="bold"], mspace[mathvariant="bold"], ms[mathvariant="bold"]):
+ (math[mathvariant="italic"], mstyle[mathvariant="italic"], mo[mathvariant="italic"], mn[mathvariant="italic"], mi[mathvariant="italic"], mtext[mathvariant="italic"], mspace[mathvariant="italic"], ms[mathvariant="italic"]):
+ (math[mathvariant="bold-italic"], mstyle[mathvariant="bold-italic"], mo[mathvariant="bold-italic"], mn[mathvariant="bold-italic"], mi[mathvariant="bold-italic"], mtext[mathvariant="bold-italic"], mspace[mathvariant="bold-italic"], ms[mathvariant="bold-italic"]):
+ * mathml/mathattrs.in:
+
+2010-08-05 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: inspected page crashes when there is a cyclic reference in Object prototype
+ https://bugs.webkit.org/show_bug.cgi?id=43558
+
+ Test: inspector/debugger-cyclic-ref.html
+
+ * bindings/v8/ScriptValue.cpp:
+ (WebCore::v8ToInspectorValue):
+
+2010-08-05 Satish Sampath <satish@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Fix rendering of speech button and enable layout tests
+ https://bugs.webkit.org/show_bug.cgi?id=43425
+
+ Rewrote the speech button rendering code to match how the spin buttons (for input type=number)
+ are implemented as the previous implementation did not work well on many platforms.
+
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
+ (WebCore::RenderTextControlSingleLine::layout):
+ (WebCore::RenderTextControlSingleLine::nodeAtPoint):
+ (WebCore::RenderTextControlSingleLine::styleDidChange):
+ (WebCore::RenderTextControlSingleLine::hasControlClip):
+ (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight):
+ (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
+ (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
+ (WebCore::RenderTextControlSingleLine::createSpeechButtonStyle):
+ (WebCore::RenderTextControlSingleLine::clientPaddingRight):
+ * rendering/RenderTextControlSingleLine.h:
+ * rendering/TextControlInnerElements.cpp:
+ (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
+ (WebCore::InputFieldSpeechButtonElement::create):
+ * rendering/TextControlInnerElements.h:
+
+2010-08-05 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: Separated WebInspector extension API injection logic from other scripts that inspector injects.
+ Enabled injection of the API scripts even if inspector is disabled for inspector front-end page.
+ https://bugs.webkit.org/show_bug.cgi?id=43344
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
+ (WebCore::InspectorController::setInspectorExtensionAPI):
+ * inspector/InspectorController.h:
+ * inspector/InspectorFrontendHost.cpp:
+ (WebCore::InspectorFrontendHost::setExtensionAPI):
+
+2010-08-05 Charles Wei <charles.wei@torchmobile.com.cn>
+
+ Reviewed by George Staikos.
+
+ <noscript> is working the other way around in some cases with xhtmlmp enabled
+ https://bugs.webkit.org/show_bug.cgi?id=43469
+
+ Test: fast/xhtmlmp/noscript-basic.xhtml
+
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+
+2010-08-05 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Fix Win compilation.
+
+ * bindings/js/JSBindingsAllInOne.cpp:
+
+2010-08-05 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Tor Arne Vestbø.
+
+ [Qt] Clean up the input method handling
+ https://bugs.webkit.org/show_bug.cgi?id=43545
+
+ Changed input method hint interface to be more efficient by setting
+ all hints in one shot, like in QWidget.
+
+ * platform/qt/QWebPageClient.h:
+
+2010-08-05 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: remove mutator methods from ScriptObject and remove ScriptArray.
+ We shouldn't modify JS objects from InspectorController, InspectorValues
+ should be used instead.
+ https://bugs.webkit.org/show_bug.cgi?id=43546
+
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/ScriptArray.cpp: Removed.
+ * bindings/js/ScriptArray.h: Removed.
+ * bindings/js/ScriptCallStack.h:
+ * bindings/js/ScriptObject.cpp:
+ * bindings/js/ScriptObject.h:
+ * bindings/v8/ScriptArray.cpp: Removed.
+ * bindings/v8/ScriptArray.h: Removed.
+ * bindings/v8/ScriptCallStack.h:
+ * bindings/v8/ScriptObject.cpp:
+ * bindings/v8/ScriptObject.h:
+
+2010-08-05 Ned Holbrook <nholbrook@apple.com>
+
+ Reviewed by Darin Adler.
+
+ ~5% complex layout performance improvement.
+ https://bugs.webkit.org/show_bug.cgi?id=43436
+
+ * platform/graphics/mac/ComplexTextController.h:
+ * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
+ (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Use Vector rather than CFMutableData.
+ (WebCore::ComplexTextController::ComplexTextRun::createTextRunFromFontDataCoreText): Ditto.
+ (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Avoid typesetter allocation unless using typesetter options.
+
+2010-08-05 Steve Block <steveblock@google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ targetReferenceFromResource() in SVGResources.cpp is missing an ENABLE(FILTERS) guard
+ https://bugs.webkit.org/show_bug.cgi?id=43550
+
+ Also updates an existing ENABLE(FILTERS) guard to avoid a compiler
+ warning 'case FilterResourceType not handled in switch' when FILTERS
+ is not enabled.
+
+ No new tests, build fix only.
+
+ * rendering/SVGResources.cpp:
+ (WebCore::targetReferenceFromResource):
+ (WebCore::SVGResources::resourceDestroyed):
+
+2010-08-05 Victoria Kirst <vrk@google.com>
+
+ Reviewed by David Levin.
+
+ Added logic to use glMapTexSubImage2D to write video layer to GPU
+ texture. Also fixes CPU usage problem from previous patch.
+ https://bugs.webkit.org/show_bug.cgi?id=43101
+
+ No change in user-visible functionality (since it isn't turned on),
+ so no new tests.
+
+ * platform/graphics/chromium/VideoLayerChromium.cpp:
+ (WebCore::VideoLayerChromium::VideoLayerChromium):
+ (WebCore::VideoLayerChromium::updateTextureContents):
+ (WebCore::VideoLayerChromium::createTextureRect):
+ (WebCore::VideoLayerChromium::updateTextureRect):
+ (WebCore::VideoLayerChromium::updateCompleted):
+ * platform/graphics/chromium/VideoLayerChromium.h:
+
+2010-08-05 Zoltan Horvath <zoltan@webkit.org>
+
+ Reviewed by Simon Hausmann.
+
+ Allow custom memory allocation control for ClipperData struct
+ https://bugs.webkit.org/show_bug.cgi?id=43337
+
+ Inherits the following class from FastAllocBase because it is
+ instantiated by 'new':
+
+ class name - instantiated at: WebCore/'location'
+ RenderLayerBacking - rendering/RenderSVGResourceClipper.cpp:165
+
+ * rendering/RenderSVGResourceClipper.h:
+
+2010-08-05 Zoltan Horvath <zoltan@webkit.org>
+
+ Reviewed by Simon Hausmann.
+
+ Allow custom memory allocation control for DoctypeData class
+ https://bugs.webkit.org/show_bug.cgi?id=43343
+
+ Inherits the following class from Noncopyable because it is
+ instantiated by 'new' and no need to be copyable:
+
+ class name - instantiated at: WebCore/'location'
+ DoctypeData - html/HTMLToken.h:113
+
+ * html/HTMLToken.h:
+
+2010-08-05 François Sausset <sausset@gmail.com>
+
+ Reviewed by Darin Adler.
+
+ Small style adjustments for MathML merror element.
+ https://bugs.webkit.org/show_bug.cgi?id=43432
+
+ * css/mathml.css:
+ (merror):
+
+2010-08-05 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: forbid InspectorController to create script objects directly in the frontend
+ https://bugs.webkit.org/show_bug.cgi?id=43541
+
+ Cookie and AppCache data are now serialized into InspectorValues instead of
+ ScriptObjects. These were last usages of InspectorFrontend::newScript{Object,Array}
+ so we can remove them now and use only InspectorValues to pass data to the inspector
+ frontend.
+
+ * inspector/Inspector.idl:
+ * inspector/InspectorApplicationCacheAgent.cpp:
+ (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
+ (WebCore::InspectorApplicationCacheAgent::getApplicationCaches):
+ (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
+ (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
+ (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
+ * inspector/InspectorApplicationCacheAgent.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::connectFrontend):
+ (WebCore::InspectorController::getCookies):
+ (WebCore::InspectorController::buildArrayForCookies):
+ (WebCore::InspectorController::buildObjectForCookie):
+ * inspector/InspectorController.h:
+ * inspector/InspectorFrontend.cpp:
+ (WebCore::InspectorFrontend::setRecordingProfile):
+ * inspector/InspectorFrontend.h:
+
+2010-08-05 Mario Sanchez Prada <msanchez@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Extra check needed at AccessibilityObject::visiblePositionRangeForRange
+ https://bugs.webkit.org/show_bug.cgi?id=43418
+
+ Ensure the renderer is a RenderText before calling toRenderText()
+
+ Also, simplified code a bit to avoid so many nested if's in that
+ part of the code, while keeping the same logic.
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::visiblePositionRangeForRange):
+
+2010-08-05 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Kent Tamura.
+
+ [BREWMP] Define htonl, htons, ntohl and ntohs
+ https://bugs.webkit.org/show_bug.cgi?id=43397
+
+ In BREWMP, AEEStdLib.h provides macros for byte order conversion: HTONL, HTONS, NTOHL and NTOHS.
+ Use these macros to define htonl, htons, ntohl and ntohs used by WOFFFileFormat.cpp.
+
+ * platform/graphics/WOFFFileFormat.cpp:
+
+2010-08-04 Zoltan Herczeg <zherczeg@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
+ https://bugs.webkit.org/show_bug.cgi?id=42244
+
+ Implementing svgAttributeChanged for SVGFESpotLightElement object.
+ Furthermore, invalidateFilter has been moved to SVGFilterElement, and
+ it is a static function now.
+
+ Tests: svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop.html
+
+ * svg/SVGFEDiffuseLightingElement.cpp:
+ (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
+ * svg/SVGFELightElement.cpp:
+ (WebCore::SVGFELightElement::svgAttributeChanged):
+ (WebCore::SVGFELightElement::childrenChanged):
+ * svg/SVGFELightElement.h:
+ * svg/SVGFEOffsetElement.cpp:
+ (WebCore::SVGFEOffsetElement::svgAttributeChanged):
+ * svg/SVGFESpecularLightingElement.cpp:
+ * svg/SVGFilterElement.h:
+ (WebCore::SVGFilterElement::invalidateFilter):
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+ (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
+ (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
+ * svg/SVGFilterPrimitiveStandardAttributes.h:
+
+2010-08-05 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: serialize DOM storage items to InspectorValues
+ https://bugs.webkit.org/show_bug.cgi?id=43486
+
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::populateScriptObjects):
+ (WebCore::InspectorController::didUseDOMStorage):
+ (WebCore::InspectorController::selectDOMStorage):
+ (WebCore::InspectorController::getDOMStorageEntries):
+ (WebCore::InspectorController::setDOMStorageItem):
+ (WebCore::InspectorController::removeDOMStorageItem):
+ * inspector/InspectorDOMStorageResource.cpp:
+ (WebCore::InspectorDOMStorageResource::bind):
+ * inspector/InspectorDOMStorageResource.h:
+ * inspector/InspectorFrontend.cpp:
+ * inspector/InspectorFrontend.h:
+
+2010-08-04 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Adam Barth.
+
+ Enable HTML5 tree builder
+ https://bugs.webkit.org/show_bug.cgi?id=42804
+
+ Months of work into a single line code change.
+ Geez. Should have thought of this sooner.
+
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+
+2010-08-04 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Spin-button behavior improvement for out-of-range values
+ https://bugs.webkit.org/show_bug.cgi?id=43463
+
+ If the current value is smaller than the minimum value, the up
+ button should change the value to the minimum value. If the
+ current value is larger than the maximum value, the down button
+ should change the value to the maximum value.
+
+ Test: fast/forms/input-number-outofrange.html
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::stepUpFromRenderer):
+
+2010-08-04 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Daniel Bates.
+
+ Remove superfluous non-negative checks in HitTestResult:padding{Width|Height}
+ https://bugs.webkit.org/show_bug.cgi?id=43534
+
+ As pointed out by Steve Block in https://bugs.webkit.org/show_bug.cgi?id=40197#c54 ,
+ the non-negative checks present in both paddingWidth and paddingHeight methods of
+ HitTestResults class are superflous, after we changed the rect based hit testing logic
+ of invalid padding from IntSize(-1, -1) to IntSize(0, 0). Patch addresses this issue.
+
+ No new tests needed.
+
+ * rendering/HitTestResult.h:
+ (WebCore::HitTestResult::paddingWidth):
+ (WebCore::HitTestResult::paddingHeight):
+
+2010-08-04 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64674.
+ http://trac.webkit.org/changeset/64674
+ https://bugs.webkit.org/show_bug.cgi?id=43532
+
+ Doesn't work with HTML5 tree builder (Requested by tonyg-cr on
+ #webkit).
+
+ * html/HTMLDocumentParser.cpp:
+ (WebCore::HTMLDocumentParser::attemptToEnd):
+ (WebCore::HTMLDocumentParser::endIfDelayed):
+ * html/HTMLDocumentParser.h:
+ * html/HTMLScriptRunner.cpp:
+ (WebCore::HTMLScriptRunner::requestScript):
+ (WebCore::HTMLScriptRunner::runScript):
+ * html/HTMLScriptRunner.h:
+
+2010-08-04 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ fast/parser/residual-style-hang.html hangs
+ https://bugs.webkit.org/show_bug.cgi?id=42950
+
+ We need to cap the iteration of the adoption agency algorithm to
+ prevent this hang. The legacy tree builder does this as well.
+
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
+
+2010-08-04 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Pick up spec change w.r.t. figcaption and summary
+ https://bugs.webkit.org/show_bug.cgi?id=43075
+
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::processEndTagForInBody):
+
+2010-08-04 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Pick up spec change w.r.t. replacement character and <frameset>
+ https://bugs.webkit.org/show_bug.cgi?id=43073
+
+ Apparently this fixes parsing for some home router configuration pages.
+
+ * html/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::processCharacterBuffer):
+
+2010-08-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 43515 - Fix small design issues with PageAllocation, split out PageReservation.
+ (add forwarding headers)
+
+ * ForwardingHeaders/wtf/Bitmap.h: Added.
+ * ForwardingHeaders/wtf/PageReservation.h: Added.
+
+2010-08-04 Zhenyao Mo <zmo@google.com>
+
+ Reviewed by Adam Barth.
+
+ getAttachedShaders takes wrong parameter type in WebGLRenderingContext.idl
+ https://bugs.webkit.org/show_bug.cgi?id=43517
+
+ * html/canvas/WebGLRenderingContext.idl: Fix the wrong parameter type in getAttachedShaders().
+
+2010-08-04 Kenneth Russell <kbr@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Rename CanvasObject to WebGLObject
+ https://bugs.webkit.org/show_bug.cgi?id=31564
+
+ Renamed CanvasObject to WebGLObject using do-webcore-rename script.
+ Because it seems the new convention is to not check in the changes
+ made to this script, only checking in its effects. No new tests;
+ built and ran WebGL in Safari and Chromium to test.
+
+ * Android.mk:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.xcodeproj/project.pbxproj:
+ * html/canvas/CanvasObject.cpp: Removed.
+ * html/canvas/CanvasObject.h: Removed.
+ * html/canvas/CanvasRenderingContext.h:
+ * html/canvas/WebGLBuffer.cpp:
+ (WebCore::WebGLBuffer::WebGLBuffer):
+ * html/canvas/WebGLBuffer.h:
+ * html/canvas/WebGLFramebuffer.cpp:
+ (WebCore::WebGLFramebuffer::WebGLFramebuffer):
+ (WebCore::WebGLFramebuffer::setAttachment):
+ (WebCore::WebGLFramebuffer::onAttachedObjectChange):
+ (WebCore::WebGLFramebuffer::isUninitialized):
+ (WebCore::WebGLFramebuffer::setInitialized):
+ * html/canvas/WebGLFramebuffer.h:
+ * html/canvas/WebGLObject.cpp: Copied from WebCore/html/canvas/CanvasObject.cpp.
+ (WebCore::WebGLObject::WebGLObject):
+ (WebCore::WebGLObject::~WebGLObject):
+ (WebCore::WebGLObject::setObject):
+ (WebCore::WebGLObject::deleteObject):
+ * html/canvas/WebGLObject.h: Copied from WebCore/html/canvas/CanvasObject.h.
+ * html/canvas/WebGLProgram.cpp:
+ (WebCore::WebGLProgram::WebGLProgram):
+ * html/canvas/WebGLProgram.h:
+ * html/canvas/WebGLRenderbuffer.cpp:
+ (WebCore::WebGLRenderbuffer::WebGLRenderbuffer):
+ * html/canvas/WebGLRenderbuffer.h:
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::objectOrZero):
+ (WebCore::WebGLRenderingContext::validateWebGLObject):
+ (WebCore::WebGLRenderingContext::removeObject):
+ (WebCore::WebGLRenderingContext::addObject):
+ (WebCore::WebGLRenderingContext::detachAndRemoveAllObjects):
+ (WebCore::WebGLRenderingContext::findTexture):
+ (WebCore::WebGLRenderingContext::findRenderbuffer):
+ (WebCore::WebGLRenderingContext::findBuffer):
+ (WebCore::WebGLRenderingContext::findShader):
+ * html/canvas/WebGLRenderingContext.h:
+ * html/canvas/WebGLShader.cpp:
+ (WebCore::WebGLShader::WebGLShader):
+ * html/canvas/WebGLShader.h:
+ * html/canvas/WebGLTexture.cpp:
+ (WebCore::WebGLTexture::WebGLTexture):
+ * html/canvas/WebGLTexture.h:
+ * html/canvas/WebGLUniformLocation.h:
+ * platform/graphics/mac/GraphicsContext3DMac.mm:
+ * platform/graphics/qt/GraphicsContext3DQt.cpp:
+
+2010-08-04 Dan Bernstein <mitz@apple.com>
+
+ Build fix.
+
+ * platform/text/mac/HyphenationMac.mm:
+ (WebCore::lastHyphenLocation):
+
+2010-08-04 Dan Bernstein <mitz@apple.com>
+
+ Release build fix.
+
+ * platform/text/mac/HyphenationMac.mm:
+ (WebCore::lastHyphenLocation):
+
+2010-08-04 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Don't leak FontDescription objects inside MathML.
+
+ * mathml/RenderMathMLOperator.cpp:
+ (WebCore::RenderMathMLOperator::updateFromElement): Don't unnecessarily allocate the FontDescription on the heap.
+ (WebCore::RenderMathMLOperator::createStackableStyle): Ditto.
+
+2010-08-04 Kenneth Russell <kbr@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Add ANGLE dependency for Chromium WebCore build
+ https://bugs.webkit.org/show_bug.cgi?id=43508
+
+ No new tests. Built modified version of patch from bug 42405 in
+ Chromium to test.
+
+ * WebCore.gyp/WebCore.gyp:
+
+2010-08-04 Dan Bernstein <mitz@apple.com>
+
+ Allow the language for hyphenation to be specified
+ https://bugs.webkit.org/show_bug.cgi?id=43467
+
+ Test: fast/text/hyphenate-locale.html
+
+ Added a -webkit-hyphenate-locale property whose value can be either auto or a locale identifier
+ string. The initial value is auto and the property is inherited. When the value is a locale
+ identifier, hyphenation should follow the rules for the specified locale.
+
+ * WebCore.xcodeproj/project.pbxproj: Added AtomicStringKeyedMRUCache.h.
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Handle -webkit-hyphenate-locale.
+ Updated for the renaming of RenderStyle::hyphenateCharacter() to hyphenationString().
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue): Parse -webkit-hyphenate-locale.
+ * css/CSSPropertyNames.in: Added -webkit-hyphenate-locale.
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty): Apply the -webkit-hyphenate-locale property to the
+ RenderStyle. Updated for the renaming of RenderStyle::hyphenateCharacter() to hyphenationString().
+ * platform/text/AtomicStringKeyedMRUCache.h: Added.
+ (WebCore::AtomicStringKeyedMRUCache::get):
+ * platform/text/Hyphenation.cpp:
+ (WebCore::canHyphenate): Added an implementation that returns false.
+ (WebCore::lastHyphenLocation): Now asserts that it is not called, because it is an error to call
+ this function if canHyphenate() returned false.
+ * platform/text/Hyphenation.h:
+ Added canHyphenate(). Returns true if hyphenation is possible for the given locale identifier.
+ * platform/text/android/HyphenationAndroid.cpp:
+ (WebCore::canHyphenate): Added an implementation that returns true and a FIXME.
+ (WebCore::lastHyphenLocation): Added unused localeIdentifier parameter.
+ * platform/text/cf/HyphenationCF.cpp:
+ (WebCore::AtomicStringKeyedMRUCache<RetainPtr<CFLocaleRef> >::createValueForNullKey): Returns
+ the CFLocaleRef for the current search locale.
+ (WebCore::AtomicStringKeyedMRUCache<RetainPtr<CFLocaleRef> >::createValueForKey): Returns a
+ CFLocaleRef for the locale identifier.
+ (WebCore::canHyphenate): Added. Returns true.
+ (WebCore::lastHyphenLocation): Added localeIdentifier parameter, used to pass a CFLocaleRef to
+ the hyphenation function.
+ * platform/text/mac/HyphenationMac.mm:
+ (WebCore::AtomicStringKeyedMRUCache<bool>::createValueForNullKey): Returns whether the current
+ search locale is english.
+ (WebCore::AtomicStringKeyedMRUCache<bool>::createValueForKey): Returns whether the locale identifier
+ string identifies locale with the English language.
+ (WebCore::canHyphenate): Added. Returns true if the locale language is English.
+ (WebCore::lastHyphenLocation): Added localeIdentifier parameter and an assertion that its language
+ is English.
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::tryHyphenating): Added a locale identifier parameter, which is passed down to
+ lastHyphenLocation(). Added 1 to the value passed for the beforeIndex parameter to lastHyphenLocation(),
+ because the latter only returns values smaller than that index. The Mac implementation could
+ return a value equal to beforeIndex, but that is fixed in the WebKitSystemInterface part of this patch.
+ (WebCore::RenderBlock::findNextLineBreak): Only set canHyphenate to true if hyphenation is possible
+ for the specified hyphenation locale. Pass the hyphenation locale to tryHyphenating().
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::diff): Compare hyphenation locales.
+ (WebCore::RenderStyle::hyphenString): Updated for the renaming of hyphenateCharacter() to
+ hyphenationString().
+ * rendering/style/RenderStyle.h:
+ (WebCore::InheritedFlags::hyphenationString): Renamed hyphenateCharacter() to this.
+ (WebCore::InheritedFlags::hyphenationLocale): Added this accessor.
+ (WebCore::InheritedFlags::setHyphenationString): Renamed setHyphenateCharacter() to this.
+ (WebCore::InheritedFlags::setHyphenationLocale): Added this accessor.
+ (WebCore::InheritedFlags::initialHyphenationString): Renamed initialHyphenateCharacter() to this.
+ (WebCore::InheritedFlags::initialHyphenateLocale): Added. Returns the null atom, which represents a
+ value of auto.
+ * rendering/style/StyleRareInheritedData.cpp:
+ (WebCore::StyleRareInheritedData::StyleRareInheritedData): Copy the hyphenation locale. Updated for
+ rename.
+ (WebCore::StyleRareInheritedData::operator==): Compare the hyphenation locales. Updated for rename.
+ * rendering/style/StyleRareInheritedData.h:
+
+2010-08-04 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ Support <script defer> as specified by HTML5
+ https://bugs.webkit.org/show_bug.cgi?id=40934
+
+ See: http://dev.w3.org/html5/spec/Overview.html#the-end
+
+ Tests: fast/dom/HTMLScriptElement/defer-double-defer-write.html
+ fast/dom/HTMLScriptElement/defer-double-write.html
+ fast/dom/HTMLScriptElement/defer-inline-script.html
+ fast/dom/HTMLScriptElement/defer-onbeforeload.html
+ fast/dom/HTMLScriptElement/defer-script-invalid-url.html
+ http/tests/misc/script-defer-after-slow-stylesheet.html
+ http/tests/misc/script-defer-write-slow-stylesheet.html
+ http/tests/misc/script-defer.html
+
+ * html/HTMLDocumentParser.cpp:
+ (WebCore::HTMLDocumentParser::attemptToEnd):
+ (WebCore::HTMLDocumentParser::endIfDelayed):
+ (WebCore::HTMLDocumentParser::executeScriptsWaitingForParsingAndEnd):
+ * html/HTMLDocumentParser.h:
+ * html/HTMLScriptRunner.cpp:
+ (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
+ (WebCore::HTMLScriptRunner::requestScript):
+ (WebCore::HTMLScriptRunner::requestParsingBlockingScript):
+ (WebCore::HTMLScriptRunner::requestDeferredScript):
+ (WebCore::HTMLScriptRunner::runScript):
+ * html/HTMLScriptRunner.h:
+ (WebCore::HTMLScriptRunner::PendingScript::PendingScript):
+ (WebCore::HTMLScriptRunner::PendingScript::operator=):
+
+2010-08-04 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix for gcc not importing all symbols from convenience libraries.
+ Works on 10.6 only for Mac until the build system is reworked.
+
+ * bindings/scripts/CodeGeneratorCPP.pm: Add conditionals in impl. to header as well.
+ * wscript:
+
+2010-08-04 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix. Enclose PlatformStrategy methods in USE(PLATFORM_STRATEGIES).
+
+ * platform/LocalizedStrings.cpp:
+
+2010-08-04 François Sausset <sausset@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Remove unnecessary calls to setStyle() in MathML code that made RenderLayer crash.
+ https://bugs.webkit.org/show_bug.cgi?id=42894
+
+ Test: mathml/presentation/style.xhtml
+
+ * mathml/MathMLInlineContainerElement.cpp:
+ (WebCore::MathMLInlineContainerElement::createRenderer):
+ * mathml/MathMLMathElement.cpp:
+ (WebCore::MathMLMathElement::createRenderer):
+ * mathml/MathMLTextElement.cpp:
+ (WebCore::MathMLTextElement::createRenderer):
+
+2010-08-03 Kenneth Russell <kbr@google.com>
+
+ Reviewed by Nate Chapin.
+
+ Move WebGL-specific code out of GraphicsContext3D so that G3D can be used as a generic accelerated drawing API
+ https://bugs.webkit.org/show_bug.cgi?id=43221
+
+ Added a helper function to extract the contents of WebGL objects
+ to reduce duplicated code and fix a couple of potential crashes
+ introduced in the previous refactoring.
+
+ No new tests; ran existing WebGL tests.
+
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::attachShader):
+ (WebCore::WebGLRenderingContext::bindAttribLocation):
+ (WebCore::WebGLRenderingContext::bindBuffer):
+ (WebCore::WebGLRenderingContext::bindFramebuffer):
+ (WebCore::WebGLRenderingContext::bindRenderbuffer):
+ (WebCore::WebGLRenderingContext::bindTexture):
+ (WebCore::WebGLRenderingContext::compileShader):
+ (WebCore::WebGLRenderingContext::detachShader):
+ (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
+ (WebCore::WebGLRenderingContext::framebufferTexture2D):
+ (WebCore::WebGLRenderingContext::getActiveAttrib):
+ (WebCore::WebGLRenderingContext::getActiveUniform):
+ (WebCore::WebGLRenderingContext::getAttachedShaders):
+ (WebCore::WebGLRenderingContext::getAttribLocation):
+ (WebCore::WebGLRenderingContext::getProgramParameter):
+ (WebCore::WebGLRenderingContext::getProgramInfoLog):
+ (WebCore::WebGLRenderingContext::getShaderParameter):
+ (WebCore::WebGLRenderingContext::getShaderInfoLog):
+ (WebCore::WebGLRenderingContext::getShaderSource):
+ (WebCore::WebGLRenderingContext::getUniform):
+ (WebCore::WebGLRenderingContext::getUniformLocation):
+ (WebCore::WebGLRenderingContext::linkProgram):
+ (WebCore::WebGLRenderingContext::shaderSource):
+ (WebCore::WebGLRenderingContext::useProgram):
+ (WebCore::WebGLRenderingContext::validateProgram):
+ (WebCore::WebGLRenderingContext::handleNPOTTextures):
+ (WebCore::WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation):
+
+2010-08-04 Mario Sanchez Prada <msanchez@igalia.com>
+
+ Reviewed by Jeremy Orlow.
+
+ [Gtk] Make sure DRT return the right AXTitle for controls
+ https://bugs.webkit.org/show_bug.cgi?id=39997
+
+ Fallback to the text under the given element as its name in case
+ it's a control element and has no associated label for it.
+
+ * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
+ (webkit_accessible_get_name):
+
+2010-08-02 Kenneth Russell <kbr@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Port Chromium's accelerated compositing to Mac OS X
+ https://bugs.webkit.org/show_bug.cgi?id=43398
+
+ No new tests. Tested manually with CSS 3D and WebGL tests.
+
+ * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+ (WebCore::clearBorderColor):
+ (WebCore::clearLayerBackgroundColor):
+ - Fixed compilation problems with gcc.
+ * platform/graphics/chromium/ImageLayerChromium.cpp:
+ (WebCore::ImageLayerChromium::updateTextureContents):
+ - Added Core Graphics port.
+ * platform/graphics/chromium/LayerChromium.cpp:
+ (WebCore::LayerChromium::LayerChromium):
+ - Fixed compilation problems with gcc related to initialization
+ order of members.
+ (WebCore::LayerChromium::updateTextureContents):
+ (WebCore::LayerChromium::updateTextureRect):
+ - Ported to Core Graphics, adjusting for lower-left coordinate
+ system origin.
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::LayerRendererChromium):
+ - Fixed compilation problems with gcc related to initialization
+ order of members.
+ (WebCore::LayerRendererChromium::setRootLayerCanvasSize):
+ - Ported to Core Graphics.
+ (WebCore::LayerRendererChromium::drawLayers):
+ - Added more debug-only error calls during drawing phase.
+ Adjusted scrolling and incremental updating code for Core
+ Graphics' lower-left coordinate system origin.
+ (WebCore::LayerRendererChromium::initializeSharedGLObjects):
+ - Removed color channel swizzling in Core Graphics port. Fixed
+ preexisting bug in initialization check of m_rootLayerTextureId.
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ - Added needed data members for Core Graphics port.
+
+2010-08-04 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: use InspectorValue to push dispatch results from the injected script
+ https://bugs.webkit.org/show_bug.cgi?id=43483
+
+ * bindings/js/JSInjectedScriptHostCustom.cpp:
+ (WebCore::JSInjectedScriptHost::reportDidDispatchOnInjectedScript):
+ * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
+ (WebCore::V8InjectedScriptHost::reportDidDispatchOnInjectedScriptCallback):
+ * inspector/InjectedScript.cpp:
+ (WebCore::InjectedScript::dispatch):
+ * inspector/InjectedScript.h:
+ * inspector/InjectedScriptHost.cpp:
+ (WebCore::InjectedScriptHost::reportDidDispatchOnInjectedScript):
+ (WebCore::InjectedScriptHost::remoteFrontend):
+ * inspector/InjectedScriptHost.h:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBackend.cpp:
+ (WebCore::InspectorBackend::dispatchOnInjectedScript):
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::didContinue):
+ * inspector/InspectorFrontend.cpp:
+ * inspector/InspectorFrontend.h:
+
+2010-08-04 Abhishek Arya <inferno@chromium.org>
+
+ Unreviewed. Put missing equivalent js bindings check.
+
+ Forgot putting js bindings check in http://trac.webkit.org/changeset/64647. This fixes the qt crash.
+
+ * bindings/js/JSDesktopNotificationsCustom.cpp:
+ (WebCore::JSNotificationCenter::requestPermission):
+
+2010-08-04 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: serialize database resources to InspectorValues
+ https://bugs.webkit.org/show_bug.cgi?id=43482
+
+ * inspector/Inspector.idl:
+ * inspector/InspectorBackend.cpp:
+ (WebCore::InspectorBackend::getDatabaseTableNames):
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::populateScriptObjects):
+ (WebCore::InspectorController::selectDatabase):
+ (WebCore::InspectorController::didOpenDatabase):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDatabaseResource.cpp:
+ (WebCore::InspectorDatabaseResource::create):
+ (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
+ (WebCore::InspectorDatabaseResource::bind):
+ * inspector/InspectorDatabaseResource.h:
+ * inspector/InspectorFrontend.cpp:
+ * inspector/InspectorFrontend.h:
+ * storage/Database.cpp:
+ (WebCore::Database::openDatabase):
+
+2010-08-03 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Null the script execution context when disconnecting frame in notifications.
+ Make sure that script execution context is valid in notification requestPermission.
+ https://bugs.webkit.org/show_bug.cgi?id=43295
+
+ Tests: fast/notifications/notifications-document-close-crash.html
+
+ * bindings/v8/custom/V8NotificationCenterCustom.cpp:
+ (WebCore::V8NotificationCenter::requestPermissionCallback):
+ * notifications/NotificationCenter.cpp:
+ (WebCore::NotificationCenter::disconnectFrame):
+
+2010-08-03 Adam Roben <aroben@apple.com>
+
+ Turn on PLATFORM_STRATEGIES on Windows
+
+ Fixes <http://webkit.org/b/43431>.
+
+ Reviewed by Anders Carlsson.
+
+ * WebCore.vcproj/WebCore.vcproj: Added LocalizedStrings.cpp,
+ PlatformStrategies.h, LocalizationStrategy.h, PluginStrategy.h, and
+ VisitedLinkStrategy.h. Removed PluginDataWin.cpp
+
+ * platform/LocalizedStrings.cpp: Wrapped Mac-only functions in
+ PLATFORM(MAC) guards.
+
+ (WebCore::uploadFileText):
+ (WebCore::allFilesText):
+ Added these Windows-only functions.
+
+ * plugins/win/PluginDataWin.cpp: Removed.
+
+2010-08-04 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: serialize CPU profiles to InspectorValues instead of
+ using JS wrappers.
+ https://bugs.webkit.org/show_bug.cgi?id=43475
+
+ * Android.jscbindings.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/ScriptProfile.h:
+ * bindings/js/ScriptProfiler.cpp:
+ (WebCore::ScriptProfiler::stop):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ * bindings/v8/ScriptProfile.cpp:
+ (WebCore::buildInspectorObjectFor):
+ (WebCore::ScriptProfile::buildInspectorObjectForHead):
+ * bindings/v8/ScriptProfile.h:
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::addProfile):
+ (WebCore::InspectorController::addProfileFinishedMessageToConsole):
+ (WebCore::InspectorController::getProfileHeaders):
+ (WebCore::InspectorController::getProfile):
+ (WebCore::InspectorController::createProfileHeader):
+ * inspector/InspectorController.h:
+ * inspector/InspectorFrontend.cpp:
+ * inspector/InspectorFrontend.h:
+
+2010-08-04 Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Use a QImage for the stroke applier scratch context
+
+ This avoids leaking a server-side resource on some graphics systems.
+
+ * platform/graphics/qt/PathQt.cpp:
+ (WebCore::scratchContext):
+
+2010-08-03 Ben Murdoch <benm@google.com>
+
+ Reviewed by Darin Adler.
+
+ HTML5 parser may cause onload not to fire
+ https://bugs.webkit.org/show_bug.cgi?id=43423
+
+ If a complex page causes the HTML parser to yield,
+ then when parsing continues again and eventually
+ finishes, we are missing a call to endIfDelayed(). This
+ results in onload never being called.
+
+ Not for lack of trying, but it seems almost
+ impossible to write a reliable test for this bug,
+ due to the highly timing-dependent nature of the
+ bug. The link above contains further discussion and
+ attempts at writing a test.
+
+ * html/HTMLDocumentParser.cpp:
+ (WebCore::HTMLDocumentParser::resumeParsingAfterYield):
+ Add a call to endIfDelayed() after pumping the tokenizer
+ post the parser yielding to ensure that the parsing step
+ is completed properly and the onload event fires.
+
+2010-08-04 Dirk Schulze <krit@webkit.org>
+
+ Unreviewed sort of Xcode project file.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2010-08-03 Darin Adler <darin@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ System color changes are not applied properly
+ https://bugs.webkit.org/show_bug.cgi?id=43468
+
+ * manual-tests/system-color-change.html: Added.
+
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::platformColorsDidChange): Added a call to
+ Page::setNeedsReapplyStyles, so all frames of all pages will recompute
+ in case they use system colors. It's rare for these colors to change,
+ so OK to do a little extra style computation.
+
+2010-08-04 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Not reviewed. Revert changed license in SVGFEOffsetElement.h, thanks Gabor for noticing.
+
+ * svg/SVGFEOffsetElement.h:
+
+2010-08-03 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=42939
+ WebEditorClient::didBeginEditing is never called in WebKit2
+
+ * page/FocusController.cpp: (WebCore::FocusController::setFocused): Focusing a page without
+ a focused frame makes little sense, so WebKit used to focus a frame first when its view
+ became first responder. For viewless frames, WebKit cannot know what to focus. The assumption
+ here is that in all cases with null m_focusedFrame, it's the main frame that needs to be focused.
+
+2010-08-03 Gavin Barraclough <barraclough@apple.com>
+
+ Build fix following r64624.
+
+ * ForwardingHeaders/wtf/BitMap.h: Added.
+
+2010-08-03 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Ojan Vafai.
+
+ <input type=number> UI: Support wheel events
+ https://bugs.webkit.org/show_bug.cgi?id=42441
+
+ Test: fast/forms/input-number-wheel.html
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::defaultEventHandler):
+ Call stepUpFromRenderer() for wheelDeltaY.
+
+2010-08-03 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by David Kilzer.
+
+ Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
+ https://bugs.webkit.org/show_bug.cgi?id=40627
+
+ Part 6 - LayoutTest and Cleanup
+
+ Test: http/tests/appcache/origin-quota.html
+
+ * loader/appcache/ApplicationCacheGroup.cpp:
+ (WebCore::ApplicationCacheGroup::scheduleReachedOriginQuotaCallback): made synchronous, as asynchronously the cache group was deleted too soon.
+ * loader/appcache/ApplicationCacheStorage.cpp:
+ (WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin): all storing operations should force the database to be created if needed.
+
+2010-08-03 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ extractAndNegateTextDecorationStyle and maxRangeOffset in ApplyStyleCommand.cpp should be deleted
+ https://bugs.webkit.org/show_bug.cgi?id=43437
+
+ Removed extractAndNegateTextDecorationStyle because we never push down text decorations added by CSS rules
+ as discussed on the bug 27809. Also removed pushDownTextDecorationStyleAtBoundaries because it only existed
+ to encapsulate the complexity of calling pushDownTextDecorationStyleAroundNode first with forceNegate = false
+ (calling pushDownTextDecorationStyleAroundNode) and again with forceNegate = true (calling extractAndNegateTextDecorationStyle)
+ after updating layout but neither the layout update nor the second call to pushDownTextDecorationStyleAroundNode
+ is needed after the removal of extractAndNegateTextDecorationStyle.
+
+ Also replaced maxRangeOffset by lastOffsetForEditing as FIXME (added by r48235) indicated.
+
+ No new tests added since this is a clean up.
+
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::ApplyStyleCommand::pushDownTextDecorationStyleAroundNode): No longer takes forceNegate as an argument.
+ (WebCore::ApplyStyleCommand::removeInlineStyle): Calls pushDownTextDecorationStyleAroundNode directly.
+ * editing/ApplyStyleCommand.h:
+
+2010-08-03 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Ojan Vafai.
+
+ Extract a function that serializes nodes from the range version of createMarkup
+ https://bugs.webkit.org/show_bug.cgi?id=43405
+
+ Extracted serializeNodes that serializes nodes from createMarkup.
+ No new tests added since this is a clean up.
+
+ * editing/markup.cpp:
+ (WebCore::serializeNodes): Added.
+ (WebCore::createMarkup): Calls serializeNodes.
+
+2010-08-03 Brian Weinstein <bweinstein@apple.com>
+
+ Fix the build by adding the needed MathML source files to WebCore's vcproj.
+ Also, Visual Studio did some drive-by resorting of the vcproj, the added
+ MathML files are the only important change.
+
+ * WebCore.vcproj/WebCore.vcproj:
+
+2010-08-03 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by Nate Chapin.
+
+ Web Inspector: Missing ApplicationCache InspectorBackend Stub
+ https://bugs.webkit.org/show_bug.cgi?id=43265
+
+ Registered "getApplicationCaches".
+
+ * inspector/front-end/InspectorBackendStub.js:
+ (WebInspector.InspectorBackendStub):
+
+2010-08-03 Brian Weinstein <bweinstein@apple.com>
+
+ Fix the Windows build by adding WebCore/mathml to the list of paths to look for header
+ files.
+
+ * WebCore.vcproj/WebCoreCommon.vsprops:
+
+2010-08-03 Mark Rowe <mrowe@apple.com>
+
+ Fix the i386 build with a static_cast hammer.
+
+ * mathml/RenderMathMLFraction.cpp:
+ (WebCore::RenderMathMLFraction::layout):
+
+2010-08-03 Beth Dakin <bdakin@apple.com>
+
+ Speculative build fix for Leopard.
+
+ * mathml/RenderMathMLOperator.cpp:
+ * mathml/RenderMathMLRoot.cpp:
+ (WebCore::RenderMathMLRoot::paint):
+ (WebCore::RenderMathMLRoot::layout):
+ * mathml/RenderMathMLSquareRoot.cpp:
+ (WebCore::RenderMathMLSquareRoot::paint):
+ * mathml/RenderMathMLSubSup.cpp:
+
+2010-08-03 Beth Dakin <bdakin@apple.com>
+
+ Speculative build fix.
+
+ * css/mathml.css:
+ (mi):
+ (math[mathsize="small"], mstyle[mathsize="small"], mo[mathsize="small"], mn[mathsize="small"], mi[mathsize="small"], mtext[mathsize="small"], mspace[mathsize="small"], ms[mathsize="small"]):
+ (math[mathsize="normal"], mstyle[mathsize="normal"], mo[mathsize="normal"], mn[mathsize="normal"], mi[mathsize="normal"], mtext[mathsize="normal"], mspace[mathsize="normal"], ms[mathsize="normal"]):
+ (math[mathsize="big"], mstyle[mathsize="big"], mo[mathsize="big"], mn[mathsize="big"], mi[mathsize="big"], mtext[mathsize="big"], mspace[mathsize="big"], ms[mathsize="big"]):
+
+2010-08-03 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43444
+ PLATFORM(CF) is false on Windows in JavaScriptCore
+
+ Moved some PLATFORM(WIN) #defines down into JavaScriptCore.
+
+ * config.h: Moved WTF_PLATFORM_CF 1 and WTF_USE_PTHREADS 0 to wtf/Platform.h.
+ Removed #undef WTF_USE_WININET because wtf/Platform.h no longer #defines it.
+
+2010-08-03 Alex Milowski <alex@milowski.com>
+
+ Reviewed by Beth Dakin.
+
+ Changed the ENABLE_MATHML value to enable MathML by default.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-07-30 Stephen White <senorblanco@chromium.org>
+
+ Reviewed by Ojan Vafai.
+
+ Move PlatformContextSkia and NativeImageSkia into the WebCore namespace.
+ https://bugs.webkit.org/show_bug.cgi?id=43272
+
+ One wrinkle is that PlatformContext and NativeImagePtr are
+ typedef'ed outside outside the WebCore namespace block, so the
+ PlatformContextSkia and NativeImageSkia have to be forward-declared
+ explicitly within that namespace. Another solution might be to move
+ those declarations into the WebCore namespace block below, but that
+ would affect platforms other than Skia, so I leave it to the reviewer
+ to decide.
+
+ Test: if it compiles, you're happy.
+
+ * platform/graphics/GraphicsContext.h:
+ * platform/graphics/Image.h:
+ * platform/graphics/ImageSource.h:
+ * platform/graphics/skia/NativeImageSkia.cpp:
+ (WebCore::NativeImageSkia::hasResizedBitmap):
+ (WebCore::NativeImageSkia::shouldCacheResampling):
+ * platform/graphics/skia/NativeImageSkia.h:
+ * platform/graphics/skia/PlatformContextSkia.cpp:
+ (WebCore::PlatformContextSkia::State::State):
+ (WebCore::PlatformContextSkia::beginLayerClippedToImage):
+ (WebCore::PlatformContextSkia::drawRect):
+ (WebCore::PlatformContextSkia::setupPaintForStroking):
+ (WebCore::PlatformContextSkia::getStrokeStyle):
+ (WebCore::PlatformContextSkia::setStrokeStyle):
+ (WebCore::PlatformContextSkia::setTextDrawingMode):
+ (WebCore::PlatformContextSkia::interpolationQuality):
+ (WebCore::PlatformContextSkia::setInterpolationQuality):
+ (WebCore::PlatformContextSkia::getImageResamplingHint):
+ (WebCore::PlatformContextSkia::setImageResamplingHint):
+ (WebCore::PlatformContextSkia::clearImageResamplingHint):
+ (WebCore::PlatformContextSkia::applyClipFromImage):
+ (WebCore::PlatformContextSkia::setGLES2Context):
+ (WebCore::PlatformContextSkia::prepareForSoftwareDraw):
+ (WebCore::PlatformContextSkia::prepareForHardwareDraw):
+ (WebCore::PlatformContextSkia::syncSoftwareCanvas):
+ (WebCore::PlatformContextSkia::uploadSoftwareToHardware):
+ * platform/graphics/skia/PlatformContextSkia.h:
+ (WebCore::PlatformContextSkia::gpuCanvas):
+ * platform/graphics/skia/SkiaFontWin.cpp:
+ (WebCore::windowsCanHandleDrawTextShadow):
+ (WebCore::paintSkiaText):
+ * platform/graphics/skia/SkiaFontWin.h:
+
+2010-08-03 Adam Roben <aroben@apple.com>
+
+ Rename LocalizedStringsMac.mm to LocalizedStrings.cpp
+
+ LocalizedStringsMac.mm should be usable by other ports
+ https://bugs.webkit.org/show_bug.cgi?id=43441
+
+ Reviewed by Anders Carlsson.
+
+ * WebCore.xcodeproj/project.pbxproj: Updated the file's name and path.
+
+ * platform/LocalizedStrings.cpp: Renamed from
+ WebCore/platform/mac/LocalizedStringsMac.mm. Changed #imports to
+ #includes.
+
+2010-08-03 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Move WebGL-specific code out of GraphicsContext3D so that G3D can be used as a generic accelerated drawing API
+ https://bugs.webkit.org/show_bug.cgi?id=43221
+
+ Changes the GraphicsContext3D API to use Platform3DObjects instead of WebGLFoo* types like WebGLTexture.
+ WebGLRenderingContext still uses WebGLFoo types and converts to Platform3DObjects internally. Other
+ consumers of the GraphicsContext3D can use the Platform3DObject APIs directly without any ties to WebGL.
+
+ The majority of this change is purely mechanical. The less obvious changes are:
+ - move all null checking on WebGLFoo types to WebGLRenderingContext, instead of mixing them
+ between WebGLRenderingContext and the various port-specific implementations of GraphicsContext3D
+ - add a GraphicsContext3D getter to CanvasRenderingContext. This is needed for the readback
+ path on Chromium/mac. It may be possible to remove this, but I would prefer to do that
+ in a follow-up patch to minimize churn.
+ - move some texture cube map logic that existed only in the Chromium port of GC3D to
+ WebGLRenderingContext behind #if PLATFORM(CHROMIUM). I think this logic should either
+ exist for all ports or exist for none, but again I would rather change the behavior
+ in a different patch from this one.
+
+ * html/canvas/CanvasRenderingContext.h:
+ (WebCore::CanvasRenderingContext::graphicsContext3D):
+ * html/canvas/WebGLProgram.cpp:
+ (WebCore::WebGLProgram::cacheActiveAttribLocations):
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::attachShader):
+ (WebCore::WebGLRenderingContext::bindAttribLocation):
+ (WebCore::WebGLRenderingContext::bindBuffer):
+ (WebCore::WebGLRenderingContext::bindFramebuffer):
+ (WebCore::WebGLRenderingContext::bindRenderbuffer):
+ (WebCore::WebGLRenderingContext::bindTexture):
+ (WebCore::WebGLRenderingContext::compileShader):
+ (WebCore::WebGLRenderingContext::detachShader):
+ (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
+ (WebCore::WebGLRenderingContext::framebufferTexture2D):
+ (WebCore::WebGLRenderingContext::getActiveAttrib):
+ (WebCore::WebGLRenderingContext::getActiveUniform):
+ (WebCore::WebGLRenderingContext::getAttachedShaders):
+ (WebCore::WebGLRenderingContext::getAttribLocation):
+ (WebCore::WebGLRenderingContext::getProgramParameter):
+ (WebCore::WebGLRenderingContext::getProgramInfoLog):
+ (WebCore::WebGLRenderingContext::getShaderParameter):
+ (WebCore::WebGLRenderingContext::getShaderInfoLog):
+ (WebCore::WebGLRenderingContext::getShaderSource):
+ (WebCore::WebGLRenderingContext::getUniform):
+ (WebCore::WebGLRenderingContext::getUniformLocation):
+ (WebCore::WebGLRenderingContext::isBuffer):
+ (WebCore::WebGLRenderingContext::isFramebuffer):
+ (WebCore::WebGLRenderingContext::isProgram):
+ (WebCore::WebGLRenderingContext::isRenderbuffer):
+ (WebCore::WebGLRenderingContext::isShader):
+ (WebCore::WebGLRenderingContext::isTexture):
+ (WebCore::WebGLRenderingContext::linkProgram):
+ (WebCore::WebGLRenderingContext::shaderSource):
+ (WebCore::WebGLRenderingContext::useProgram):
+ (WebCore::WebGLRenderingContext::validateProgram):
+ (WebCore::WebGLRenderingContext::handleNPOTTextures):
+ (WebCore::WebGLRenderingContext::createFallbackBlackTextures1x1):
+ (WebCore::WebGLRenderingContext::initVertexAttrib0):
+ (WebCore::WebGLRenderingContext::simulateVertexAttrib0):
+ (WebCore::WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation):
+ * html/canvas/WebGLRenderingContext.h:
+ (WebCore::WebGLRenderingContext::graphicsContext3D):
+ * platform/graphics/GraphicsContext3D.h:
+ * platform/graphics/mac/GraphicsContext3DMac.mm:
+ (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
+ (WebCore::GraphicsContext3D::beginPaint):
+ (WebCore::GraphicsContext3D::attachShader):
+ (WebCore::GraphicsContext3D::bindAttribLocation):
+ (WebCore::GraphicsContext3D::bindBuffer):
+ (WebCore::GraphicsContext3D::bindFramebuffer):
+ (WebCore::GraphicsContext3D::bindRenderbuffer):
+ (WebCore::GraphicsContext3D::bindTexture):
+ (WebCore::GraphicsContext3D::compileShader):
+ (WebCore::GraphicsContext3D::detachShader):
+ (WebCore::GraphicsContext3D::framebufferRenderbuffer):
+ (WebCore::GraphicsContext3D::framebufferTexture2D):
+ (WebCore::GraphicsContext3D::getActiveAttrib):
+ (WebCore::GraphicsContext3D::getActiveUniform):
+ (WebCore::GraphicsContext3D::getAttachedShaders):
+ (WebCore::GraphicsContext3D::getAttribLocation):
+ (WebCore::GraphicsContext3D::isBuffer):
+ (WebCore::GraphicsContext3D::isFramebuffer):
+ (WebCore::GraphicsContext3D::isProgram):
+ (WebCore::GraphicsContext3D::isRenderbuffer):
+ (WebCore::GraphicsContext3D::isShader):
+ (WebCore::GraphicsContext3D::isTexture):
+ (WebCore::GraphicsContext3D::linkProgram):
+ (WebCore::GraphicsContext3D::shaderSource):
+ (WebCore::GraphicsContext3D::useProgram):
+ (WebCore::GraphicsContext3D::validateProgram):
+ (WebCore::GraphicsContext3D::getProgramiv):
+ (WebCore::GraphicsContext3D::getProgramInfoLog):
+ (WebCore::GraphicsContext3D::getShaderiv):
+ (WebCore::GraphicsContext3D::getShaderInfoLog):
+ (WebCore::GraphicsContext3D::getShaderSource):
+ (WebCore::GraphicsContext3D::getUniformfv):
+ (WebCore::GraphicsContext3D::getUniformiv):
+ (WebCore::GraphicsContext3D::getUniformLocation):
+ * platform/graphics/qt/GraphicsContext3DQt.cpp:
+ (WebCore::GraphicsContext3D::beginPaint):
+ (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
+ (WebCore::GraphicsContext3D::attachShader):
+ (WebCore::GraphicsContext3D::bindAttribLocation):
+ (WebCore::GraphicsContext3D::bindBuffer):
+ (WebCore::GraphicsContext3D::bindFramebuffer):
+ (WebCore::GraphicsContext3D::bindRenderbuffer):
+ (WebCore::GraphicsContext3D::bindTexture):
+ (WebCore::GraphicsContext3D::compileShader):
+ (WebCore::GraphicsContext3D::detachShader):
+ (WebCore::GraphicsContext3D::framebufferRenderbuffer):
+ (WebCore::GraphicsContext3D::framebufferTexture2D):
+ (WebCore::GraphicsContext3D::getActiveAttrib):
+ (WebCore::GraphicsContext3D::getActiveUniform):
+ (WebCore::GraphicsContext3D::getAttribLocation):
+ (WebCore::GraphicsContext3D::isBuffer):
+ (WebCore::GraphicsContext3D::isFramebuffer):
+ (WebCore::GraphicsContext3D::isProgram):
+ (WebCore::GraphicsContext3D::isRenderbuffer):
+ (WebCore::GraphicsContext3D::isShader):
+ (WebCore::GraphicsContext3D::isTexture):
+ (WebCore::GraphicsContext3D::linkProgram):
+ (WebCore::GraphicsContext3D::shaderSource):
+ (WebCore::GraphicsContext3D::useProgram):
+ (WebCore::GraphicsContext3D::validateProgram):
+ (WebCore::GraphicsContext3D::getProgramiv):
+ (WebCore::GraphicsContext3D::getProgramInfoLog):
+ (WebCore::GraphicsContext3D::getShaderiv):
+ (WebCore::GraphicsContext3D::getShaderInfoLog):
+ (WebCore::GraphicsContext3D::getShaderSource):
+ (WebCore::GraphicsContext3D::getUniformfv):
+ (WebCore::GraphicsContext3D::getUniformiv):
+ (WebCore::GraphicsContext3D::getUniformLocation):
+
+2010-08-03 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ [GTK] Fix DOM event dispatch
+ https://bugs.webkit.org/show_bug.cgi?id=40847
+
+ Bind UI and Mouse events and add ad-hoc kit method for WebCore
+ Events.
+
+ * GNUmakefile.am:
+ * bindings/gobject/WebKitDOMBinding.cpp:
+ (WebKit::kit):
+ * bindings/gobject/WebKitDOMBinding.h:
+ * bindings/gobject/WebKitDOMEventTarget.cpp:
+ (WebKit::core):
+ * bindings/gobject/WebKitDOMEventTargetPrivate.h: Added.
+ * bindings/scripts/CodeGeneratorGObject.pm:
+
+2010-08-03 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Eric Seidel.
+
+ Cleanup all of svg/ code
+ https://bugs.webkit.org/show_bug.cgi?id=43311
+
+ Unify the license header in all files in svg/, to use the same template as most WebCore files use.
+ Unified email adress style, etc. all generated with a perl script attached to bug 43311.
+
+ * svg/...: Updated header template in all files, in the svg/ subdirectory.
+
+2010-08-03 Andrei Popescu <andreip@google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ [IndexedDB] IDBObjectStoreRequest should be called IDBObjectStore
+ https://bugs.webkit.org/show_bug.cgi?id=43420
+
+ Renaming IDBObjectStoreRequest to IDBObjectStore.
+
+ No new tests needed, just refactoring.
+
+ * Android.derived.jscbindings.mk:
+ * Android.derived.v8bindings.mk:
+ * Android.mk:
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pri:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSIDBAnyCustom.cpp:
+ (WebCore::toJS):
+ * bindings/v8/custom/V8IDBAnyCustom.cpp:
+ (WebCore::toV8):
+ * storage/IDBAny.cpp:
+ (WebCore::IDBAny::idbObjectStore):
+ (WebCore::IDBAny::set):
+ * storage/IDBAny.h:
+ (WebCore::IDBAny::):
+ * storage/IDBCallbacks.h:
+ * storage/IDBDatabase.cpp:
+ (WebCore::IDBDatabase::objectStore):
+ * storage/IDBDatabase.h:
+ * storage/IDBDatabaseBackendImpl.cpp:
+ (WebCore::IDBDatabaseBackendImpl::createObjectStore):
+ (WebCore::IDBDatabaseBackendImpl::objectStore):
+ * storage/IDBDatabaseBackendImpl.h:
+ * storage/IDBDatabaseBackendInterface.h:
+ * storage/IDBObjectStore.cpp: Added.
+ (WebCore::IDBObjectStore::IDBObjectStore):
+ (WebCore::IDBObjectStore::name):
+ (WebCore::IDBObjectStore::keyPath):
+ (WebCore::IDBObjectStore::indexNames):
+ (WebCore::IDBObjectStore::get):
+ (WebCore::IDBObjectStore::add):
+ (WebCore::IDBObjectStore::put):
+ (WebCore::IDBObjectStore::remove):
+ (WebCore::IDBObjectStore::createIndex):
+ (WebCore::IDBObjectStore::index):
+ (WebCore::IDBObjectStore::removeIndex):
+ * storage/IDBObjectStore.h:
+ (WebCore::IDBObjectStore::create):
+ (WebCore::IDBObjectStore::~IDBObjectStore):
+ * storage/IDBObjectStore.idl: Added.
+ * storage/IDBObjectStoreBackendImpl.cpp: Added.
+ (WebCore::IDBObjectStoreBackendImpl::~IDBObjectStoreBackendImpl):
+ (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
+ (WebCore::IDBObjectStoreBackendImpl::indexNames):
+ (WebCore::IDBObjectStoreBackendImpl::get):
+ (WebCore::IDBObjectStoreBackendImpl::put):
+ (WebCore::IDBObjectStoreBackendImpl::remove):
+ (WebCore::IDBObjectStoreBackendImpl::createIndex):
+ (WebCore::IDBObjectStoreBackendImpl::index):
+ (WebCore::IDBObjectStoreBackendImpl::removeIndex):
+ * storage/IDBObjectStoreBackendImpl.h: Added.
+ (WebCore::IDBObjectStoreBackendImpl::create):
+ (WebCore::IDBObjectStoreBackendImpl::name):
+ (WebCore::IDBObjectStoreBackendImpl::keyPath):
+ * storage/IDBObjectStoreBackendInterface.h: Added.
+ (WebCore::IDBObjectStoreBackendInterface::~IDBObjectStoreBackendInterface):
+ * storage/IDBObjectStoreImpl.cpp: Removed.
+ * storage/IDBObjectStoreImpl.h: Removed.
+ * storage/IDBObjectStoreRequest.cpp: Removed.
+ * storage/IDBObjectStoreRequest.h: Removed.
+ * storage/IDBObjectStoreRequest.idl: Removed.
+ * storage/IDBRequest.cpp:
+ (WebCore::IDBRequest::onSuccess):
+ * storage/IDBRequest.h:
+
+2010-08-03 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Ojan Vafai.
+
+ [GTK] Incorrect keyIdentifier for print screen key events
+ https://bugs.webkit.org/show_bug.cgi?id=43422
+
+ Produce the correct keyIdentifier for GDK_Print (print screen).
+
+ * platform/gtk/KeyEventGtk.cpp:
+ (WebCore::keyIdentifierForGdkKeyCode):
+
+2010-08-03 Anton Muhin <antonm@chromium.org>
+
+ Reviewed by David Levin.
+
+ [v8] Get current memory usage and make it available on stack before crashing due to out of memory
+ https://bugs.webkit.org/show_bug.cgi?id=43426
+
+ That should allow us to diagnose the cases when the process just ran out of memory
+ and hence V8 failed to allocate more OS pages.
+
+ * bindings/v8/V8DOMWindowShell.cpp:
+ (WebCore::reportFatalErrorInV8):
+
+2010-08-03 Leandro Pereira <leandro@profusion.mobi>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [EFL] Implement HTML5 slider theme (using the scrollbar theme as base).
+ https://bugs.webkit.org/show_bug.cgi?id=43430
+
+ EFL port does not yet support automated tests.
+
+ * platform/efl/RenderThemeEfl.cpp:
+ (WebCore::RenderThemeEfl::paintThemePart):
+ (WebCore::RenderThemeEfl::edjeGroupFromFormType): Add Edje groups
+ for both vertical and horizontal sliders.
+ (WebCore::supportsFocus): Add sliders as focusable elements.
+ (WebCore::RenderThemeEfl::paintSliderTrack): Implement.
+ (WebCore::RenderThemeEfl::adjustSliderTrackStyle): Implement.
+ (WebCore::RenderThemeEfl::adjustSliderThumbStyle): Use
+ adjustSliderTrackStyle() implementation.
+ (WebCore::RenderThemeEfl::paintSliderThumb): Use paintSliderTrack()
+ implementation().
+ * platform/efl/RenderThemeEfl.h: Add SliderVertical and
+ * SliderHorizontal.
+ (WebCore::): Added prototypes for adjustSlider*/paintSlider*.
+
+2010-08-03 Alexander Pavlov <apavlov@chromium.org>
+
+ Reviewed by Joseph Pecoraro.
+
+ Web Inspector: incorrect absolute protocol-less URLs in tooltips of links in the ElementsTreeOutline
+ https://bugs.webkit.org/show_bug.cgi?id=43246
+
+ * inspector/front-end/inspector.js:
+ (WebInspector.completeURL):
+
+2010-08-03 Adam Roben <aroben@apple.com>
+
+ Compile out two Mac-only localized strings on non-Mac platforms
+
+ Fixes <http://webkit.org/b/43433> copyImageUnknownFileLabel and
+ AXARIAContentGroupText should only be compiled on Mac
+
+ Reviewed by Anders Carlsson.
+
+ * platform/LocalizationStrategy.h:
+ * platform/LocalizedStrings.h:
+ Wrapped copyImageUnknownFileLabel and AXARIAContentGroupText in
+ PLATFORM(MAC).
+
+2010-08-03 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix, don't build some DOM bindings we don't use.
+
+ * wscript:
+
+2010-08-03 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Gustavo Noronha Silva.
+
+ [GTK] Remove a memory leak from CusorGtk.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=43424
+
+ * platform/gtk/CursorGtk.cpp:
+ (WebCore::createNamedCursor):
+ (WebCore::createCustomCursor):
+ (WebCore::Cursor::ensurePlatformCursor):
+ * platform/gtk/KeyEventGtk.cpp:
+ (WebCore::keyIdentifierForGdkKeyCode):
+
+2010-08-03 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: speculative chromium tests fix.
+
+ * inspector/front-end/ExtensionServer.js:
+ * inspector/front-end/inspector.js:
+ (WebInspector.loaded):
+
+2010-08-03 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Antonio Gomes.
+
+ Fix warning in WebCore/rendering/RenderBoxModelObject.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=43412
+
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::clipBorderSidePolygon): Remove useless assignment.
+
+2010-08-03 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ Make string parameters be 'const char*' instead of just 'char*'.
+
+ * bindings/scripts/CodeGeneratorGObject.pm:
+
+2010-08-03 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ Get rid of extra spaces in the type strings.
+
+ * bindings/scripts/CodeGeneratorGObject.pm:
+
+2010-08-03 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Adam Roben.
+
+ Fix warning in WebCore/plugins/win/PluginMessageThrottlerWin.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=43413
+
+ * plugins/win/PluginMessageThrottlerWin.cpp:
+ (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin): Modify initialization order.
+
+2010-08-03 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: use InspectorValue to push resource data to the frontend
+ https://bugs.webkit.org/show_bug.cgi?id=43414
+
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::disconnectFrontend): destroy remote frontend object along with the old inspector frontend
+ (WebCore::InspectorController::populateScriptObjects):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::didLoadResourceFromMemoryCache):
+ (WebCore::InspectorController::identifierForInitialRequest):
+ (WebCore::InspectorController::mainResourceFiredDOMContentEvent):
+ (WebCore::InspectorController::mainResourceFiredLoadEvent):
+ (WebCore::InspectorController::willSendRequest):
+ (WebCore::InspectorController::didReceiveResponse):
+ (WebCore::InspectorController::didReceiveContentLength):
+ (WebCore::InspectorController::didFinishLoading):
+ (WebCore::InspectorController::didFailLoading):
+ (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
+ (WebCore::InspectorController::scriptImported):
+ * inspector/InspectorFrontend.cpp:
+ * inspector/InspectorFrontend.h:
+ * inspector/InspectorResource.cpp:
+ (WebCore::buildHeadersObject):
+ (WebCore::buildObjectForTiming):
+ (WebCore::InspectorResource::updateScriptObject):
+ * inspector/InspectorResource.h:
+ * inspector/front-end/inspector.js:
+ (WebInspector.updateResource):
+
+2010-08-03 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64539.
+ http://trac.webkit.org/changeset/64539
+ https://bugs.webkit.org/show_bug.cgi?id=43409
+
+ Accidently changed licenses in some files (Requested by
+ WildFox on #webkit).
+
+ * svg/...:
+
+2010-08-03 Andrei Popescu <andreip@google.com>
+
+ Unreviewed, build fix.
+
+ [IndexedDB] Chromium build is broken due to typo in WebCore.gypi:3501
+ https://bugs.webkit.org/show_bug.cgi?id=43408
+
+ Add missing ' in WebCore.gypi:3501.
+
+ * WebCore.gypi:
+
+2010-07-30 Andrei Popescu <andreip@dhcp-172-16-14-12.lon.corp.google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ Rename IDBDatabaseRequest to IDBDatabase
+ https://bugs.webkit.org/show_bug.cgi?id=43250
+
+ No new tests, just refactoring.
+
+ * Android.derived.jscbindings.mk:
+ * Android.derived.v8bindings.mk:
+ * Android.mk:
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pri:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.vcproj/WebCore.vcproj~: Added.
+ * WebCore.xcodeproj/project.pbxproj:
+ * WebCore.xcodeproj/project.pbxproj~: Added.
+ * bindings/js/JSIDBAnyCustom.cpp:
+ (WebCore::toJS):
+ * bindings/v8/custom/V8IDBAnyCustom.cpp:
+ (WebCore::toV8):
+ * storage/IDBAny.cpp:
+ (WebCore::IDBAny::idbDatabase):
+ (WebCore::IDBAny::set):
+ * storage/IDBAny.h:
+ (WebCore::IDBAny::):
+ * storage/IDBCallbacks.h:
+ * storage/IDBDatabase.cpp: Added.
+ (WebCore::IDBDatabase::IDBDatabase):
+ (WebCore::IDBDatabase::~IDBDatabase):
+ (WebCore::IDBDatabase::createObjectStore):
+ (WebCore::IDBDatabase::objectStore):
+ (WebCore::IDBDatabase::removeObjectStore):
+ * storage/IDBDatabase.h:
+ (WebCore::IDBDatabase::create):
+ (WebCore::IDBDatabase::name):
+ (WebCore::IDBDatabase::description):
+ (WebCore::IDBDatabase::version):
+ (WebCore::IDBDatabase::objectStores):
+ * storage/IDBDatabase.idl: Added.
+ * storage/IDBDatabaseBackendImpl.cpp: Added.
+ (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
+ (WebCore::IDBDatabaseBackendImpl::~IDBDatabaseBackendImpl):
+ (WebCore::IDBDatabaseBackendImpl::objectStores):
+ (WebCore::IDBDatabaseBackendImpl::createObjectStore):
+ (WebCore::IDBDatabaseBackendImpl::objectStore):
+ (WebCore::IDBDatabaseBackendImpl::removeObjectStore):
+ * storage/IDBDatabaseBackendImpl.h: Added.
+ (WebCore::IDBDatabaseBackendImpl::create):
+ (WebCore::IDBDatabaseBackendImpl::name):
+ (WebCore::IDBDatabaseBackendImpl::description):
+ (WebCore::IDBDatabaseBackendImpl::version):
+ * storage/IDBDatabaseBackendInterface.h: Added.
+ (WebCore::IDBDatabaseBackendInterface::~IDBDatabaseBackendInterface):
+ * storage/IDBDatabaseImpl.cpp: Removed.
+ * storage/IDBDatabaseImpl.h: Removed.
+ * storage/IDBDatabaseRequest.cpp: Removed.
+ * storage/IDBDatabaseRequest.h: Removed.
+ * storage/IDBDatabaseRequest.idl: Removed.
+ * storage/IDBFactoryBackendImpl.cpp:
+ (WebCore::IDBFactoryBackendImpl::open):
+ * storage/IDBFactoryBackendImpl.h:
+ * storage/IDBRequest.cpp:
+ (WebCore::IDBRequest::onSuccess):
+ * storage/IDBRequest.h:
+
+2010-08-03 Satish Sampath <satish@chromium.org>
+
+ Reviewed by Kent Tamura.
+
+ Initiate speech input requests on click event
+ https://bugs.webkit.org/show_bug.cgi?id=43352
+
+ * rendering/TextControlInnerElements.cpp:
+ (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
+
+2010-08-02 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: debugger code should serialize call frames to InspectorObjects instead of SerializedScriptValues.
+ https://bugs.webkit.org/show_bug.cgi?id=43339
+
+ No new tests. Refactoring.
+
+ * inspector/InjectedScript.cpp:
+ (WebCore::InjectedScript::callFrames):
+ * inspector/InjectedScript.h:
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::editScriptSource):
+ (WebCore::InspectorController::getScriptSource):
+ (WebCore::InspectorController::currentCallFrames):
+ (WebCore::InspectorController::didPause):
+ * inspector/InspectorController.h:
+ * inspector/front-end/InspectorBackendStub.js:
+ (WebInspector.InspectorBackendStub):
+
+2010-08-03 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Dirk Schulze.
+
+ Cleanup all of svg/ code
+ https://bugs.webkit.org/show_bug.cgi?id=43311
+
+ Unify the license header in all files in svg/, to use the same template as most WebCore files use.
+ Unified email adress style, etc. all generated with a perl script attached to bug 43311.i
+
+ * svg/...: Updated header template in all files, in the svg/ subdirectory.
+
+2010-08-03 Dumitru Daniliuc <dumi@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Turn all callbacks into ActiveDOMObjects and create callbacks in the correct context.
+ https://bugs.webkit.org/show_bug.cgi?id=40112
+
+ Test: http/tests/storage/callbacks-are-called-in-correct-context.html
+
+ * CMakeLists.txt: Added new files.
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+
+ * bindings/generic/ActiveDOMCallback.cpp: Added. The base class
+ for all callbacks, that behaves like an ActiveDOMObject.
+ (WebCore::DestroyOnContextThreadTask::create):
+ (WebCore::DestroyOnContextThreadTask::performTask):
+ (WebCore::DestroyOnContextThreadTask::DestroyOnContextThreadTask):
+ (WebCore::ActiveDOMObjectCallbackImpl::ActiveDOMObjectCallbackImpl):
+ (WebCore::ActiveDOMObjectCallbackImpl::contextDestroyed):
+ (WebCore::ActiveDOMObjectCallbackImpl::canSuspend):
+ (WebCore::ActiveDOMObjectCallbackImpl::suspend):
+ (WebCore::ActiveDOMObjectCallbackImpl::resume):
+ (WebCore::ActiveDOMObjectCallbackImpl::stop):
+ (WebCore::ActiveDOMObjectCallbackImpl::canInvokeCallback):
+ (WebCore::ActiveDOMObjectCallbackImpl::scriptExecutionContext):
+ (WebCore::ActiveDOMObjectCallbackImpl::mutex):
+ (WebCore::destroyOnContextThread):
+ (WebCore::ActiveDOMCallback::ActiveDOMCallback):
+ (WebCore::ActiveDOMCallback::~ActiveDOMCallback):
+ (WebCore::ActiveDOMCallback::canInvokeCallback):
+ (WebCore::ActiveDOMCallback::scriptExecutionContext):
+ * bindings/generic/ActiveDOMCallback.h: Added.
+
+ * bindings/js/JSCustomSQLStatementErrorCallback.cpp: Pass the
+ right ScriptExecutionContext to the JSC callbacks.
+ (WebCore::JSSQLStatementErrorCallback::handleEvent):
+ * bindings/js/JSSQLTransactionCustom.cpp:
+ (WebCore::JSSQLTransaction::executeSql):
+
+ * bindings/scripts/CodeGeneratorJS.pm: Make all callbacks inherit
+ from ActiveDOMCallback, and make them use the right
+ ScriptExecutionContext.
+ * bindings/scripts/CodeGeneratorV8.pm:
+
+ * bindings/scripts/test/JS/JSTestCallback.cpp: Update the
+ expectations for the code generated by CodeGenerator{JS|V8}.pm.
+ (WebCore::JSTestCallback::JSTestCallback):
+ (WebCore::JSTestCallback::~JSTestCallback):
+ (WebCore::JSTestCallback::callbackWithClass1Param):
+ (WebCore::JSTestCallback::callbackWithClass2Param):
+ * bindings/scripts/test/JS/JSTestCallback.h:
+ * bindings/scripts/test/V8/V8TestCallback.cpp:
+ (WebCore::V8TestCallback::V8TestCallback):
+ (WebCore::V8TestCallback::callbackWithClass1Param):
+ (WebCore::V8TestCallback::callbackWithClass2Param):
+ * bindings/scripts/test/V8/V8TestCallback.h:
+ (WebCore::V8TestCallback::create):
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::TestObjInternal::methodWithCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
+
+ * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: Pass
+ the right ScriptExecutionContext to the V8 callbacks.
+ (WebCore::V8SQLStatementErrorCallback::handleEvent):
+ * bindings/v8/custom/V8DOMWindowCustom.cpp:
+ (WebCore::V8DOMWindow::openDatabaseCallback):
+ * bindings/v8/custom/V8DatabaseCustom.cpp:
+ (WebCore::V8Database::changeVersionCallback):
+ (WebCore::createTransaction):
+ * bindings/v8/custom/V8DatabaseSyncCustom.cpp:
+ (WebCore::V8DatabaseSync::changeVersionCallback):
+ (WebCore::createTransaction):
+ * bindings/v8/custom/V8SQLTransactionCustom.cpp:
+ (WebCore::V8SQLTransaction::executeSqlCallback):
+ * bindings/v8/custom/V8WorkerContextCustom.cpp:
+ (WebCore::V8WorkerContext::openDatabaseCallback):
+ (WebCore::V8WorkerContext::openDatabaseSyncCallback):
+
+ * dom/ActiveDOMObject.cpp: Simplify the code.
+ (WebCore::ActiveDOMObject::ActiveDOMObject):
+ (WebCore::ActiveDOMObject::~ActiveDOMObject):
+
+ * storage/Database.cpp: CallbackClass::handleEvent() doesn't take
+ a ScriptExecutionContext anymore.
+ (WebCore::DatabaseCreationCallbackTask::performTask):
+ * storage/DatabaseCallback.h:
+ * storage/DatabaseSync.cpp:
+ (WebCore::DatabaseSync::openDatabaseSync):
+ * storage/EntryCallback.h:
+ * storage/ErrorCallback.h:
+ * storage/FileSystemCallback.h:
+ * storage/MetadataCallback.h:
+ * storage/SQLStatement.cpp:
+ (WebCore::SQLStatement::performCallback):
+ * storage/SQLStatementCallback.h:
+ * storage/SQLStatementErrorCallback.h:
+ * storage/SQLTransaction.cpp:
+ (WebCore::SQLTransaction::deliverTransactionCallback):
+ (WebCore::SQLTransaction::deliverTransactionErrorCallback):
+ * storage/SQLTransactionCallback.h:
+ * storage/SQLTransactionErrorCallback.h:
+ * storage/SQLTransactionSync.cpp:
+ (WebCore::SQLTransactionSync::execute):
+ * storage/SQLTransactionSyncCallback.h:
+
+2010-08-02 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ WebInspector: Trivial InspectorBackend functions were removed.
+ And now it is bit simpler to change Inspector API because we have
+ less number of abstraction layers.
+ https://bugs.webkit.org/show_bug.cgi?id=43402
+
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBackend.cpp:
+ (WebCore::InspectorBackend::clearConsoleMessages):
+ (WebCore::InspectorBackend::releaseWrapperObjectGroup):
+ (WebCore::InspectorBackend::inspectorFrontend):
+ (WebCore::InspectorBackend::remoteFrontend):
+ * inspector/InspectorBackend.h:
+ (WebCore::InspectorBackend::inspectorDOMAgent):
+ (WebCore::InspectorBackend::inspectorApplicationCacheAgent):
+ * inspector/InspectorController.h:
+
+2010-08-03 Alexey Proskuryakov <ap@apple.com>
+
+ Unreviewed (emergency test fix).
+
+ REGRESSION (r64518): Most regression tests fail on ASSERT(shouldTrackVisitedLinks)
+ on Snow Leopard.
+
+ Platforms that use strategies now use a different code path than others, and that code path
+ lacks necessary checks. We don't have a Snow Leopard debug buildbot.
+
+ * page/PageGroup.cpp: (WebCore::PageGroup::addVisitedLinkHash): The private version of
+ addVisitedLink() must not be called when we're not tracking visited links.
+
+2010-08-02 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Chromium DevTools: Get rid of DevTools RPC.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43335
+
+ * bindings/js/ScriptProfiler.h:
+ (WebCore::ScriptProfiler::getProfilerLogLines):
+ * bindings/v8/ScriptProfiler.cpp:
+ (WebCore::ScriptProfiler::getProfilerLogLines):
+ * bindings/v8/ScriptProfiler.h:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBackend.cpp:
+ (WebCore::InspectorBackend::takeHeapSnapshot):
+ (WebCore::InspectorBackend::getProfilerLogLines):
+ * inspector/InspectorBackend.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::disableProfiler):
+ * inspector/InspectorController.h:
+ * inspector/InspectorFrontend.h:
+ * inspector/front-end/InspectorBackendStub.js:
+ (WebInspector.InspectorBackendStub):
+
+2010-08-02 Dan Bernstein <mitz@apple.com>
+
+ Rubber-stamped by Sam Weinig.
+
+ Removed temporary build rule introduced in r62594.
+
+ * DerivedSources.make:
+
+2010-08-02 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed. Rolling out r64525 for breaking chromium tests.
+
+ * bindings/v8/V8Proxy.cpp:
+ (WebCore::V8Proxy::retrieve):
+
+2010-08-02 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix, add stubs for FontCustomPlatformData to compile code that uses them.
+
+ * css/CSSFontFaceSource.cpp:
+ * platform/graphics/wx/FontCustomPlatformData.cpp: Added.
+ (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
+ (WebCore::FontCustomPlatformData::fontPlatformData):
+ (WebCore::createFontCustomPlatformData):
+ (WebCore::FontCustomPlatformData::supportsFormat):
+ * platform/graphics/wx/FontCustomPlatformData.h: Added.
+ (WebCore::FontCustomPlatformData::FontCustomPlatformData):
+ * wscript:
+
+2010-08-02 Brady Eidson <beidson@apple.com>
+
+ Reviewed by NOBODY (Build fix, forgot to svn add this file)
+
+ * platform/VisitedLinkStrategy.h: Added.
+ (WebCore::VisitedLinkStrategy::~VisitedLinkStrategy):
+
+2010-08-02 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Gustavo Noronha Silva.
+
+ [GTK] WebKit2 requires lazy cursor support
+ https://bugs.webkit.org/show_bug.cgi?id=43053
+
+ Add lazy cursor support for GTK+. Lazy cursor support is used on some
+ WebKit2 ports to support changing the cursor.
+
+ No new tests, as this should not change functionality.
+
+ * platform/Cursor.h: Changed the m_platformCursor member to be a GRefPtr.
+ This simplifies the logic a great deal.
+ * platform/gtk/CursorGtk.cpp:
+ (WebCore::createNamedCursor): Added, adapted from existing code.
+ (WebCore::createCustomCursor): Added, adapted from existing code.
+ (WebCore::Cursor::ensurePlatformCursor): Added.
+ (WebCore::Cursor::Cursor): Added.
+ (WebCore::Cursor::operator=): Added.
+ (WebCore::Cursor::~Cursor): Added.
+ * platform/gtk/WidgetGtk.cpp:
+ (WebCore::Widget::setCursor): Call platformCusor now to get the actual GdkCursor.
+
+2010-08-02 Rajiv Makhijani <rajivmakhijani@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Committed by Dirk Pranke.
+
+ Bug 38705 - [v8] chromium fails http/tests/sandbox-inherit-to-initial-document-2
+ https://bugs.webkit.org/show_bug.cgi?id=38705
+
+ WebCore::V8Proxy::retrieve(Frame* frame) calls WebCore::ScriptController::canExecuteScripts
+ and returns 0 if canExecuteScripts is false. It should return the proxy regardless
+ of whether the frame can execute scripts.
+
+ * bindings/v8/V8Proxy.cpp:
+ (WebCore::V8Proxy::retrieve): Removed canExecuteScripts check.
+
2010-08-02 Brady Eidson <beidson@apple.com>
Reviewed by Anders Carlsson.
@@ -662,7 +7151,7 @@
2010-08-02 Dirk Schulze <krit@webkit.org>
- Unreviewed sort of XCode project file.
+ Unreviewed sort of Xcode project file.
* WebCore.xcodeproj/project.pbxproj:
@@ -5535,7 +12024,7 @@
2010-07-26 Dirk Schulze <krit@webkit.org>
- Unreviewed sort of XCode project file.
+ Unreviewed sort of Xcode project file.
* WebCore.xcodeproj/project.pbxproj:
@@ -7918,7 +14407,7 @@
Unreviewed, build fix.
Forgot to update the role of HitTestRequest.h in
- the xcode project after landing patch from
+ the Xcode project after landing patch from
https://bugs.webkit.org/show_bug.cgi?id=39493
* WebCore.xcodeproj/project.pbxproj: Make HitTestRequest.h
@@ -8964,7 +15453,7 @@
Reviewed by Mark Rowe.
- Web Inspector: Do Not Copy *.re2js Inspector Resources in XCode Build Phase
+ Web Inspector: Do Not Copy *.re2js Inspector Resources in Xcode Build Phase
https://bugs.webkit.org/show_bug.cgi?id=42601
Remove *.re2js files after copying them over in the Build Phase. We do
@@ -14068,7 +20557,7 @@
Reviewed by Darin Adler.
- Add missing derrived sources to xcode project
+ Add missing derrived sources to Xcode project
https://bugs.webkit.org/show_bug.cgi?id=42034
This allows --web-timing to work with build-webkit on OSX with JSC.
@@ -19692,7 +26181,7 @@
2010-07-03 Dirk Schulze <krit@webkit.org>
- Unreviewed sort of XCode project file.
+ Unreviewed sort of Xcode project file.
* WebCore.xcodeproj/project.pbxproj:
diff --git a/WebCore/Configurations/FeatureDefines.xcconfig b/WebCore/Configurations/FeatureDefines.xcconfig
index 9810cf7..f2b4c09 100644
--- a/WebCore/Configurations/FeatureDefines.xcconfig
+++ b/WebCore/Configurations/FeatureDefines.xcconfig
@@ -46,8 +46,8 @@ ENABLE_3D_RENDERING_macosx_1050 = ENABLE_3D_RENDERING;
ENABLE_3D_RENDERING_macosx_1060 = ENABLE_3D_RENDERING;
ENABLE_3D_RENDERING_macosx_1070 = ENABLE_3D_RENDERING;
-ENABLE_BLOB_SLICE = $(ENABLE_BLOB_SLICE_$(REAL_PLATFORM_NAME));
-ENABLE_BLOB_SLICE_macosx = ENABLE_BLOB_SLICE;
+ENABLE_BLOB = $(ENABLE_BLOB_$(REAL_PLATFORM_NAME));
+ENABLE_BLOB_macosx = ENABLE_BLOB;
ENABLE_CHANNEL_MESSAGING = $(ENABLE_CHANNEL_MESSAGING_$(REAL_PLATFORM_NAME));
ENABLE_CHANNEL_MESSAGING_macosx = ENABLE_CHANNEL_MESSAGING;
@@ -69,9 +69,6 @@ ENABLE_EVENTSOURCE = ENABLE_EVENTSOURCE;
ENABLE_FILTERS = $(ENABLE_FILTERS_$(REAL_PLATFORM_NAME));
ENABLE_FILTERS_macosx = ENABLE_FILTERS;
-ENABLE_FILE_READER = $(ENABLE_FILE_READER_$(REAL_PLATFORM_NAME));
-ENABLE_FILE_READER_macosx = ENABLE_FILE_READER;
-
ENABLE_FILE_WRITER = ;
ENABLE_FILE_SYSTEM = ;
ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
@@ -83,7 +80,7 @@ ENABLE_IMAGE_RESIZER = ;
ENABLE_INDEXED_DATABASE = ;
ENABLE_INPUT_SPEECH = ;
ENABLE_JAVASCRIPT_DEBUGGER = ENABLE_JAVASCRIPT_DEBUGGER;
-ENABLE_MATHML = ;
+ENABLE_MATHML = ENABLE_MATHML;
ENABLE_METER_TAG = ENABLE_METER_TAG;
ENABLE_NOTIFICATIONS = ;
ENABLE_OFFLINE_WEB_APPLICATIONS = ENABLE_OFFLINE_WEB_APPLICATIONS;
@@ -123,4 +120,4 @@ ENABLE_XHTMLMP = ;
ENABLE_XPATH = ENABLE_XPATH;
ENABLE_XSLT = ENABLE_XSLT;
-FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_FILE_SYSTEM) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_WRITER) $(ENABLE_FILE_SYSTEM) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
diff --git a/WebCore/Configurations/Version.xcconfig b/WebCore/Configurations/Version.xcconfig
index 9ac1583..09ebfc4 100644
--- a/WebCore/Configurations/Version.xcconfig
+++ b/WebCore/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 534;
-MINOR_VERSION = 5;
+MINOR_VERSION = 6;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/WebCore/DerivedSources.cpp b/WebCore/DerivedSources.cpp
index 3e5fb60..fd7fcf8 100644
--- a/WebCore/DerivedSources.cpp
+++ b/WebCore/DerivedSources.cpp
@@ -176,18 +176,20 @@
#include "JSHTMLUListElement.cpp"
#include "JSHTMLVideoElement.cpp"
#include "JSIDBAny.cpp"
+#include "JSIDBCursor.cpp"
+#include "JSIDBDatabase.cpp"
#include "JSIDBDatabaseError.cpp"
#include "JSIDBDatabaseException.cpp"
-#include "JSIDBDatabaseRequest.cpp"
#include "JSIDBErrorEvent.cpp"
#include "JSIDBEvent.cpp"
#include "JSIDBFactory.cpp"
#include "JSIDBIndex.cpp"
#include "JSIDBKey.cpp"
#include "JSIDBKeyRange.cpp"
-#include "JSIDBObjectStoreRequest.cpp"
+#include "JSIDBObjectStore.cpp"
#include "JSIDBRequest.cpp"
#include "JSIDBSuccessEvent.cpp"
+#include "JSIDBTransaction.cpp"
#include "JSImageData.cpp"
#include "JSInjectedScriptHost.cpp"
#include "JSInspectorFrontendHost.cpp"
diff --git a/WebCore/DerivedSources.make b/WebCore/DerivedSources.make
index 3f2f0f4..f25e91e 100644
--- a/WebCore/DerivedSources.make
+++ b/WebCore/DerivedSources.make
@@ -28,6 +28,7 @@
VPATH = \
$(WebCore) \
+ $(WebCore)/bindings/generic \
$(WebCore)/bindings/js \
$(WebCore)/bindings/objc \
$(WebCore)/css \
@@ -126,6 +127,7 @@ DOM_CLASSES = \
Database \
DatabaseCallback \
DatabaseSync \
+ DeviceMotionEvent \
DeviceOrientationEvent \
Document \
DocumentFragment \
@@ -225,18 +227,20 @@ DOM_CLASSES = \
HTMLVideoElement \
History \
IDBAny \
+ IDBCursor \
IDBDatabaseError \
IDBDatabaseException \
- IDBDatabaseRequest \
+ IDBDatabase \
IDBErrorEvent \
IDBEvent \
IDBFactory \
IDBIndex \
IDBKey \
IDBKeyRange \
- IDBObjectStoreRequest \
+ IDBObjectStore \
IDBRequest \
IDBSuccessEvent \
+ IDBTransaction \
ImageData \
InjectedScriptHost \
InspectorFrontendHost \
@@ -490,8 +494,6 @@ WEB_DOM_HEADERS := $(filter-out WebDOMXSLTProcessor.h,$(DOM_CLASSES:%=WebDOM%.h)
endif # BUILDING_WX
all : \
- remove-stray-plugin-and-mime-type-files \
- \
$(JS_DOM_HEADERS) \
$(WEB_DOM_HEADERS) \
\
@@ -558,12 +560,6 @@ endif
# --------
-# Temporary build rule. Take out once some time has passed.
-
-.PHONY : remove-stray-plugin-and-mime-type-files
-remove-stray-plugin-and-mime-type-files :
- (rm DOMMimeTypeArray.h DOMMimeTypeArray.mm DOMMimeTypeArrayInternal.h DOMPluginArray.h DOMPluginArray.mm DOMPluginArrayInternal.h 2> /dev/null) || echo -n
-
# CSS property names and value keywords
WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
diff --git a/WebCore/ForwardingHeaders/wtf/Bitmap.h b/WebCore/ForwardingHeaders/wtf/Bitmap.h
new file mode 100644
index 0000000..25fb885
--- /dev/null
+++ b/WebCore/ForwardingHeaders/wtf/Bitmap.h
@@ -0,0 +1,4 @@
+#ifndef WebCore_FWD_Bitmap_h
+#define WebCore_FWD_Bitmap_h
+#include <JavaScriptCore/Bitmap.h>
+#endif
diff --git a/WebCore/ForwardingHeaders/wtf/PageReservation.h b/WebCore/ForwardingHeaders/wtf/PageReservation.h
new file mode 100644
index 0000000..212b02c
--- /dev/null
+++ b/WebCore/ForwardingHeaders/wtf/PageReservation.h
@@ -0,0 +1,4 @@
+#ifndef WebCore_FWD_PageReservation_h
+#define WebCore_FWD_PageReservation_h
+#include <JavaScriptCore/PageReservation.h>
+#endif
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 885bd6c..388b687 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -181,6 +181,8 @@ webcore_built_sources += \
DerivedSources/WebCore/JSDataGridColumnList.h \
DerivedSources/WebCore/JSDedicatedWorkerContext.cpp \
DerivedSources/WebCore/JSDedicatedWorkerContext.h \
+ DerivedSources/WebCore/JSDeviceMotionEvent.cpp \
+ DerivedSources/WebCore/JSDeviceMotionEvent.h \
DerivedSources/WebCore/JSDeviceOrientationEvent.cpp \
DerivedSources/WebCore/JSDeviceOrientationEvent.h \
DerivedSources/WebCore/JSDocument.cpp \
@@ -564,6 +566,7 @@ webcoregtk_dom_sources = \
WebCore/bindings/gobject/WebKitDOMBinding.h \
WebCore/bindings/gobject/WebKitDOMEventTarget.cpp \
WebCore/bindings/gobject/WebKitDOMEventTarget.h \
+ WebCore/bindings/gobject/WebKitDOMEventTargetPrivate.h \
WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.cpp \
WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.h \
WebCore/bindings/gobject/WebKitDOMObject.cpp \
@@ -617,6 +620,8 @@ webcore_sources += \
WebCore/accessibility/AccessibilityTableHeaderContainer.h \
WebCore/accessibility/AccessibilityTableRow.cpp \
WebCore/accessibility/AccessibilityTableRow.h \
+ WebCore/bindings/generic/ActiveDOMCallback.cpp \
+ WebCore/bindings/generic/ActiveDOMCallback.h \
WebCore/bindings/generic/RuntimeEnabledFeatures.cpp \
WebCore/bindings/generic/RuntimeEnabledFeatures.h \
WebCore/bindings/js/CachedScriptSourceProvider.h \
@@ -668,6 +673,7 @@ webcore_sources += \
WebCore/bindings/js/JSDOMWindowShell.h \
WebCore/bindings/js/JSDOMWrapper.cpp \
WebCore/bindings/js/JSDOMWrapper.h \
+ WebCore/bindings/js/JSDeviceMotionEventCustom.cpp \
WebCore/bindings/js/JSDeviceOrientationEventCustom.cpp \
WebCore/bindings/js/JSDocumentCustom.cpp \
WebCore/bindings/js/JSElementCustom.cpp \
@@ -752,8 +758,6 @@ webcore_sources += \
WebCore/bindings/js/JavaScriptCallFrame.h \
WebCore/bindings/js/ScheduledAction.cpp \
WebCore/bindings/js/ScheduledAction.h \
- WebCore/bindings/js/ScriptArray.cpp \
- WebCore/bindings/js/ScriptArray.h \
WebCore/bindings/js/ScriptCachedFrameData.cpp \
WebCore/bindings/js/ScriptCachedFrameData.h \
WebCore/bindings/js/ScriptCallFrame.cpp \
@@ -773,6 +777,7 @@ webcore_sources += \
WebCore/bindings/js/ScriptInstance.h \
WebCore/bindings/js/ScriptObject.cpp \
WebCore/bindings/js/ScriptObject.h \
+ WebCore/bindings/js/ScriptProfile.cpp \
WebCore/bindings/js/ScriptProfile.h \
WebCore/bindings/js/ScriptProfileNode.h \
WebCore/bindings/js/ScriptProfiler.cpp \
@@ -964,6 +969,8 @@ webcore_sources += \
WebCore/css/WebKitCSSTransformValue.h \
WebCore/dom/ActiveDOMObject.cpp \
WebCore/dom/ActiveDOMObject.h \
+ WebCore/dom/AsyncScriptRunner.cpp \
+ WebCore/dom/AsyncScriptRunner.h \
WebCore/dom/Attr.cpp \
WebCore/dom/Attr.h \
WebCore/dom/Attribute.cpp \
@@ -1017,6 +1024,13 @@ webcore_sources += \
WebCore/dom/DatasetDOMStringMap.h \
WebCore/dom/DecodedDataDocumentParser.cpp \
WebCore/dom/DecodedDataDocumentParser.h \
+ WebCore/dom/DeviceMotionClient.h \
+ WebCore/dom/DeviceMotionController.cpp \
+ WebCore/dom/DeviceMotionController.h \
+ WebCore/dom/DeviceMotionData.cpp \
+ WebCore/dom/DeviceMotionData.h \
+ WebCore/dom/DeviceMotionEvent.cpp \
+ WebCore/dom/DeviceMotionEvent.h \
WebCore/dom/DeviceOrientation.cpp \
WebCore/dom/DeviceOrientation.h \
WebCore/dom/DeviceOrientationClient.h \
@@ -1103,6 +1117,8 @@ webcore_sources += \
WebCore/dom/OverflowEvent.h \
WebCore/dom/PageTransitionEvent.cpp \
WebCore/dom/PageTransitionEvent.h \
+ WebCore/dom/PendingScript.cpp \
+ WebCore/dom/PendingScript.h \
WebCore/dom/Position.cpp \
WebCore/dom/Position.h \
WebCore/dom/PopStateEvent.cpp \
@@ -1590,6 +1606,8 @@ webcore_sources += \
WebCore/inspector/InspectorCSSStore.h \
WebCore/inspector/InspectorDatabaseResource.cpp \
WebCore/inspector/InspectorDatabaseResource.h \
+ WebCore/inspector/InspectorDebuggerAgent.cpp \
+ WebCore/inspector/InspectorDebuggerAgent.h \
WebCore/inspector/InspectorDOMAgent.cpp \
WebCore/inspector/InspectorDOMAgent.h \
WebCore/inspector/InspectorDOMStorageResource.cpp \
@@ -1597,8 +1615,6 @@ webcore_sources += \
WebCore/inspector/InspectorClient.h \
WebCore/inspector/InspectorController.cpp \
WebCore/inspector/InspectorController.h \
- WebCore/inspector/InspectorFrontend.cpp \
- WebCore/inspector/InspectorFrontend.h \
WebCore/inspector/InspectorFrontendClient.h \
WebCore/inspector/InspectorFrontendClientLocal.cpp \
WebCore/inspector/InspectorFrontendClientLocal.h \
@@ -1606,6 +1622,8 @@ webcore_sources += \
WebCore/inspector/InspectorFrontendHost.h \
WebCore/inspector/InspectorResource.cpp \
WebCore/inspector/InspectorResource.h \
+ WebCore/inspector/InspectorStorageAgent.cpp \
+ WebCore/inspector/InspectorStorageAgent.h \
WebCore/inspector/InspectorTimelineAgent.cpp \
WebCore/inspector/InspectorTimelineAgent.h \
WebCore/inspector/InspectorValues.cpp \
@@ -2725,8 +2743,6 @@ webcore_built_sources += \
webcore_sources += \
WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp \
- WebCore/bindings/js/JSDatabaseCustom.cpp \
- WebCore/bindings/js/JSDatabaseSyncCustom.cpp \
WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp \
WebCore/bindings/js/JSSQLTransactionCustom.cpp \
WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp \
@@ -2835,8 +2851,8 @@ webcore_built_sources += \
DerivedSources/WebCore/JSIDBDatabaseError.h \
DerivedSources/WebCore/JSIDBDatabaseException.cpp \
DerivedSources/WebCore/JSIDBDatabaseException.h \
- DerivedSources/WebCore/JSIDBDatabaseRequest.cpp \
- DerivedSources/WebCore/JSIDBDatabaseRequest.h \
+ DerivedSources/WebCore/JSIDBDatabase.cpp \
+ DerivedSources/WebCore/JSIDBDatabase.h \
DerivedSources/WebCore/JSIDBErrorEvent.cpp \
DerivedSources/WebCore/JSIDBErrorEvent.h \
DerivedSources/WebCore/JSIDBEvent.cpp \
@@ -2847,28 +2863,41 @@ webcore_built_sources += \
DerivedSources/WebCore/JSIDBIndex.h \
DerivedSources/WebCore/JSIDBKeyRange.cpp \
DerivedSources/WebCore/JSIDBKeyRange.h \
- DerivedSources/WebCore/JSIDBObjectStoreRequest.cpp \
- DerivedSources/WebCore/JSIDBObjectStoreRequest.h \
+ DerivedSources/WebCore/JSIDBObjectStore.cpp \
+ DerivedSources/WebCore/JSIDBObjectStore.h \
DerivedSources/WebCore/JSIDBRequest.cpp \
DerivedSources/WebCore/JSIDBRequest.h \
DerivedSources/WebCore/JSIDBSuccessEvent.cpp \
- DerivedSources/WebCore/JSIDBSuccessEvent.h
+ DerivedSources/WebCore/JSIDBSuccessEvent.h \
+ DerivedSources/WebCore/JSIDBTransaction.cpp \
+ DerivedSources/WebCore/JSIDBTransaction.h
webcore_sources += \
WebCore/storage/IDBAny.cpp \
WebCore/storage/IDBAny.h \
WebCore/storage/IDBCallbacks.h \
+ WebCore/storage/IDBDatabase.cpp \
+ WebCore/storage/IDBCursor.h \
+ WebCore/storage/IDBCursor.cpp \
+ WebCore/storage/IDBCursorBackendImpl.cpp \
+ WebCore/storage/IDBCursorBackendImpl.h \
+ WebCore/storage/IDBCursorBackendInterface.h \
WebCore/storage/IDBDatabase.h \
- WebCore/storage/IDBDatabaseImpl.cpp \
- WebCore/storage/IDBDatabaseImpl.h \
+ WebCore/storage/IDBDatabaseBackendImpl.cpp \
+ WebCore/storage/IDBDatabaseBackendImpl.h \
+ WebCore/storage/IDBDatabaseBackendInterface.h \
WebCore/storage/IDBDatabaseError.h \
WebCore/storage/IDBDatabaseException.h \
- WebCore/storage/IDBDatabaseRequest.cpp \
- WebCore/storage/IDBDatabaseRequest.h \
WebCore/storage/IDBErrorEvent.cpp \
WebCore/storage/IDBErrorEvent.h \
WebCore/storage/IDBEvent.cpp \
WebCore/storage/IDBEvent.h \
+ WebCore/storage/IDBFactory.cpp \
+ WebCore/storage/IDBFactory.h \
+ WebCore/storage/IDBFactoryBackendInterface.cpp \
+ WebCore/storage/IDBFactoryBackendInterface.h \
+ WebCore/storage/IDBFactoryBackendImpl.cpp \
+ WebCore/storage/IDBFactoryBackendImpl.h
WebCore/storage/IDBIndex.cpp \
WebCore/storage/IDBIndex.h \
WebCore/storage/IDBIndexBackendInterface.h \
@@ -2876,21 +2905,18 @@ webcore_sources += \
WebCore/storage/IDBIndexBackendImpl.h \
WebCore/storage/IDBKeyRange.cpp \
WebCore/storage/IDBKeyRange.h \
+ WebCore/storage/IDBObjectStore.cpp \
WebCore/storage/IDBObjectStore.h \
- WebCore/storage/IDBObjectStoreImpl.cpp \
- WebCore/storage/IDBObjectStoreImpl.h \
- WebCore/storage/IDBObjectStoreRequest.cpp \
- WebCore/storage/IDBObjectStoreRequest.h \
+ WebCore/storage/IDBObjectStoreBackendImpl.cpp \
+ WebCore/storage/IDBObjectStoreBackendImpl.h \
+ WebCore/storage/IDBObjectStoreBackendInterface.h \
WebCore/storage/IDBRequest.cpp \
WebCore/storage/IDBRequest.h \
WebCore/storage/IDBSuccessEvent.cpp \
WebCore/storage/IDBSuccessEvent.h \
- WebCore/storage/IDBFactory.cpp \
- WebCore/storage/IDBFactory.h \
- WebCore/storage/IDBFactoryBackendInterface.cpp \
- WebCore/storage/IDBFactoryBackendInterface.h \
- WebCore/storage/IDBFactoryBackendImpl.cpp \
- WebCore/storage/IDBFactoryBackendImpl.h
+ WebCore/storage/IDBTransaction.cpp \
+ WebCore/storage/IDBTransaction.h \
+ WebCore/storage/IDBTransactionBackendInterface.h
endif # END ENABLE_INDEXED_DATABASE
# ----
@@ -3411,6 +3437,8 @@ webcore_sources += \
WebCore/mathml/MathMLTextElement.h \
WebCore/mathml/RenderMathMLBlock.cpp \
WebCore/mathml/RenderMathMLBlock.h \
+ WebCore/mathml/RenderMathMLFenced.cpp \
+ WebCore/mathml/RenderMathMLFenced.h \
WebCore/mathml/RenderMathMLFraction.cpp \
WebCore/mathml/RenderMathMLFraction.h \
WebCore/mathml/RenderMathMLMath.cpp \
@@ -4046,11 +4074,19 @@ webcore_sources += \
WebCore/svg/SVGParserUtilities.h \
WebCore/svg/SVGPathBuilder.cpp \
WebCore/svg/SVGPathBuilder.h \
+ WebCore/svg/SVGPathByteStream.h \
+ WebCore/svg/SVGPathByteStreamBuilder.cpp \
+ WebCore/svg/SVGPathByteStreamBuilder.h \
+ WebCore/svg/SVGPathByteStreamSource.cpp \
+ WebCore/svg/SVGPathByteStreamSource.h \
WebCore/svg/SVGPathConsumer.h \
WebCore/svg/SVGPathElement.cpp \
WebCore/svg/SVGPathElement.h \
WebCore/svg/SVGPathParser.cpp \
WebCore/svg/SVGPathParser.h \
+ WebCore/svg/SVGPathParserFactory.cpp \
+ WebCore/svg/SVGPathParserFactory.h \
+ WebCore/svg/SVGPathSeg.cpp \
WebCore/svg/SVGPathSeg.h \
WebCore/svg/SVGPathSegArc.cpp \
WebCore/svg/SVGPathSegArc.h \
@@ -4074,8 +4110,15 @@ webcore_sources += \
WebCore/svg/SVGPathSegList.h \
WebCore/svg/SVGPathSegListBuilder.cpp \
WebCore/svg/SVGPathSegListBuilder.h \
+ WebCore/svg/SVGPathSegListSource.cpp \
+ WebCore/svg/SVGPathSegListSource.h \
WebCore/svg/SVGPathSegMoveto.cpp \
WebCore/svg/SVGPathSegMoveto.h \
+ WebCore/svg/SVGPathSource.h \
+ WebCore/svg/SVGPathStringBuilder.cpp \
+ WebCore/svg/SVGPathStringBuilder.h \
+ WebCore/svg/SVGPathStringSource.cpp \
+ WebCore/svg/SVGPathStringSource.h \
WebCore/svg/SVGPatternElement.cpp \
WebCore/svg/SVGPatternElement.h \
WebCore/svg/SVGPointList.cpp \
@@ -4308,20 +4351,12 @@ webcore_cppflags += -DENABLE_WEB_SOCKETS=0
endif # END ENABLE_WEB_SOCKETS
# ---
-# Blob.slice support
-# ---
-if ENABLE_BLOB_SLICE
-FEATURE_DEFINES += ENABLE_BLOB_SLICE=1
-webcore_cppflags += -DENABLE_BLOB_SLICE=1
-endif # END ENABLE_BLOB_SLICE
-
-# ---
-# FileReader support
+# Blob support
# ---
-if ENABLE_FILE_READER
-FEATURE_DEFINES += ENABLE_FILE_READER=1
-webcore_cppflags += -DENABLE_FILE_READER=1
-endif # END ENABLE_FILE_READER
+if ENABLE_BLOB
+FEATURE_DEFINES += ENABLE_BLOB=1
+webcore_cppflags += -DENABLE_BLOB=1
+endif # END ENABLE_BLOB
# ---
# FileWriter support
@@ -4511,14 +4546,14 @@ EXTRA_DIST += \
WebCore/xml/XPathGrammar.y
# Installing web inspector files
-webinspectordir = ${datadir}/webkit-@WEBKITGTK_API_VERSION@/webinspector
+webinspectordir = ${datadir}/webkitgtk-@WEBKITGTK_API_VERSION@/webinspector
dist_webinspector_DATA = \
$(WebCore)/English.lproj/localizedStrings.js \
$(shell ls $(WebCore)/inspector/front-end/*.js) \
$(shell ls $(WebCore)/inspector/front-end/*.html) \
$(shell ls $(WebCore)/inspector/front-end/*.css)
-webinspectorimagesdir = ${datadir}/webkit-@WEBKITGTK_API_VERSION@/webinspector/Images
+webinspectorimagesdir = ${datadir}/webkitgtk-@WEBKITGTK_API_VERSION@/webinspector/Images
dist_webinspectorimages_DATA = \
$(shell ls $(WebCore)/inspector/front-end/Images/*.gif) \
$(shell ls $(WebCore)/inspector/front-end/Images/*.png)
diff --git a/WebCore/WebCore.exp.in b/WebCore/WebCore.exp.in
index c07a5b8..2da4dee 100644
--- a/WebCore/WebCore.exp.in
+++ b/WebCore/WebCore.exp.in
@@ -134,23 +134,24 @@ __Z4coreP22DOMCSSStyleDeclaration
__Z4coreP7DOMNode
__Z4coreP8DOMRange
__ZN3JSC8Bindings8Instance16newRuntimeObjectEPNS_9ExecStateE
-__ZN7WebCore10MouseEventC1ERKNS_12AtomicStringEbbN3WTF10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb
+__ZN3WTF10StringImplcvP8NSStringEv
+__ZN3WTF6StringC1EP8NSString
+__ZN3WTF6StringC1EPK10__CFString
+__ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb
__ZN7WebCore10ScrollView20setCanHaveScrollbarsEb
-__ZN7WebCore10StringImpl14createCFStringEv
-__ZN7WebCore10StringImplcvP8NSStringEv
-__ZN7WebCore10deleteFileERKNS_6StringE
+__ZN7WebCore10deleteFileERKN3WTF6StringE
__ZN7WebCore10handCursorEv
-__ZN7WebCore10setCookiesEPNS_8DocumentERKNS_4KURLERKNS_6StringE
+__ZN7WebCore10setCookiesEPNS_8DocumentERKNS_4KURLERKN3WTF6StringE
__ZN7WebCore11BitmapImageC1EP7CGImagePNS_13ImageObserverE
__ZN7WebCore11CachedFrame23cachedFramePlatformDataEv
__ZN7WebCore11CachedFrame26setCachedFramePlatformDataEN3WTF10PassOwnPtrINS_23CachedFramePlatformDataEEE
__ZN7WebCore11EditCommand7reapplyEv
__ZN7WebCore11EditCommand7unapplyEv
-__ZN7WebCore11FileChooser10chooseFileERKNS_6StringE
+__ZN7WebCore11FileChooser10chooseFileERKN3WTF6StringE
__ZN7WebCore11FileChooser10iconLoadedEN3WTF10PassRefPtrINS_4IconEEE
-__ZN7WebCore11FileChooser11chooseFilesERKN3WTF6VectorINS_6StringELm0EEE
+__ZN7WebCore11FileChooser11chooseFilesERKN3WTF6VectorINS1_6StringELm0EEE
__ZN7WebCore11FileChooserD1Ev
-__ZN7WebCore11FrameLoader11completeURLERKNS_6StringE
+__ZN7WebCore11FrameLoader11completeURLERKN3WTF6StringE
__ZN7WebCore11FrameLoader11loadArchiveEN3WTF10PassRefPtrINS_7ArchiveEEE
__ZN7WebCore11FrameLoader11shouldCloseEv
__ZN7WebCore11FrameLoader12shouldReloadERKNS_4KURLES3_
@@ -159,44 +160,43 @@ __ZN7WebCore11FrameLoader14stopAllLoadersENS_14DatabasePolicyE
__ZN7WebCore11FrameLoader16detachFromParentEv
__ZN7WebCore11FrameLoader16loadFrameRequestERKNS_16FrameLoadRequestEbbN3WTF10PassRefPtrINS_5EventEEENS5_INS_9FormStateEEENS_14ReferrerPolicyE
__ZN7WebCore11FrameLoader17stopForUserCancelEb
-__ZN7WebCore11FrameLoader21loadURLIntoChildFrameERKNS_4KURLERKNS_6StringEPNS_5FrameE
-__ZN7WebCore11FrameLoader22findFrameForNavigationERKNS_12AtomicStringE
+__ZN7WebCore11FrameLoader21loadURLIntoChildFrameERKNS_4KURLERKN3WTF6StringEPNS_5FrameE
+__ZN7WebCore11FrameLoader22findFrameForNavigationERKN3WTF12AtomicStringE
__ZN7WebCore11FrameLoader23isProcessingUserGestureEv
-__ZN7WebCore11FrameLoader23timeOfLastCompletedLoadEv
-__ZN7WebCore11FrameLoader26reloadWithOverrideEncodingERKNS_6StringE
+__ZN7WebCore11FrameLoader23timeOfLastCompletedLoadEv
+__ZN7WebCore11FrameLoader26reloadWithOverrideEncodingERKN3WTF6StringE
__ZN7WebCore11FrameLoader4initEv
+__ZN7WebCore11FrameLoader4loadERKNS_15ResourceRequestERKN3WTF6StringEb
__ZN7WebCore11FrameLoader4loadERKNS_15ResourceRequestERKNS_14SubstituteDataEb
-__ZN7WebCore11FrameLoader4loadERKNS_15ResourceRequestERKNS_6StringEb
__ZN7WebCore11FrameLoader4loadERKNS_15ResourceRequestEb
__ZN7WebCore11FrameLoader6reloadEb
__ZN7WebCore11FrameLoader7addDataEPKci
__ZN7WebCore11Geolocation12setIsAllowedEb
__ZN7WebCore11GeolocationD1Ev
__ZN7WebCore11HistoryItem10targetItemEv
-__ZN7WebCore11HistoryItem11setReferrerERKNS_6StringE
+__ZN7WebCore11HistoryItem11setReferrerERKN3WTF6StringE
__ZN7WebCore11HistoryItem12addChildItemEN3WTF10PassRefPtrIS0_EE
-__ZN7WebCore11HistoryItem12setURLStringERKNS_6StringE
+__ZN7WebCore11HistoryItem12setURLStringERKN3WTF6StringE
__ZN7WebCore11HistoryItem12setViewStateEP11objc_object
__ZN7WebCore11HistoryItem13setVisitCountEi
-__ZN7WebCore11HistoryItem14addRedirectURLERKNS_6StringE
+__ZN7WebCore11HistoryItem14addRedirectURLERKN3WTF6StringE
__ZN7WebCore11HistoryItem14setScrollPointERKNS_8IntPointE
__ZN7WebCore11HistoryItem15setIsTargetItemEb
-__ZN7WebCore11HistoryItem15setRedirectURLsEN3WTF10PassOwnPtrINS1_6VectorINS_6StringELm0EEEEE
+__ZN7WebCore11HistoryItem15setRedirectURLsEN3WTF10PassOwnPtrINS1_6VectorINS1_6StringELm0EEEEE
__ZN7WebCore11HistoryItem16adoptVisitCountsERN3WTF6VectorIiLm0EEES4_
-__ZN7WebCore11HistoryItem17setAlternateTitleERKNS_6StringE
+__ZN7WebCore11HistoryItem17setAlternateTitleERKN3WTF6StringE
__ZN7WebCore11HistoryItem18recordInitialVisitEv
__ZN7WebCore11HistoryItem18setLastVisitedTimeEd
-__ZN7WebCore11HistoryItem20setOriginalURLStringERKNS_6StringE
-__ZN7WebCore11HistoryItem20setTransientPropertyERKNS_6StringEP11objc_object
+__ZN7WebCore11HistoryItem20setOriginalURLStringERKN3WTF6StringE
+__ZN7WebCore11HistoryItem20setTransientPropertyERKN3WTF6StringEP11objc_object
__ZN7WebCore11HistoryItem22mergeAutoCompleteHintsEPS0_
__ZN7WebCore11HistoryItem6setURLERKNS_4KURLE
-__ZN7WebCore11HistoryItem7visitedERKNS_6StringEdNS_18VisitCountBehaviorE
+__ZN7WebCore11HistoryItem7visitedERKN3WTF6StringEdNS_18VisitCountBehaviorE
__ZN7WebCore11HistoryItem8formDataEv
-__ZN7WebCore11HistoryItem8setTitleERKNS_6StringE
-__ZN7WebCore11HistoryItem9setParentERKNS_6StringE
-__ZN7WebCore11HistoryItemC1ERKNS_4KURLERKNS_6StringES6_S6_
-__ZN7WebCore11HistoryItemC1ERKNS_6StringES3_S3_d
-__ZN7WebCore11HistoryItemC1ERKNS_6StringES3_d
+__ZN7WebCore11HistoryItem8setTitleERKN3WTF6StringE
+__ZN7WebCore11HistoryItemC1ERKN3WTF6StringES4_S4_d
+__ZN7WebCore11HistoryItemC1ERKN3WTF6StringES4_d
+__ZN7WebCore11HistoryItemC1ERKNS_4KURLERKN3WTF6StringES7_S7_
__ZN7WebCore11HistoryItemC1Ev
__ZN7WebCore11HistoryItemD1Ev
__ZN7WebCore11IconFetcher6cancelEv
@@ -216,7 +216,6 @@ __ZN7WebCore12EventHandler14scrollOverflowENS_15ScrollDirectionENS_17ScrollGranu
__ZN7WebCore12EventHandler15sendScrollEventEv
__ZN7WebCore12EventHandler16handleWheelEventERNS_18PlatformWheelEventE
__ZN7WebCore12EventHandler17scrollRecursivelyENS_15ScrollDirectionENS_17ScrollGranularityEPNS_4NodeE
-__ZN7WebCore12EventHandler20handleTextInputEventERKNS_6StringEPNS_5EventEbb
__ZN7WebCore12EventHandler20hitTestResultAtPointERKNS_8IntPointEbbNS_17HitTestScrollbarsEjRKNS_7IntSizeE
__ZN7WebCore12EventHandler21handleMousePressEventERKNS_18PlatformMouseEventE
__ZN7WebCore12EventHandler23handleMouseReleaseEventERKNS_18PlatformMouseEventE
@@ -229,25 +228,23 @@ __ZN7WebCore12GCController17garbageCollectNowEv
__ZN7WebCore12GCController43garbageCollectOnAlternateThreadForDebuggingEb
__ZN7WebCore12IconDatabase10setEnabledEb
__ZN7WebCore12IconDatabase11defaultIconERKNS_7IntSizeE
-__ZN7WebCore12IconDatabase14iconForPageURLERKNS_6StringERKNS_7IntSizeE
+__ZN7WebCore12IconDatabase14iconForPageURLERKN3WTF6StringERKNS_7IntSizeE
__ZN7WebCore12IconDatabase14removeAllIconsEv
__ZN7WebCore12IconDatabase15iconRecordCountEv
-__ZN7WebCore12IconDatabase17iconURLForPageURLERKNS_6StringE
+__ZN7WebCore12IconDatabase17iconURLForPageURLERKN3WTF6StringE
__ZN7WebCore12IconDatabase19pageURLMappingCountEv
__ZN7WebCore12IconDatabase20allowDatabaseCleanupEv
-__ZN7WebCore12IconDatabase20delayDatabaseCleanupEv
-__ZN7WebCore12IconDatabase20retainIconForPageURLERKNS_6StringE
+__ZN7WebCore12IconDatabase20delayDatabaseCleanupEv
+__ZN7WebCore12IconDatabase20retainIconForPageURLERKN3WTF6StringE
__ZN7WebCore12IconDatabase20retainedPageURLCountEv
-__ZN7WebCore12IconDatabase20setIconURLForPageURLERKNS_6StringES3_
-__ZN7WebCore12IconDatabase21releaseIconForPageURLERKNS_6StringE
-__ZN7WebCore12IconDatabase21setIconDataForIconURLEN3WTF10PassRefPtrINS_12SharedBufferEEERKNS_6StringE
+__ZN7WebCore12IconDatabase21releaseIconForPageURLERKN3WTF6StringE
__ZN7WebCore12IconDatabase23defaultDatabaseFilenameEv
__ZN7WebCore12IconDatabase23iconRecordCountWithDataEv
-__ZN7WebCore12IconDatabase23importIconURLForPageURLERKNS_6StringES3_
-__ZN7WebCore12IconDatabase24importIconDataForIconURLEN3WTF10PassRefPtrINS_12SharedBufferEEERKNS_6StringE
+__ZN7WebCore12IconDatabase23importIconURLForPageURLERKN3WTF6StringES4_
+__ZN7WebCore12IconDatabase24importIconDataForIconURLEN3WTF10PassRefPtrINS_12SharedBufferEEERKNS1_6StringE
__ZN7WebCore12IconDatabase25setPrivateBrowsingEnabledEb
__ZN7WebCore12IconDatabase27checkIntegrityBeforeOpeningEv
-__ZN7WebCore12IconDatabase4openERKNS_6StringE
+__ZN7WebCore12IconDatabase4openERKN3WTF6StringE
__ZN7WebCore12IconDatabase5closeEv
__ZN7WebCore12IconDatabase9setClientEPNS_18IconDatabaseClientE
__ZN7WebCore12PopupMenuMacC1EPNS_15PopupMenuClientE
@@ -265,9 +262,9 @@ __ZN7WebCore12RenderWidget19showSubstituteImageEN3WTF10PassRefPtrINS_5ImageEEE
__ZN7WebCore12SchedulePairC1EP9NSRunLoopPK10__CFString
__ZN7WebCore12SharedBuffer10wrapNSDataEP6NSData
__ZN7WebCore12SharedBuffer12createNSDataEv
-__ZN7WebCore12SharedBuffer24createWithContentsOfFileERKNS_6StringE
+__ZN7WebCore12SharedBuffer24createWithContentsOfFileERKN3WTF6StringE
__ZN7WebCore12SharedBufferD1Ev
-__ZN7WebCore12TextEncodingC1ERKNS_6StringE
+__ZN7WebCore12TextEncodingC1ERKN3WTF6StringE
__ZN7WebCore12TextIterator11rangeLengthEPKNS_5RangeEb
__ZN7WebCore12TextIterator26rangeFromLocationAndLengthEPNS_7ElementEiib
__ZN7WebCore12TextIterator7advanceEv
@@ -287,8 +284,9 @@ __ZN7WebCore13HitTestResultD1Ev
__ZN7WebCore13IdentifierRep3getEPKc
__ZN7WebCore13IdentifierRep3getEi
__ZN7WebCore13JSHTMLElement6s_infoE
-__ZN7WebCore13KeyboardEventC1ERKNS_12AtomicStringEbbPNS_9DOMWindowERKNS_6StringEjbbbbb
+__ZN7WebCore13KeyboardEventC1ERKN3WTF12AtomicStringEbbPNS_9DOMWindowERKNS1_6StringEjbbbbb
__ZN7WebCore13TypingCommand39insertParagraphSeparatorInQuotedContentEPNS_8DocumentE
+__ZN7WebCore13createWrapperEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_4NodeE
__ZN7WebCore13toDeviceSpaceERKNS_9FloatRectEP8NSWindow
__ZN7WebCore13toJSDOMWindowEN3JSC7JSValueE
__ZN7WebCore14CachedResource12removeClientEPNS_20CachedResourceClientE
@@ -303,40 +301,39 @@ __ZN7WebCore14DocumentLoader22cancelMainResourceLoadERKNS_13ResourceErrorE
__ZN7WebCore14DocumentLoader24removePlugInStreamLoaderEPNS_14ResourceLoaderE
__ZN7WebCore14DocumentLoader7requestEv
__ZN7WebCore14DocumentLoader8setFrameEPNS_5FrameE
-__ZN7WebCore14DocumentLoader8setTitleERKNS_6StringE
+__ZN7WebCore14DocumentLoader8setTitleERKN3WTF6StringE
__ZN7WebCore14DocumentLoaderC1ERKNS_15ResourceRequestERKNS_14SubstituteDataE
__ZN7WebCore14DocumentLoaderC2ERKNS_15ResourceRequestERKNS_14SubstituteDataE
__ZN7WebCore14DocumentLoaderD2Ev
-__ZN7WebCore14DocumentWriter11setEncodingERKNS_6StringEb
+__ZN7WebCore14DocumentWriter11setEncodingERKN3WTF6StringEb
__ZN7WebCore14ResourceHandle12releaseProxyEv
__ZN7WebCore14ResourceHandle20forceContentSniffingEv
__ZN7WebCore14ResourceLoader14cancelledErrorEv
__ZN7WebCore14ResourceLoader19setShouldBufferDataEb
__ZN7WebCore14SVGSMILElement13isSMILElementEPNS_4NodeE
-__ZN7WebCore14SchemeRegistry24registerURLSchemeAsLocalERKNS_6StringE
-__ZN7WebCore14SchemeRegistry25registerURLSchemeAsSecureERKNS_6StringE
-__ZN7WebCore14SchemeRegistry32registerURLSchemeAsEmptyDocumentERKNS_6StringE
-__ZN7WebCore14SecurityOrigin16createFromStringERKNS_6StringE
+__ZN7WebCore14SchemeRegistry24registerURLSchemeAsLocalERKN3WTF6StringE
+__ZN7WebCore14SchemeRegistry25registerURLSchemeAsSecureERKN3WTF6StringE
+__ZN7WebCore14SchemeRegistry32registerURLSchemeAsEmptyDocumentERKN3WTF6StringE
+__ZN7WebCore14SecurityOrigin16createFromStringERKN3WTF6StringE
__ZN7WebCore14SecurityOrigin18setLocalLoadPolicyENS0_15LocalLoadPolicyE
-__ZN7WebCore14SecurityOrigin18shouldHideReferrerERKNS_4KURLERKNS_6StringE
+__ZN7WebCore14SecurityOrigin18shouldHideReferrerERKNS_4KURLERKN3WTF6StringE
__ZN7WebCore14SecurityOrigin27resetOriginAccessWhitelistsEv
-__ZN7WebCore14SecurityOrigin29addOriginAccessWhitelistEntryERKS0_RKNS_6StringES5_b
-__ZN7WebCore14SecurityOrigin32removeOriginAccessWhitelistEntryERKS0_RKNS_6StringES5_b
-__ZN7WebCore14SecurityOrigin40setDomainRelaxationForbiddenForURLSchemeEbRKNS_6StringE
+__ZN7WebCore14SecurityOrigin29addOriginAccessWhitelistEntryERKS0_RKN3WTF6StringES6_b
+__ZN7WebCore14SecurityOrigin32removeOriginAccessWhitelistEntryERKS0_RKN3WTF6StringES6_b
+__ZN7WebCore14SecurityOrigin40setDomainRelaxationForbiddenForURLSchemeEbRKN3WTF6StringE
__ZN7WebCore14SecurityOrigin6createERKNS_4KURLEi
-__ZN7WebCore14SecurityOrigin7canLoadERKNS_4KURLERKNS_6StringEPNS_8DocumentE
-__ZN7WebCore15ArchiveResource6createEN3WTF10PassRefPtrINS_12SharedBufferEEERKNS_4KURLERKNS_6StringESA_SA_RKNS_16ResourceResponseE
+__ZN7WebCore14SecurityOrigin7canLoadERKNS_4KURLERKN3WTF6StringEPNS_8DocumentE
+__ZN7WebCore15ArchiveResource6createEN3WTF10PassRefPtrINS_12SharedBufferEEERKNS_4KURLERKNS1_6StringESA_SA_RKNS_16ResourceResponseE
__ZN7WebCore15DOMWrapperWorld15unregisterWorldEv
__ZN7WebCore15DOMWrapperWorldD1Ev
__ZN7WebCore15DatabaseTracker12deleteOriginEPNS_14SecurityOriginE
-__ZN7WebCore15DatabaseTracker14deleteDatabaseEPNS_14SecurityOriginERKNS_6StringE
+__ZN7WebCore15DatabaseTracker14deleteDatabaseEPNS_14SecurityOriginERKN3WTF6StringE
__ZN7WebCore15DatabaseTracker14quotaForOriginEPNS_14SecurityOriginE
__ZN7WebCore15DatabaseTracker14usageForOriginEPNS_14SecurityOriginE
-__ZN7WebCore15DatabaseTracker17initializeTrackerERKNS_6StringE
+__ZN7WebCore15DatabaseTracker17initializeTrackerERKN3WTF6StringE
__ZN7WebCore15DatabaseTracker18deleteAllDatabasesEv
-__ZN7WebCore15DatabaseTracker22databaseNamesForOriginEPNS_14SecurityOriginERN3WTF6VectorINS_6StringELm0EEE
-__ZN7WebCore15DatabaseTracker23detailsForNameAndOriginERKNS_6StringEPNS_14SecurityOriginE
-__ZN7WebCore15DatabaseTracker24setDatabaseDirectoryPathERKNS_6StringE
+__ZN7WebCore15DatabaseTracker22databaseNamesForOriginEPNS_14SecurityOriginERN3WTF6VectorINS3_6StringELm0EEE
+__ZN7WebCore15DatabaseTracker23detailsForNameAndOriginERKN3WTF6StringEPNS_14SecurityOriginE
__ZN7WebCore15DatabaseTracker7originsERN3WTF6VectorINS1_6RefPtrINS_14SecurityOriginEEELm0EEE
__ZN7WebCore15DatabaseTracker7trackerEv
__ZN7WebCore15DatabaseTracker8setQuotaEPNS_14SecurityOriginEy
@@ -356,9 +353,9 @@ __ZN7WebCore15GraphicsContextD1Ev
__ZN7WebCore15JSDOMWindowBase18commonJSGlobalDataEv
__ZN7WebCore15ScrollAlignment17alignCenterAlwaysE
__ZN7WebCore15ScrollAlignment19alignToEdgeIfNeededE
-__ZN7WebCore15StringTruncator13rightTruncateERKNS_6StringEfRKNS_4FontEb
-__ZN7WebCore15StringTruncator14centerTruncateERKNS_6StringEfRKNS_4FontEb
-__ZN7WebCore15StringTruncator5widthERKNS_6StringERKNS_4FontEb
+__ZN7WebCore15StringTruncator13rightTruncateERKN3WTF6StringEfRKNS_4FontEb
+__ZN7WebCore15StringTruncator14centerTruncateERKN3WTF6StringEfRKNS_4FontEb
+__ZN7WebCore15StringTruncator5widthERKN3WTF6StringERKNS_4FontEb
__ZN7WebCore15VisiblePositionC1EPNS_4NodeEiNS_9EAffinityE
__ZN7WebCore15VisiblePositionC1ERKNS_8PositionENS_9EAffinityE
__ZN7WebCore15reportExceptionEPN3JSC9ExecStateENS0_7JSValueE
@@ -375,21 +372,21 @@ __ZN7WebCore16LegacyWebArchive6createEPNS_4NodeE
__ZN7WebCore16LegacyWebArchive6createEPNS_5FrameE
__ZN7WebCore16LegacyWebArchive6createEPNS_5RangeE
__ZN7WebCore16LegacyWebArchive6createEv
-__ZN7WebCore16MIMETypeRegistry23getMIMETypeForExtensionERKNS_6StringE
-__ZN7WebCore16MIMETypeRegistry24isSupportedImageMIMETypeERKNS_6StringE
+__ZN7WebCore16MIMETypeRegistry23getMIMETypeForExtensionERKN3WTF6StringE
+__ZN7WebCore16MIMETypeRegistry24isSupportedImageMIMETypeERKN3WTF6StringE
__ZN7WebCore16MIMETypeRegistry26getSupportedImageMIMETypesEv
-__ZN7WebCore16MIMETypeRegistry27isSupportedNonImageMIMETypeERKNS_6StringE
+__ZN7WebCore16MIMETypeRegistry27isSupportedNonImageMIMETypeERKN3WTF6StringE
__ZN7WebCore16MIMETypeRegistry29getSupportedNonImageMIMETypesEv
-__ZN7WebCore16MIMETypeRegistry32isSupportedImageResourceMIMETypeERKNS_6StringE
+__ZN7WebCore16MIMETypeRegistry32isSupportedImageResourceMIMETypeERKN3WTF6StringE
__ZN7WebCore16NavigationActionC1ERKNS_4KURLENS_13FrameLoadTypeEb
__ZN7WebCore16NavigationActionC1ERKNS_4KURLENS_14NavigationTypeE
__ZN7WebCore16NavigationActionC1Ev
__ZN7WebCore16ScriptController10initScriptEPNS_15DOMWrapperWorldE
__ZN7WebCore16ScriptController11createWorldEv
-__ZN7WebCore16ScriptController13executeScriptERKNS_6StringEbNS_14ShouldAllowXSSE
+__ZN7WebCore16ScriptController13executeScriptERKN3WTF6StringEbNS_14ShouldAllowXSSE
__ZN7WebCore16ScriptController17canExecuteScriptsENS_33ReasonForCallingCanExecuteScriptsE
__ZN7WebCore16ScriptController18windowScriptObjectEv
-__ZN7WebCore16ScriptController20executeScriptInWorldEPNS_15DOMWrapperWorldERKNS_6StringEbNS_14ShouldAllowXSSE
+__ZN7WebCore16ScriptController20executeScriptInWorldEPNS_15DOMWrapperWorldERKN3WTF6StringEbNS_14ShouldAllowXSSE
__ZN7WebCore16ScriptController24jsObjectForPluginElementEPNS_17HTMLPlugInElementE
__ZN7WebCore16ThreadGlobalData10staticDataE
__ZN7WebCore16ThreadGlobalDataC1Ev
@@ -401,28 +398,28 @@ __ZN7WebCore16createFullMarkupEPKNS_4NodeE
__ZN7WebCore16createFullMarkupEPKNS_5RangeE
__ZN7WebCore16enclosingIntRectERK7_NSRect
__ZN7WebCore16isEndOfParagraphERKNS_15VisiblePositionE
-__ZN7WebCore16jsStringSlowCaseEPN3JSC9ExecStateERNS0_9WeakGCMapIPNS_10StringImplEPNS0_8JSStringEEES5_
+__ZN7WebCore16jsStringSlowCaseEPN3JSC9ExecStateERNS0_9WeakGCMapIPN3WTF10StringImplEPNS0_8JSStringEEES6_
__ZN7WebCore17CredentialStorage3getERKNS_15ProtectionSpaceE
-__ZN7WebCore17DOMImplementation14isTextMIMETypeERKNS_6StringE
+__ZN7WebCore17DOMImplementation14isTextMIMETypeERKN3WTF6StringE
+__ZN7WebCore16DeviceMotionData6createEbdbdbdbdbdbdbd
__ZN7WebCore17DeviceOrientation6createEbdbdbd
__ZN7WebCore17GlyphPageTreeNode18treeGlyphPageCountEv
__ZN7WebCore17HTMLPlugInElement11getNPObjectEv
__ZN7WebCore17HistoryController26saveDocumentAndScrollStateEv
__ZN7WebCore17nameForCursorTypeENS_6Cursor4TypeE
__ZN7WebCore17openTemporaryFileEPKcRi
-__ZN7WebCore18deprecatedParseURLERKNS_6StringE
+__ZN7WebCore18SearchPopupMenuMacC1EPNS_15PopupMenuClientE
+__ZN7WebCore18deprecatedParseURLERKN3WTF6StringE
__ZN7WebCore18isStartOfParagraphERKNS_15VisiblePositionE
__ZN7WebCore18pluginScriptObjectEPN3JSC9ExecStateEPNS_13JSHTMLElementE
-__ZN7WebCore18SearchPopupMenuMacC1EPNS_15PopupMenuClientE
__ZN7WebCore19AnimationController16resumeAnimationsEPNS_8DocumentE
__ZN7WebCore19AnimationController17suspendAnimationsEPNS_8DocumentE
-__ZN7WebCore19AnimationController20pauseAnimationAtTimeEPNS_12RenderObjectERKNS_6StringEd
-__ZN7WebCore19AnimationController21pauseTransitionAtTimeEPNS_12RenderObjectERKNS_6StringEd
+__ZN7WebCore19AnimationController20pauseAnimationAtTimeEPNS_12RenderObjectERKN3WTF6StringEd
+__ZN7WebCore19AnimationController21pauseTransitionAtTimeEPNS_12RenderObjectERKN3WTF6StringEd
__ZN7WebCore19BackForwardListImplC1EPNS_4PageE
-__ZN7WebCore19CSSStyleDeclaration11setPropertyERKNS_6StringES3_Ri
-__ZN7WebCore19InspectorController34inspectorStartsAttachedSettingNameEv
+__ZN7WebCore19CSSStyleDeclaration11setPropertyERKN3WTF6StringES4_Ri
__ZN7WebCore19ResourceRequestBase11setHTTPBodyEN3WTF10PassRefPtrINS_8FormDataEEE
-__ZN7WebCore19ResourceRequestBase13setHTTPMethodERKNS_6StringE
+__ZN7WebCore19ResourceRequestBase13setHTTPMethodERKN3WTF6StringE
__ZN7WebCore19ResourceRequestBase19addHTTPHeaderFieldsERKNS_13HTTPHeaderMapE
__ZN7WebCore19ResourceRequestBase6setURLERKNS_4KURLE
__ZN7WebCore19SelectionController10setFocusedEb
@@ -434,21 +431,21 @@ __ZN7WebCore19SelectionController9selectAllEv
__ZN7WebCore19SelectionControllerC1EPNS_5FrameEb
__ZN7WebCore19TextResourceDecoder5flushEv
__ZN7WebCore19TextResourceDecoder6decodeEPKcm
-__ZN7WebCore19TextResourceDecoderC1ERKNS_6StringERKNS_12TextEncodingEb
+__ZN7WebCore19TextResourceDecoderC1ERKN3WTF6StringERKNS_12TextEncodingEb
__ZN7WebCore19TextResourceDecoderD1Ev
__ZN7WebCore19applicationIsSafariEv
__ZN7WebCore20RenderEmbeddedObject30setShowsCrashedPluginIndicatorEv
__ZN7WebCore20ResourceResponseBase24setExpectedContentLengthEx
__ZN7WebCore20ResourceResponseBaseC2Ev
__ZN7WebCore20SpaceSplitStringData12createVectorEv
-__ZN7WebCore20protocolIsJavaScriptERKNS_6StringE
+__ZN7WebCore20protocolIsJavaScriptERKN3WTF6StringE
__ZN7WebCore21PlatformKeyboardEvent24disambiguateKeyDownEventENS0_4TypeEb
__ZN7WebCore21PlatformKeyboardEventC1EP7NSEvent
-__ZN7WebCore21SVGDocumentExtensions21sampleAnimationAtTimeERKNS_6StringEPNS_14SVGSMILElementEd
+__ZN7WebCore21SVGDocumentExtensions21sampleAnimationAtTimeERKN3WTF6StringEPNS_14SVGSMILElementEd
__ZN7WebCore21SerializedScriptValue11deserializeEPK15OpaqueJSContextPPK13OpaqueJSValue
__ZN7WebCore21SerializedScriptValue6createEPK15OpaqueJSContextPK13OpaqueJSValuePS6_
__ZN7WebCore21SerializedScriptValueD1Ev
-__ZN7WebCore21UserContentURLPattern5parseERKNS_6StringE
+__ZN7WebCore21UserContentURLPattern5parseERKN3WTF6StringE
__ZN7WebCore21WindowsLatin1EncodingEv
__ZN7WebCore21findEventWithKeyStateEPNS_5EventE
__ZN7WebCore21isBackForwardLoadTypeENS_13FrameLoadTypeE
@@ -460,15 +457,15 @@ __ZN7WebCore22ScriptExecutionContext26canSuspendActiveDOMObjectsEv
__ZN7WebCore22applicationIsAppleMailEv
__ZN7WebCore22contextMenuItemTagBoldEv
__ZN7WebCore22counterValueForElementEPNS_7ElementE
-__ZN7WebCore22createFragmentFromTextEPNS_5RangeERKNS_6StringE
+__ZN7WebCore22createFragmentFromTextEPNS_5RangeERKN3WTF6StringE
__ZN7WebCore22externalRepresentationEPNS_5FrameEj
__ZN7WebCore23ReplaceSelectionCommandC1EPNS_8DocumentEN3WTF10PassRefPtrINS_16DocumentFragmentEEEbbbbbNS_10EditActionE
__ZN7WebCore23createFragmentFromNodesEPNS_8DocumentERKN3WTF6VectorIPNS_4NodeELm0EEE
__ZN7WebCore24BinaryPropertyListWriter17writePropertyListEv
__ZN7WebCore24contextMenuItemTagItalicEv
__ZN7WebCore24contextMenuItemTagStylesEv
-__ZN7WebCore24createFragmentFromMarkupEPNS_8DocumentERKNS_6StringES4_NS_27FragmentScriptingPermissionE
-__ZN7WebCore24decodeURLEscapeSequencesERKNS_6StringE
+__ZN7WebCore24createFragmentFromMarkupEPNS_8DocumentERKN3WTF6StringES5_NS_27FragmentScriptingPermissionE
+__ZN7WebCore24decodeURLEscapeSequencesERKN3WTF6StringE
__ZN7WebCore24notifyHistoryItemChangedE
__ZN7WebCore24rangeCompliantEquivalentERKNS_8PositionE
__ZN7WebCore25HistoryPropertyListWriter11releaseDataEv
@@ -488,12 +485,13 @@ __ZN7WebCore26UserTypingGestureIndicator28focusedElementAtGestureStartEv
__ZN7WebCore26contextMenuItemTagFontMenuEv
__ZN7WebCore26contextMenuItemTagOpenLinkEv
__ZN7WebCore26usesTestModeFocusRingColorEv
-__ZN7WebCore27CSSComputedStyleDeclarationC1EN3WTF10PassRefPtrINS_4NodeEEEbRKNS_6StringE
+__ZN7WebCore27CSSComputedStyleDeclarationC1EN3WTF10PassRefPtrINS_4NodeEEEbRKNS1_6StringE
__ZN7WebCore27DeviceOrientationClientMock14setOrientationEN3WTF10PassRefPtrINS_17DeviceOrientationEEE
__ZN7WebCore27DeviceOrientationClientMockC1Ev
__ZN7WebCore27applicationIsAdobeInstallerEv
__ZN7WebCore27contextMenuItemTagShowFontsEv
__ZN7WebCore27contextMenuItemTagUnderlineEv
+__ZN7WebCore28InspectorFrontendClientLocal20sendMessageToBackendERKN3WTF6StringE
__ZN7WebCore28contextMenuItemTagCapitalizeEv
__ZN7WebCore28contextMenuItemTagShowColorsEv
__ZN7WebCore28contextMenuItemTagSmartLinksEv
@@ -537,18 +535,18 @@ __ZN7WebCore4Font21setShouldUseSmoothingEb
__ZN7WebCore4FontC1ERKNS_16FontPlatformDataEbNS_17FontSmoothingModeE
__ZN7WebCore4FontC1Ev
__ZN7WebCore4FontaSERKS0_
-__ZN7WebCore4Icon18createIconForFilesERKN3WTF6VectorINS_6StringELm0EEE
+__ZN7WebCore4Icon18createIconForFilesERKN3WTF6VectorINS1_6StringELm0EEE
__ZN7WebCore4IconD1Ev
__ZN7WebCore4KURL10invalidateEv
-__ZN7WebCore4KURLC1ENS_18ParsedURLStringTagERKNS_6StringE
+__ZN7WebCore4KURLC1ENS_18ParsedURLStringTagERKN3WTF6StringE
__ZN7WebCore4KURLC1EP5NSURL
__ZN7WebCore4KURLC1EPK7__CFURL
-__ZN7WebCore4KURLC1ERKS0_RKNS_6StringE
+__ZN7WebCore4KURLC1ERKS0_RKN3WTF6StringE
__ZN7WebCore4Node10renderRectEPb
__ZN7WebCore4Node17stopIgnoringLeaksEv
__ZN7WebCore4Node18startIgnoringLeaksEv
__ZN7WebCore4Node19setNeedsStyleRecalcENS_15StyleChangeTypeE
-__ZN7WebCore4Page12setGroupNameERKNS_6StringE
+__ZN7WebCore4Page12setGroupNameERKN3WTF6StringE
__ZN7WebCore4Page13didStopPluginEPNS_14HaltablePluginE
__ZN7WebCore4Page14didStartPluginEPNS_14HaltablePluginE
__ZN7WebCore4Page14setMediaVolumeEf
@@ -558,6 +556,8 @@ __ZN7WebCore4Page16setCanStartMediaEb
__ZN7WebCore4Page16setDefersLoadingEb
__ZN7WebCore4Page17willMoveOffscreenEv
__ZN7WebCore4Page18removeSchedulePairEN3WTF10PassRefPtrINS_12SchedulePairEEE
+__ZN7WebCore4Page19visitedStateChangedEPNS_9PageGroupEy
+__ZN7WebCore4Page22allVisitedStateChangedEPNS_9PageGroupE
__ZN7WebCore4Page23clearUndoRedoOperationsEv
__ZN7WebCore4Page27setJavaScriptURLsAreAllowedEb
__ZN7WebCore4Page31setCustomHTMLTokenizerChunkSizeEi
@@ -576,12 +576,12 @@ __ZN7WebCore5Cache11setDisabledEb
__ZN7WebCore5Cache13getStatisticsEv
__ZN7WebCore5Cache13setCapacitiesEjjj
__ZN7WebCore5Frame10createViewERKNS_7IntSizeERKNS_5ColorEbS3_bNS_13ScrollbarModeEbS7_b
-__ZN7WebCore5Frame10findStringERKNS_6StringEbbbb
+__ZN7WebCore5Frame10findStringERKN3WTF6StringEbbbb
__ZN7WebCore5Frame13reapplyStylesEv
__ZN7WebCore5Frame14frameForWidgetEPKNS_6WidgetE
__ZN7WebCore5Frame15revealSelectionERKNS_15ScrollAlignmentEb
__ZN7WebCore5Frame20setSelectionFromNoneEv
-__ZN7WebCore5Frame21markAllMatchesForTextERKNS_6StringEbj
+__ZN7WebCore5Frame21markAllMatchesForTextERKN3WTF6StringEbj
__ZN7WebCore5Frame23visiblePositionForPointERKNS_8IntPointE
__ZN7WebCore5Frame24computeAndSetTypingStyleEPNS_19CSSStyleDeclarationENS_10EditActionE
__ZN7WebCore5Frame25matchLabelsAgainstElementEP7NSArrayPNS_7ElementE
@@ -590,27 +590,28 @@ __ZN7WebCore5Frame34setMarkedTextMatchesAreHighlightedEb
__ZN7WebCore5Frame6createEPNS_4PageEPNS_21HTMLFrameOwnerElementEPNS_17FrameLoaderClientE
__ZN7WebCore5Frame7setViewEN3WTF10PassRefPtrINS_9FrameViewEEE
__ZN7WebCore5FrameD1Ev
-__ZN7WebCore5Image12supportsTypeERKNS_6StringE
+__ZN7WebCore5Image12supportsTypeERKN3WTF6StringE
__ZN7WebCore5Image20loadPlatformResourceEPKc
__ZN7WebCore5Range6createEN3WTF10PassRefPtrINS_8DocumentEEENS2_INS_4NodeEEEiS6_i
__ZN7WebCore5Range6setEndEN3WTF10PassRefPtrINS_4NodeEEEiRi
__ZN7WebCore5Range8setStartEN3WTF10PassRefPtrINS_4NodeEEEiRi
__ZN7WebCore5RangeD1Ev
__ZN7WebCore5cacheEv
-__ZN7WebCore6Chrome16setStatusbarTextEPNS_5FrameERKNS_6StringE
+__ZN7WebCore6Chrome16setStatusbarTextEPNS_5FrameERKN3WTF6StringE
__ZN7WebCore6Cursor8fromTypeENS0_4TypeE
__ZN7WebCore6CursorD1Ev
__ZN7WebCore6CursoraSERKS0_
__ZN7WebCore6Editor10applyStyleEPNS_19CSSStyleDeclarationENS_10EditActionE
-__ZN7WebCore6Editor10insertTextERKNS_6StringEPNS_5EventE
+__ZN7WebCore6Editor10insertTextERKN3WTF6StringEPNS_5EventE
__ZN7WebCore6Editor13canDHTMLPasteEv
__ZN7WebCore6Editor13performDeleteEv
__ZN7WebCore6Editor13rangeForPointERKNS_8IntPointE
__ZN7WebCore6Editor13tryDHTMLPasteEv
-__ZN7WebCore6Editor14setCompositionERKNS_6StringERKN3WTF6VectorINS_20CompositionUnderlineELm0EEEjj
+__ZN7WebCore6Editor14setCompositionERKN3WTF6StringERKNS1_6VectorINS_20CompositionUnderlineELm0EEEjj
+__ZN7WebCore6Editor15pasteAsFragmentEN3WTF10PassRefPtrINS_16DocumentFragmentEEEbb
__ZN7WebCore6Editor16pasteAsPlainTextEv
__ZN7WebCore6Editor17insertOrderedListEv
-__ZN7WebCore6Editor18confirmCompositionERKNS_6StringE
+__ZN7WebCore6Editor18confirmCompositionERKN3WTF6StringE
__ZN7WebCore6Editor18confirmCompositionEv
__ZN7WebCore6Editor19deleteWithDirectionENS_19SelectionController10EDirectionENS_15TextGranularityEbb
__ZN7WebCore6Editor19insertUnorderedListEv
@@ -635,13 +636,9 @@ __ZN7WebCore6Editor4copyEv
__ZN7WebCore6Editor5pasteEv
__ZN7WebCore6Editor6indentEv
__ZN7WebCore6Editor7CommandC1Ev
-__ZN7WebCore6Editor7commandERKNS_6StringE
-__ZN7WebCore6Editor7commandERKNS_6StringENS_19EditorCommandSourceE
-__ZN7WebCore6Editor7copyURLERKNS_4KURLERKNS_6StringE
+__ZN7WebCore6Editor7commandERKN3WTF6StringE
__ZN7WebCore6Editor7outdentEv
__ZN7WebCore6Loader20servePendingRequestsENS0_8PriorityE
-__ZN7WebCore6StringC1EP8NSString
-__ZN7WebCore6StringC1EPK10__CFString
__ZN7WebCore6Widget12setFrameRectERKNS_7IntRectE
__ZN7WebCore6Widget16removeFromParentEv
__ZN7WebCore6Widget17frameRectsChangedEv
@@ -669,6 +666,7 @@ __ZN7WebCore8Document13svgExtensionsEv
__ZN7WebCore8Document14setFocusedNodeEN3WTF10PassRefPtrINS_4NodeEEE
__ZN7WebCore8Document16isPageBoxVisibleEi
__ZN7WebCore8Document17getFocusableNodesERN3WTF6VectorINS1_6RefPtrINS_4NodeEEELm0EEE
+__ZN7WebCore8Document18createWrapperCacheEPNS_15DOMWrapperWorldE
__ZN7WebCore8Document19accessSVGExtensionsEv
__ZN7WebCore8Document22createDocumentFragmentEv
__ZN7WebCore8Document23renderedRectsForMarkersENS_14DocumentMarker10MarkerTypeE
@@ -689,19 +687,19 @@ __ZN7WebCore8Settings16setUsesPageCacheEb
__ZN7WebCore8Settings17setPluginsEnabledEb
__ZN7WebCore8Settings18setDOMPasteAllowedEb
__ZN7WebCore8Settings18setDefaultFontSizeEi
-__ZN7WebCore8Settings18setFixedFontFamilyERKNS_12AtomicStringE
+__ZN7WebCore8Settings18setFixedFontFamilyERKN3WTF12AtomicStringE
__ZN7WebCore8Settings18setMinimumFontSizeEi
-__ZN7WebCore8Settings18setSerifFontFamilyERKNS_12AtomicStringE
+__ZN7WebCore8Settings18setSerifFontFamilyERKN3WTF12AtomicStringE
__ZN7WebCore8Settings19setShowDebugBordersEb
-__ZN7WebCore8Settings20setCursiveFontFamilyERKNS_12AtomicStringE
-__ZN7WebCore8Settings20setFantasyFontFamilyERKNS_12AtomicStringE
+__ZN7WebCore8Settings20setCursiveFontFamilyERKN3WTF12AtomicStringE
+__ZN7WebCore8Settings20setFantasyFontFamilyERKN3WTF12AtomicStringE
__ZN7WebCore8Settings20setJavaScriptEnabledEb
__ZN7WebCore8Settings20setXSSAuditorEnabledEb
__ZN7WebCore8Settings21setShowRepaintCounterEb
-__ZN7WebCore8Settings21setStandardFontFamilyERKNS_12AtomicStringE
+__ZN7WebCore8Settings21setStandardFontFamilyERKN3WTF12AtomicStringE
__ZN7WebCore8Settings21setWebSecurityEnabledEb
__ZN7WebCore8Settings22setLocalStorageEnabledEb
-__ZN7WebCore8Settings22setSansSerifFontFamilyERKNS_12AtomicStringE
+__ZN7WebCore8Settings22setSansSerifFontFamilyERKN3WTF12AtomicStringE
__ZN7WebCore8Settings22setSessionStorageQuotaEj
__ZN7WebCore8Settings22setShowsURLsInToolTipsEb
__ZN7WebCore8Settings23setDefaultFixedFontSizeEi
@@ -720,11 +718,11 @@ __ZN7WebCore8Settings25setNeedsLeopardMailQuirksEb
__ZN7WebCore8Settings25setPrivateBrowsingEnabledEb
__ZN7WebCore8Settings25setShouldPrintBackgroundsEb
__ZN7WebCore8Settings25setUserStyleSheetLocationERKNS_4KURLE
-__ZN7WebCore8Settings26setDefaultTextEncodingNameERKNS_6StringE
+__ZN7WebCore8Settings26setDefaultTextEncodingNameERKN3WTF6StringE
__ZN7WebCore8Settings26setNeedsSiteSpecificQuirksEb
-__ZN7WebCore8Settings27setFTPDirectoryTemplatePathERKNS_6StringE
+__ZN7WebCore8Settings27setFTPDirectoryTemplatePathERKN3WTF6StringE
__ZN7WebCore8Settings27setLoadsImagesAutomaticallyEb
-__ZN7WebCore8Settings27setLocalStorageDatabasePathERKNS_6StringE
+__ZN7WebCore8Settings27setLocalStorageDatabasePathERKN3WTF6StringE
__ZN7WebCore8Settings28setForceFTPDirectoryListingsEb
__ZN7WebCore8Settings29setAuthorAndUserStylesEnabledEb
__ZN7WebCore8Settings29setWebArchiveDebugModeEnabledEb
@@ -754,10 +752,10 @@ __ZN7WebCore9FontCache13fontDataCountEv
__ZN7WebCore9FontCache21inactiveFontDataCountEv
__ZN7WebCore9FontCache21purgeInactiveFontDataEi
__ZN7WebCore9FrameTree11appendChildEN3WTF10PassRefPtrINS_5FrameEEE
-__ZN7WebCore9FrameTree7setNameERKNS_12AtomicStringE
+__ZN7WebCore9FrameTree7setNameERKN3WTF12AtomicStringE
__ZN7WebCore9FrameTree9clearNameEv
__ZN7WebCore9FrameView11forceLayoutEb
-__ZN7WebCore9FrameView12setMediaTypeERKNS_6StringE
+__ZN7WebCore9FrameView12setMediaTypeERKN3WTF6StringE
__ZN7WebCore9FrameView13setZoomFactorEfNS_8ZoomModeE
__ZN7WebCore9FrameView14adjustViewSizeEv
__ZN7WebCore9FrameView14setMarginWidthEi
@@ -819,16 +817,16 @@ __ZN7WebCore9PageGroup13isLinkVisitedEy
__ZN7WebCore9PageGroup14addVisitedLinkEPKtm
__ZN7WebCore9PageGroup17closeLocalStorageEv
__ZN7WebCore9PageGroup18addVisitedLinkHashEy
-__ZN7WebCore9PageGroup20addUserScriptToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_NS_23UserScriptInjectionTimeENS_25UserContentInjectedFramesE
+__ZN7WebCore9PageGroup20addUserScriptToWorldEPNS_15DOMWrapperWorldERKN3WTF6StringERKNS_4KURLENS3_10PassOwnPtrINS3_6VectorIS4_Lm0EEEEESD_NS_23UserScriptInjectionTimeENS_25UserContentInjectedFramesE
__ZN7WebCore9PageGroup20removeAllUserContentEv
__ZN7WebCore9PageGroup21removeAllVisitedLinksEv
-__ZN7WebCore9PageGroup24addUserStyleSheetToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_NS_25UserContentInjectedFramesE
+__ZN7WebCore9PageGroup24addUserStyleSheetToWorldEPNS_15DOMWrapperWorldERKN3WTF6StringERKNS_4KURLENS3_10PassOwnPtrINS3_6VectorIS4_Lm0EEEEESD_NS_25UserContentInjectedFramesE
__ZN7WebCore9PageGroup25removeUserScriptFromWorldEPNS_15DOMWrapperWorldERKNS_4KURLE
__ZN7WebCore9PageGroup26removeUserScriptsFromWorldEPNS_15DOMWrapperWorldE
__ZN7WebCore9PageGroup26setShouldTrackVisitedLinksEb
__ZN7WebCore9PageGroup29removeUserStyleSheetFromWorldEPNS_15DOMWrapperWorldERKNS_4KURLE
__ZN7WebCore9PageGroup30removeUserStyleSheetsFromWorldEPNS_15DOMWrapperWorldE
-__ZN7WebCore9PageGroup9pageGroupERKNS_6StringE
+__ZN7WebCore9PageGroup9pageGroupERKN3WTF6StringE
__ZN7WebCore9Scrollbar22maxOverlapBetweenPagesEv
__ZN7WebCore9TimerBase4stopEv
__ZN7WebCore9TimerBase5startEdd
@@ -841,8 +839,9 @@ __ZN7WebCore9pageCacheEv
__ZN7WebCore9toElementEN3JSC7JSValueE
__ZN7WebCoreeqERKNS_19ResourceRequestBaseES2_
__ZNK3JSC8Bindings10RootObject12globalObjectEv
+__ZNK3WTF6String14createCFStringEv
__ZNK7WebCore10FloatPointcv8_NSPointEv
-__ZNK7WebCore10PluginData16supportsMimeTypeERKNS_6StringE
+__ZNK7WebCore10PluginData16supportsMimeTypeERKN3WTF6StringE
__ZNK7WebCore10RenderText16linesBoundingBoxEv
__ZNK7WebCore10RenderText9firstRunXEv
__ZNK7WebCore10RenderText9firstRunYEv
@@ -866,7 +865,7 @@ __ZNK7WebCore11HistoryItem12redirectURLsEv
__ZNK7WebCore11HistoryItem14alternateTitleEv
__ZNK7WebCore11HistoryItem15lastVisitedTimeEv
__ZNK7WebCore11HistoryItem17originalURLStringEv
-__ZNK7WebCore11HistoryItem20getTransientPropertyERKNS_6StringE
+__ZNK7WebCore11HistoryItem20getTransientPropertyERKN3WTF6StringE
__ZNK7WebCore11HistoryItem3urlEv
__ZNK7WebCore11HistoryItem4copyEv
__ZNK7WebCore11HistoryItem4iconEv
@@ -878,7 +877,7 @@ __ZNK7WebCore11HistoryItem9urlStringEv
__ZNK7WebCore11HistoryItem9viewStateEv
__ZNK7WebCore11RenderLayer19absoluteBoundingBoxEv
__ZNK7WebCore11RenderStyle21visitedDependentColorEi
-__ZNK7WebCore11ScriptValue9getStringEPN3JSC9ExecStateERNS_6StringE
+__ZNK7WebCore11ScriptValue9getStringEPN3JSC9ExecStateERN3WTF6StringE
__ZNK7WebCore12EventHandler20currentKeyboardEventEv
__ZNK7WebCore12IconDatabase12databasePathEv
__ZNK7WebCore12IconDatabase24shouldStopThreadActivityEv
@@ -1019,13 +1018,12 @@ __ZNK7WebCore6Editor7Command11isSupportedEv
__ZNK7WebCore6Editor7Command15isTextInsertionEv
__ZNK7WebCore6Editor7Command5stateEPNS_5EventE
__ZNK7WebCore6Editor7Command7executeEPNS_5EventE
-__ZNK7WebCore6Editor7Command7executeERKNS_6StringEPNS_5EventE
+__ZNK7WebCore6Editor7Command7executeERKN3WTF6StringEPNS_5EventE
__ZNK7WebCore6Editor7Command9isEnabledEPNS_5EventE
__ZNK7WebCore6Editor7canCopyEv
__ZNK7WebCore6Editor7canEditEv
__ZNK7WebCore6Editor8canPasteEv
__ZNK7WebCore6Editor9canDeleteEv
-__ZNK7WebCore6String14createCFStringEv
__ZNK7WebCore6Widget23convertToContainingViewERKNS_7IntRectE
__ZNK7WebCore6Widget23convertToContainingViewERKNS_8IntPointE
__ZNK7WebCore6Widget25convertFromContainingViewERKNS_7IntRectE
@@ -1037,11 +1035,11 @@ __ZNK7WebCore7Element9innerTextEv
__ZNK7WebCore7IntRectcv6CGRectEv
__ZNK7WebCore7IntRectcv7_NSRectEv
__ZNK7WebCore7IntSizecv7_NSSizeEv
-__ZNK7WebCore8Document11completeURLERKNS_6StringE
+__ZNK7WebCore8Document11completeURLERKN3WTF6StringE
__ZNK7WebCore8Document13axObjectCacheEv
-__ZNK7WebCore8Document14getElementByIdERKNS_12AtomicStringE
+__ZNK7WebCore8Document14getElementByIdERKN3WTF12AtomicStringE
__ZNK7WebCore8Document20cacheDocumentElementEv
-__ZNK7WebCore8Document31displayStringModifiedByEncodingERKNS_6StringE
+__ZNK7WebCore8Document31displayStringModifiedByEncodingERKN3WTF6StringE
__ZNK7WebCore8Document4bodyEv
__ZNK7WebCore8Document6domainEv
__ZNK7WebCore8IntPointcv8_NSPointEv
@@ -1055,8 +1053,7 @@ __ZNK7WebCore9FrameTree12traverseNextEPKNS_5FrameE
__ZNK7WebCore9FrameTree14isDescendantOfEPKNS_5FrameE
__ZNK7WebCore9FrameTree20traverseNextWithWrapEb
__ZNK7WebCore9FrameTree24traversePreviousWithWrapEb
-__ZNK7WebCore9FrameTree4findERKNS_12AtomicStringE
-__ZNK7WebCore9FrameTree5childERKNS_12AtomicStringE
+__ZNK7WebCore9FrameTree4findERKN3WTF12AtomicStringE
__ZNK7WebCore9FrameTree6parentEb
__ZNK7WebCore9FrameView11needsLayoutEv
__ZNK7WebCore9FrameView13paintBehaviorEv
@@ -1179,7 +1176,10 @@ __ZN7WebCore22GeolocationServiceMock8setErrorEN3WTF10PassRefPtrINS_13PositionErr
#endif
#if ENABLE(INSPECTOR)
-__ZN7WebCore19InspectorController10setSettingERKNS_6StringES3_
+__ZN7WebCore19InspectorController10setSettingERKN3WTF6StringES4_
+__ZN7WebCore19InspectorController12ConsolePanelE
+__ZN7WebCore19InspectorController12ScriptsPanelE
+__ZN7WebCore19InspectorController13ProfilesPanelE
__ZN7WebCore19InspectorController14enableDebuggerEv
__ZN7WebCore19InspectorController14enableProfilerEbb
__ZN7WebCore19InspectorController15disableDebuggerEb
@@ -1187,14 +1187,16 @@ __ZN7WebCore19InspectorController15disableProfilerEb
__ZN7WebCore19InspectorController18disconnectFrontendEv
__ZN7WebCore19InspectorController20stopTimelineProfilerEv
__ZN7WebCore19InspectorController21startTimelineProfilerEv
-__ZN7WebCore19InspectorController25evaluateForTestInFrontendElRKNS_6StringE
+__ZN7WebCore19InspectorController25evaluateForTestInFrontendElRKN3WTF6StringE
__ZN7WebCore19InspectorController26setInspectorFrontendClientEN3WTF10PassOwnPtrINS_23InspectorFrontendClientEEE
__ZN7WebCore19InspectorController26stopUserInitiatedProfilingEv
__ZN7WebCore19InspectorController27startUserInitiatedProfilingEPNS_5TimerIS0_EE
+__ZN7WebCore19InspectorController34inspectorStartsAttachedSettingNameEv
+__ZN7WebCore19InspectorController34inspectorStartsAttachedSettingNameEv
__ZN7WebCore19InspectorController4showEv
__ZN7WebCore19InspectorController5closeEv
__ZN7WebCore19InspectorController7inspectEPNS_4NodeE
-__ZN7WebCore19InspectorController9showPanelENS0_13SpecialPanelsE
+__ZN7WebCore19InspectorController9showPanelERKN3WTF6StringE
__ZN7WebCore28InspectorFrontendClientLocal12moveWindowByEff
__ZN7WebCore28InspectorFrontendClientLocal14frontendLoadedEv
__ZN7WebCore28InspectorFrontendClientLocal15canAttachWindowEv
@@ -1202,14 +1204,13 @@ __ZN7WebCore28InspectorFrontendClientLocal17setAttachedWindowEb
__ZN7WebCore28InspectorFrontendClientLocal19requestAttachWindowEv
__ZN7WebCore28InspectorFrontendClientLocal19requestDetachWindowEv
__ZN7WebCore28InspectorFrontendClientLocal19windowObjectClearedEv
-__ZN7WebCore28InspectorFrontendClientLocal20sendMessageToBackendERKNS_6StringE
__ZN7WebCore28InspectorFrontendClientLocal26changeAttachedWindowHeightEj
__ZN7WebCore28InspectorFrontendClientLocal27restoreAttachedWindowHeightEv
__ZN7WebCore28InspectorFrontendClientLocalC2EPNS_19InspectorControllerEPNS_4PageE
__ZN7WebCore28InspectorFrontendClientLocalD2Ev
__ZNK7WebCore19InspectorController17drawNodeHighlightERNS_15GraphicsContextE
__ZNK7WebCore19InspectorController7enabledEv
-__ZNK7WebCore19InspectorController7settingERKNS_6StringE
+__ZNK7WebCore19InspectorController7settingERKN3WTF6StringE
#endif
#if ENABLE(JAVA_BRIDGE)
@@ -1474,8 +1475,8 @@ __ZN7WebCore9HTMLNames8videoTagE
__ZN7WebCore23ApplicationCacheStorage14quotaForOriginEPKNS_14SecurityOriginERx
__ZN7WebCore23ApplicationCacheStorage14setMaximumSizeEx
__ZN7WebCore23ApplicationCacheStorage14usageForOriginEPKNS_14SecurityOriginERx
-__ZN7WebCore23ApplicationCacheStorage16storeCopyOfCacheERKNS_6StringEPNS_20ApplicationCacheHostE
-__ZN7WebCore23ApplicationCacheStorage17setCacheDirectoryERKNS_6StringE
+__ZN7WebCore23ApplicationCacheStorage16storeCopyOfCacheERKN3WTF6StringEPNS_20ApplicationCacheHostE
+__ZN7WebCore23ApplicationCacheStorage17setCacheDirectoryERKN3WTF6StringE
__ZN7WebCore23ApplicationCacheStorage18vacuumDatabaseFileEv
__ZN7WebCore23ApplicationCacheStorage21setDefaultOriginQuotaEx
__ZN7WebCore23ApplicationCacheStorage26storeUpdatedQuotaForOriginEPKNS_14SecurityOriginEx
diff --git a/WebCore/WebCore.gyp/WebCore.gyp b/WebCore/WebCore.gyp/WebCore.gyp
index 5ecb48a..a28ee5d 100644
--- a/WebCore/WebCore.gyp/WebCore.gyp
+++ b/WebCore/WebCore.gyp/WebCore.gyp
@@ -786,6 +786,7 @@
'<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
'<(chromium_src_dir)/third_party/ots/ots.gyp:ots',
'<(chromium_src_dir)/third_party/sqlite/sqlite.gyp:sqlite',
+ '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_common',
],
'defines': [
'WEBCORE_NAVIGATOR_VENDOR="Google Inc."',
@@ -793,7 +794,8 @@
'include_dirs': [
'<(INTERMEDIATE_DIR)',
'<@(webcore_include_dirs)',
- '<(chromium_src_dir)/gpu'
+ '<(chromium_src_dir)/gpu',
+ '<(chromium_src_dir)/third_party/angle/include/GLSLANG',
],
'sources': [
'<@(webcore_files)',
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 20482bb..33645b5 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -43,6 +43,7 @@
'dom/DOMImplementation.idl',
'dom/DOMStringList.idl',
'dom/DOMStringMap.idl',
+ 'dom/DeviceMotionEvent.idl',
'dom/DeviceOrientationEvent.idl',
'dom/Document.idl',
'dom/DocumentFragment.idl',
@@ -237,18 +238,20 @@
'storage/FileSystemCallback.idl',
'storage/Flags.idl',
'storage/IDBAny.idl',
+ 'storage/IDBCursor.idl',
'storage/IDBDatabaseError.idl',
'storage/IDBDatabaseException.idl',
- 'storage/IDBDatabaseRequest.idl',
+ 'storage/IDBDatabase.idl',
'storage/IDBErrorEvent.idl',
'storage/IDBEvent.idl',
'storage/IDBFactory.idl',
'storage/IDBIndex.idl',
'storage/IDBKey.idl',
'storage/IDBKeyRange.idl',
- 'storage/IDBObjectStoreRequest.idl',
+ 'storage/IDBObjectStore.idl',
'storage/IDBRequest.idl',
'storage/IDBSuccessEvent.idl',
+ 'storage/IDBTransaction.idl',
'storage/Metadata.idl',
'storage/MetadataCallback.idl',
'storage/SQLError.idl',
@@ -498,6 +501,8 @@
'accessibility/win/AccessibilityObjectWin.cpp',
'accessibility/win/AccessibilityObjectWrapperWin.h',
'accessibility/wx/AccessibilityObjectWx.cpp',
+ 'bindings/generic/ActiveDOMCallback.cpp',
+ 'bindings/generic/ActiveDOMCallback.h',
'bindings/generic/BindingDOMWindow.h',
'bindings/generic/BindingSecurity.h',
'bindings/generic/BindingSecurityBase.cpp',
@@ -538,14 +543,13 @@
'bindings/js/JSCustomVoidCallback.h',
'bindings/js/JSCustomXPathNSResolver.cpp',
'bindings/js/JSCustomXPathNSResolver.h',
- 'bindings/js/JSDatabaseCustom.cpp',
- 'bindings/js/JSDatabaseSyncCustom.cpp',
'bindings/js/JSDataGridColumnListCustom.cpp',
'bindings/js/JSDataGridDataSource.cpp',
'bindings/js/JSDataGridDataSource.h',
'bindings/js/JSDedicatedWorkerContextCustom.cpp',
'bindings/js/JSDebugWrapperSet.cpp',
'bindings/js/JSDebugWrapperSet.h',
+ 'bindings/js/JSDeviceMotionEventCustom.cpp',
'bindings/js/JSDeviceOrientationEventCustom.cpp',
'bindings/js/JSDocumentCustom.cpp',
'bindings/js/JSDOMApplicationCacheCustom.cpp',
@@ -666,8 +670,6 @@
'bindings/js/JavaScriptCallFrame.h',
'bindings/js/ScheduledAction.cpp',
'bindings/js/ScheduledAction.h',
- 'bindings/js/ScriptArray.cpp',
- 'bindings/js/ScriptArray.h',
'bindings/js/ScriptCachedFrameData.cpp',
'bindings/js/ScriptCachedFrameData.h',
'bindings/js/ScriptCallFrame.cpp',
@@ -738,10 +740,9 @@
'bindings/v8/custom/V8CustomVoidCallback.h',
'bindings/v8/custom/V8CustomXPathNSResolver.cpp',
'bindings/v8/custom/V8CustomXPathNSResolver.h',
- 'bindings/v8/custom/V8DatabaseCustom.cpp',
- 'bindings/v8/custom/V8DatabaseSyncCustom.cpp',
'bindings/v8/custom/V8DataGridColumnListCustom.cpp',
'bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp',
+ 'bindings/v8/custom/V8DeviceMotionEventCustom.cpp',
'bindings/v8/custom/V8DeviceOrientationEventCustom.cpp',
'bindings/v8/custom/V8DocumentLocationCustom.cpp',
'bindings/v8/custom/V8DOMFormDataCustom.cpp',
@@ -832,8 +833,6 @@
'bindings/v8/ScheduledAction.h',
'bindings/v8/ScopedDOMDataStore.cpp',
'bindings/v8/ScopedDOMDataStore.h',
- 'bindings/v8/ScriptArray.cpp',
- 'bindings/v8/ScriptArray.h',
'bindings/v8/ScriptCachedFrameData.h',
'bindings/v8/ScriptCallFrame.cpp',
'bindings/v8/ScriptCallFrame.h',
@@ -1072,6 +1071,8 @@
'dom/default/PlatformMessagePortChannel.h',
'dom/ActiveDOMObject.cpp',
'dom/ActiveDOMObject.h',
+ 'dom/AsyncScriptRunner.cpp',
+ 'dom/AsyncScriptRunner.h',
'dom/Attr.cpp',
'dom/Attr.h',
'dom/Attribute.cpp',
@@ -1125,6 +1126,13 @@
'dom/DatasetDOMStringMap.h',
'dom/DecodedDataDocumentParser.cpp',
'dom/DecodedDataDocumentParser.h',
+ 'dom/DeviceMotionClient.h',
+ 'dom/DeviceMotionController.cpp',
+ 'dom/DeviceMotionController.h',
+ 'dom/DeviceMotionData.cpp',
+ 'dom/DeviceMotionData.h',
+ 'dom/DeviceMotionEvent.cpp',
+ 'dom/DeviceMotionEvent.h',
'dom/DeviceOrientation.cpp',
'dom/DeviceOrientation.h',
'dom/DeviceOrientationClient.h',
@@ -1214,6 +1222,8 @@
'dom/PopStateEvent.h',
'dom/PageTransitionEvent.cpp',
'dom/PageTransitionEvent.h',
+ 'dom/PendingScript.cpp',
+ 'dom/PendingScript.h',
'dom/Position.cpp',
'dom/Position.h',
'dom/PositionIterator.cpp',
@@ -1445,8 +1455,8 @@
'html/canvas/Int32Array.cpp',
'html/canvas/Int32Array.h',
'html/canvas/IntegralTypedArrayBase.h',
- 'html/canvas/CanvasObject.cpp',
- 'html/canvas/CanvasObject.h',
+ 'html/canvas/WebGLObject.cpp',
+ 'html/canvas/WebGLObject.h',
'html/canvas/CanvasPattern.cpp',
'html/canvas/CanvasPattern.h',
'html/canvas/CanvasPixelArray.cpp',
@@ -1740,17 +1750,19 @@
'inspector/InspectorCSSStore.h',
'inspector/InspectorDatabaseResource.cpp',
'inspector/InspectorDatabaseResource.h',
+ 'inspector/InspectorDebuggerAgent.cpp',
+ 'inspector/InspectorDebuggerAgent.h',
'inspector/InspectorDOMAgent.cpp',
'inspector/InspectorDOMAgent.h',
'inspector/InspectorDOMStorageResource.cpp',
'inspector/InspectorDOMStorageResource.h',
- 'inspector/InspectorFrontend.cpp',
- 'inspector/InspectorFrontend.h',
'inspector/InspectorFrontendClient.h',
'inspector/InspectorFrontendHost.cpp',
'inspector/InspectorFrontendHost.h',
'inspector/InspectorResource.cpp',
'inspector/InspectorResource.h',
+ 'inspector/InspectorStorageAgent.cpp',
+ 'inspector/InspectorStorageAgent.h',
'inspector/InspectorTimelineAgent.cpp',
'inspector/InspectorTimelineAgent.h',
'inspector/InspectorValues.cpp',
@@ -2176,6 +2188,8 @@
'platform/graphics/cg/PathCG.cpp',
'platform/graphics/cg/PatternCG.cpp',
'platform/graphics/cg/TransformationMatrixCG.cpp',
+ 'platform/graphics/chromium/CanvasLayerChromium.cpp',
+ 'platform/graphics/chromium/CanvasLayerChromium.h',
'platform/graphics/chromium/FontCacheChromiumWin.cpp',
'platform/graphics/chromium/FontCacheLinux.cpp',
'platform/graphics/chromium/FontChromiumWin.cpp',
@@ -2223,8 +2237,6 @@
'platform/graphics/chromium/UniscribeHelperTextRun.h',
'platform/graphics/chromium/VideoLayerChromium.cpp',
'platform/graphics/chromium/VideoLayerChromium.h',
- 'platform/graphics/chromium/WebGLLayerChromium.cpp',
- 'platform/graphics/chromium/WebGLLayerChromium.h',
'platform/graphics/filters/FEBlend.cpp',
'platform/graphics/filters/FEBlend.h',
'platform/graphics/filters/FEColorMatrix.cpp',
@@ -3495,13 +3507,18 @@
'storage/IDBAny.cpp',
'storage/IDBAny.h',
'storage/IDBCallbacks.h',
+ 'storage/IDBCursor.cpp',
+ 'storage/IDBCursor.h',
+ 'storage/IDBCursorBackendImpl.cpp',
+ 'storage/IDBCursorBackendImpl.h',
+ 'storage/IDBCursorBackendInterface.h',
'storage/IDBDatabase.h',
+ 'storage/IDBDatabase.cpp',
'storage/IDBDatabaseError.h',
'storage/IDBDatabaseException.h',
- 'storage/IDBDatabaseImpl.cpp',
- 'storage/IDBDatabaseImpl.h',
- 'storage/IDBDatabaseRequest.cpp',
- 'storage/IDBDatabaseRequest.h',
+ 'storage/IDBDatabaseBackendImpl.cpp',
+ 'storage/IDBDatabaseBackendImpl.h',
+ 'storage/IDBDatabaseBackendInterface.h',
'storage/IDBEvent.cpp',
'storage/IDBEvent.h',
'storage/IDBErrorEvent.cpp',
@@ -3522,15 +3539,18 @@
'storage/IDBKeyRange.cpp',
'storage/IDBKeyRange.h',
'storage/IDBKeyTree.h',
+ 'storage/IDBObjectStore.cpp',
'storage/IDBObjectStore.h',
- 'storage/IDBObjectStoreImpl.cpp',
- 'storage/IDBObjectStoreImpl.h',
- 'storage/IDBObjectStoreRequest.cpp',
- 'storage/IDBObjectStoreRequest.h',
+ 'storage/IDBObjectStoreBackendImpl.cpp',
+ 'storage/IDBObjectStoreBackendImpl.h',
+ 'storage/IDBObjectStoreBackendInterface.h',
'storage/IDBRequest.cpp',
'storage/IDBRequest.h',
'storage/IDBSuccessEvent.cpp',
'storage/IDBSuccessEvent.h',
+ 'storage/IDBTransaction.cpp',
+ 'storage/IDBTransaction.h',
+ 'storage/IDBTransactionBackendInterface.h',
'storage/LocalStorageTask.cpp',
'storage/LocalStorageTask.h',
'storage/LocalStorageThread.cpp',
@@ -3804,11 +3824,19 @@
'svg/SVGParserUtilities.h',
'svg/SVGPathBuilder.cpp',
'svg/SVGPathBuilder.h',
+ 'svg/SVGPathByteStream.h',
+ 'svg/SVGPathByteStreamBuilder.cpp',
+ 'svg/SVGPathByteStreamBuilder.h',
+ 'svg/SVGPathByteStreamSource.cpp',
+ 'svg/SVGPathByteStreamSource.h',
'svg/SVGPathConsumer.h',
'svg/SVGPathElement.cpp',
'svg/SVGPathElement.h',
'svg/SVGPathParser.cpp',
'svg/SVGPathParser.h',
+ 'svg/SVGPathParserFactory.cpp',
+ 'svg/SVGPathParserFactory.h',
+ 'svg/SVGPathSeg.cpp',
'svg/SVGPathSeg.h',
'svg/SVGPathSegArc.cpp',
'svg/SVGPathSegArc.h',
@@ -3832,8 +3860,15 @@
'svg/SVGPathSegList.h',
'svg/SVGPathSegListBuilder.cpp',
'svg/SVGPathSegListBuilder.h',
+ 'svg/SVGPathSegListSource.cpp',
+ 'svg/SVGPathSegListSource.h',
'svg/SVGPathSegMoveto.cpp',
'svg/SVGPathSegMoveto.h',
+ 'svg/SVGPathSource.h',
+ 'svg/SVGPathStringBuilder.cpp',
+ 'svg/SVGPathStringBuilder.h',
+ 'svg/SVGPathStringSource.cpp',
+ 'svg/SVGPathStringSource.h',
'svg/SVGPatternElement.cpp',
'svg/SVGPatternElement.h',
'svg/SVGPointList.cpp',
diff --git a/WebCore/WebCore.order b/WebCore/WebCore.order
index 0ac5610..c815bbe 100644
--- a/WebCore/WebCore.order
+++ b/WebCore/WebCore.order
@@ -17635,9 +17635,9 @@ __ZN7WebCore16comparePositionsERKNS_15VisiblePositionES2_
__ZN7WebCore20CompositeEditCommand10applyStyleEPNS_19CSSStyleDeclarationERKNS_8PositionES5_NS_10EditActionE
__ZN7WebCore17ApplyStyleCommandC1EPNS_8DocumentEPNS_19CSSStyleDeclarationERKNS_8PositionES7_NS_10EditActionENS0_14EPropertyLeve
__ZN7WebCore17ApplyStyleCommandC2EPNS_8DocumentEPNS_19CSSStyleDeclarationERKNS_8PositionES7_NS_10EditActionENS0_14EPropertyLeve
-__ZN7WebCore20CompositeEditCommand17removeCSSPropertyEN3WTF10PassRefPtrINS_26CSSMutableStyleDeclarationEEE13CSSPropertyID
-__ZN7WebCore24RemoveCSSPropertyCommandC1EPNS_8DocumentEN3WTF10PassRefPtrINS_26CSSMutableStyleDeclarationEEE13CSSPropertyID
-__ZN7WebCore24RemoveCSSPropertyCommandC2EPNS_8DocumentEN3WTF10PassRefPtrINS_26CSSMutableStyleDeclarationEEE13CSSPropertyID
+__ZN7WebCore20CompositeEditCommand17removeCSSPropertyEN3WTF10PassRefPtrINS_13StyledElementEEE13CSSPropertyID
+__ZN7WebCore24RemoveCSSPropertyCommandC1EPNS_8DocumentEN3WTF10PassRefPtrINS_13StyledElementEEE13CSSPropertyID
+__ZN7WebCore24RemoveCSSPropertyCommandC2EPNS_8DocumentEN3WTF10PassRefPtrINS_13StyledElementEEE13CSSPropertyID
__ZN7WebCore24RemoveCSSPropertyCommand7doApplyEv
__ZN7WebCore20CompositeEditCommand19removeNodeAttributeEN3WTF10PassRefPtrINS_7ElementEEERKNS_13QualifiedNameE
__ZNK7WebCore18FormatBlockCommand13editingActionEv
diff --git a/WebCore/WebCore.pri b/WebCore/WebCore.pri
index ff65cae..b0effee 100644
--- a/WebCore/WebCore.pri
+++ b/WebCore/WebCore.pri
@@ -1,5 +1,6 @@
include(../common.pri)
+include(features.pri)
CONFIG(standalone_package) {
isEmpty(WC_GENERATED_SOURCES_DIR):WC_GENERATED_SOURCES_DIR = $$PWD/generated
@@ -7,199 +8,6 @@ CONFIG(standalone_package) {
isEmpty(WC_GENERATED_SOURCES_DIR):WC_GENERATED_SOURCES_DIR = generated
}
-CONFIG(minimal) {
- DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0
-}
-
-## load mobilityconfig if mobility is available
-load(mobilityconfig, true)
-
-## Define default features macros for optional components
-## (look for defs in config.h and included files!)
-# Try to locate sqlite3 source
-CONFIG(QTDIR_build) {
- SQLITE3SRCDIR = $$QT_SOURCE_TREE/src/3rdparty/sqlite/
-} else {
- SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
- isEmpty(SQLITE3SRCDIR) {
- SQLITE3SRCDIR = $$[QT_INSTALL_PREFIX]/src/3rdparty/sqlite/
- }
-}
-
-contains(DEFINES, ENABLE_SINGLE_THREADED=1) {
- DEFINES+=ENABLE_DATABASE=0 ENABLE_DOM_STORAGE=0 ENABLE_ICONDATABASE=0 ENABLE_WORKERS=0 ENABLE_SHARED_WORKERS=0
-}
-
-# turn off SQLITE support if we do not have sqlite3 available
-!CONFIG(QTDIR_build):win32-*:!exists( $${SQLITE3SRCDIR}/sqlite3.c ): DEFINES += ENABLE_SQLITE=0 ENABLE_DATABASE=0 ENABLE_WORKERS=0 ENABLE_SHARED_WORKERS=0 ENABLE_ICONDATABASE=0 ENABLE_OFFLINE_WEB_APPLICATIONS=0 ENABLE_DOM_STORAGE=0
-
-!contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=.): DEFINES += ENABLE_JAVASCRIPT_DEBUGGER=1
-!contains(DEFINES, ENABLE_DATABASE=.): DEFINES += ENABLE_DATABASE=1
-!contains(DEFINES, ENABLE_EVENTSOURCE=.): DEFINES += ENABLE_EVENTSOURCE=1
-!contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=.): DEFINES += ENABLE_OFFLINE_WEB_APPLICATIONS=1
-!contains(DEFINES, ENABLE_DOM_STORAGE=.): DEFINES += ENABLE_DOM_STORAGE=1
-!contains(DEFINES, ENABLE_ICONDATABASE=.): DEFINES += ENABLE_ICONDATABASE=1
-!contains(DEFINES, ENABLE_CHANNEL_MESSAGING=.): DEFINES += ENABLE_CHANNEL_MESSAGING=1
-!contains(DEFINES, ENABLE_ORIENTATION_EVENTS=.): DEFINES += ENABLE_ORIENTATION_EVENTS=0
-!contains(DEFINES, ENABLE_DIRECTORY_UPLOAD=.): DEFINES += ENABLE_DIRECTORY_UPLOAD=0
-!contains(DEFINES, ENABLE_FILE_SYSTEM=.): DEFINES += ENABLE_FILE_SYSTEM=0
-
-# turn on SQLITE support if any of the dependent features are turned on
-!contains(DEFINES, ENABLE_SQLITE=.) {
- contains(DEFINES, ENABLE_DATABASE=1)|contains(DEFINES, ENABLE_ICONDATABASE=1)|contains(DEFINES, ENABLE_DOM_STORAGE=1)|contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1) {
- DEFINES += ENABLE_SQLITE=1
- } else {
- DEFINES += ENABLE_SQLITE=0
- }
-}
-
-!contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=.): DEFINES += ENABLE_DASHBOARD_SUPPORT=0
-!contains(DEFINES, ENABLE_FILTERS=.): DEFINES += ENABLE_FILTERS=1
-!contains(DEFINES, ENABLE_XPATH=.): DEFINES += ENABLE_XPATH=1
-#!contains(DEFINES, ENABLE_XBL=.): DEFINES += ENABLE_XBL=1
-!contains(DEFINES, ENABLE_WCSS=.): DEFINES += ENABLE_WCSS=0
-!contains(DEFINES, ENABLE_WML=.): DEFINES += ENABLE_WML=0
-!contains(DEFINES, ENABLE_SHARED_WORKERS=.): DEFINES += ENABLE_SHARED_WORKERS=1
-!contains(DEFINES, ENABLE_WORKERS=.): DEFINES += ENABLE_WORKERS=1
-!contains(DEFINES, ENABLE_XHTMLMP=.): DEFINES += ENABLE_XHTMLMP=0
-!contains(DEFINES, ENABLE_DATAGRID=.): DEFINES += ENABLE_DATAGRID=0
-!contains(DEFINES, ENABLE_RUBY=.): DEFINES += ENABLE_RUBY=1
-!contains(DEFINES, ENABLE_SANDBOX=.): DEFINES += ENABLE_SANDBOX=1
-!contains(DEFINES, ENABLE_METER_TAG=.): DEFINES += ENABLE_METER_TAG=1
-!contains(DEFINES, ENABLE_PROGRESS_TAG=.): DEFINES += ENABLE_PROGRESS_TAG=1
-!contains(DEFINES, ENABLE_BLOB_SLICE=.): DEFINES += ENABLE_BLOB_SLICE=0
-!contains(DEFINES, ENABLE_NOTIFICATIONS=.): DEFINES += ENABLE_NOTIFICATIONS=1
-!contains(DEFINES, ENABLE_IMAGE_RESIZER=.): DEFINES += ENABLE_IMAGE_RESIZER=0
-!contains(DEFINES, ENABLE_INPUT_SPEECH=.): DEFINES += ENABLE_INPUT_SPEECH=0
-
-greaterThan(QT_MINOR_VERSION, 5) {
- !contains(DEFINES, ENABLE_3D_RENDERING=.): DEFINES += ENABLE_3D_RENDERING=1
-}
-
-# SVG support
-!contains(DEFINES, ENABLE_SVG=0) {
- !contains(DEFINES, ENABLE_SVG=.): DEFINES += ENABLE_SVG=1
- !contains(DEFINES, ENABLE_SVG_FONTS=.): DEFINES += ENABLE_SVG_FONTS=1
- !contains(DEFINES, ENABLE_SVG_FOREIGN_OBJECT=.): DEFINES += ENABLE_SVG_FOREIGN_OBJECT=1
- !contains(DEFINES, ENABLE_SVG_ANIMATION=.): DEFINES += ENABLE_SVG_ANIMATION=1
- !contains(DEFINES, ENABLE_SVG_AS_IMAGE=.): DEFINES += ENABLE_SVG_AS_IMAGE=1
- !contains(DEFINES, ENABLE_SVG_USE=.): DEFINES += ENABLE_SVG_USE=1
-} else {
- DEFINES += ENABLE_SVG_FONTS=0 ENABLE_SVG_FOREIGN_OBJECT=0 ENABLE_SVG_ANIMATION=0 ENABLE_SVG_AS_IMAGE=0 ENABLE_SVG_USE=0
-}
-
-# HTML5 datalist support
-!contains(DEFINES, ENABLE_DATALIST=.): DEFINES += ENABLE_DATALIST=1
-
-# Tiled Backing Store support
-greaterThan(QT_MINOR_VERSION, 5) {
- !contains(DEFINES, ENABLE_TILED_BACKING_STORE=.): DEFINES += ENABLE_TILED_BACKING_STORE=1
-}
-
-# Nescape plugins support (NPAPI)
-!contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=.) {
- unix|win32-*:!embedded:!wince*: {
- DEFINES += ENABLE_NETSCAPE_PLUGIN_API=1
- } else {
- DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0
- }
-}
-
-# Web Socket support.
-!contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=1
-
-# Web Timing support.
-!contains(DEFINES, ENABLE_WEB_TIMING=.): DEFINES += ENABLE_WEB_TIMING=0
-
-# XSLT support with QtXmlPatterns
-!contains(DEFINES, ENABLE_XSLT=.) {
- contains(QT_CONFIG, xmlpatterns):DEFINES += ENABLE_XSLT=1
- else:DEFINES += ENABLE_XSLT=0
-}
-
-# geolocation support if QtMobility exists
-!CONFIG(QTDIR_build):!contains(DEFINES, ENABLE_GEOLOCATION=.) {
- contains(MOBILITY_CONFIG, location) {
- DEFINES += ENABLE_GEOLOCATION=1
- }
-}
-
-# Bearer management is part of Qt 4.7
-# for older version, check for mobility with bearer
-!contains(DEFINES, ENABLE_QT_BEARER=.) {
- !lessThan(QT_MINOR_VERSION, 7) {
- DEFINES += ENABLE_QT_BEARER=1
- } else {
- contains(MOBILITY_CONFIG, bearer) {
- DEFINES += ENABLE_QT_BEARER=1
- }
- }
-}
-
-# Enable touch event support with Qt 4.6
-!lessThan(QT_MINOR_VERSION, 6): DEFINES += ENABLE_TOUCH_EVENTS=1
-
-# HTML5 Media Support
-# We require QtMultimedia or Phonon
-!contains(DEFINES, ENABLE_VIDEO=.) {
- DEFINES -= ENABLE_VIDEO=1
- DEFINES += ENABLE_VIDEO=0
-
- !lessThan(QT_MINOR_VERSION, 6):contains(MOBILITY_CONFIG, multimedia) {
- DEFINES -= ENABLE_VIDEO=0
- DEFINES += ENABLE_VIDEO=1
- } else:contains(QT_CONFIG, phonon) {
- DEFINES -= ENABLE_VIDEO=0
- DEFINES += ENABLE_VIDEO=1
- }
-}
-
-# Used to compute defaults for the build-webkit script
-CONFIG(compute_defaults) {
- message($$DEFINES)
- error("Done computing defaults")
-}
-
-contains(DEFINES, ENABLE_WCSS=1) {
- contains(DEFINES, ENABLE_XHTMLMP=0) {
- DEFINES -= ENABLE_XHTMLMP=0
- DEFINES += ENABLE_XHTMLMP=1
- }
-}
-
-## Forward enabled feature macros to JavaScript enabled features macros
-FEATURE_DEFINES_JAVASCRIPT = LANGUAGE_JAVASCRIPT=1
-contains(DEFINES, ENABLE_CHANNEL_MESSAGING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_CHANNEL_MESSAGING=1
-contains(DEFINES, ENABLE_ORIENTATION_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_ORIENTATION_EVENTS=1
-contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=0): DASHBOARDSUPPORTCSSPROPERTIES -= $$PWD/css/DashboardSupportCSSPropertyNames.in
-contains(DEFINES, ENABLE_DATAGRID=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATAGRID=1
-contains(DEFINES, ENABLE_EVENTSOURCE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_EVENTSOURCE=1
-contains(DEFINES, ENABLE_DATABASE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATABASE=1
-contains(DEFINES, ENABLE_DATALIST=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATALIST=1
-contains(DEFINES, ENABLE_DOM_STORAGE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DOM_STORAGE=1
-contains(DEFINES, ENABLE_SHARED_SCRIPT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_SCRIPT=1
-contains(DEFINES, ENABLE_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WORKERS=1
-contains(DEFINES, ENABLE_SHARED_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_WORKERS=1
-contains(DEFINES, ENABLE_VIDEO=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO=1
-contains(DEFINES, ENABLE_XPATH=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XPATH=1
-contains(DEFINES, ENABLE_XSLT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XSLT=1
-contains(DEFINES, ENABLE_XBL=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XBL=1
-contains(DEFINES, ENABLE_FILTERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_FILTERS=1
-contains(DEFINES, ENABLE_WCSS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WCSS=1
-contains(DEFINES, ENABLE_WML=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WML=1
-contains(DEFINES, ENABLE_XHTMLMP=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XHTMLMP=1
-contains(DEFINES, ENABLE_SVG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG=1
-contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_JAVASCRIPT_DEBUGGER=1
-contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_OFFLINE_WEB_APPLICATIONS=1
-contains(DEFINES, ENABLE_WEB_SOCKETS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_SOCKETS=1
-contains(DEFINES, ENABLE_WEB_TIMING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_TIMING=1
-contains(DEFINES, ENABLE_TOUCH_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TOUCH_EVENTS=1
-contains(DEFINES, ENABLE_TILED_BACKING_STORE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TILED_BACKING_STORE=1
-contains(DEFINES, ENABLE_NOTIFICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_NOTIFICATIONS=1
-contains(DEFINES, ENABLE_METER_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_METER_TAG=1
-contains(DEFINES, ENABLE_PROGRESS_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_PROGRESS_TAG=1
-contains(DEFINES, ENABLE_GEOLOCATION=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_GEOLOCATION=1
-
## Derived source generators
MATHML_NAMES = $$PWD/mathml/mathtags.in
@@ -293,6 +101,7 @@ IDL_BINDINGS += \
dom/Comment.idl \
dom/CompositionEvent.idl \
dom/CustomEvent.idl \
+ dom/DeviceMotionEvent.idl \
dom/DeviceOrientationEvent.idl \
dom/DocumentFragment.idl \
dom/Document.idl \
@@ -483,18 +292,20 @@ IDL_BINDINGS += \
storage/DatabaseCallback.idl \
storage/DatabaseSync.idl \
storage/IDBAny.idl \
+ storage/IDBCursor.idl \
storage/IDBDatabaseError.idl \
storage/IDBDatabaseException.idl \
- storage/IDBDatabaseRequest.idl \
+ storage/IDBDatabase.idl \
storage/IDBErrorEvent.idl \
storage/IDBEvent.idl \
+ storage/IDBFactory.idl \
storage/IDBIndex.idl \
storage/IDBKey.idl \
storage/IDBKeyRange.idl \
- storage/IDBObjectStoreRequest.idl \
+ storage/IDBObjectStore.idl \
storage/IDBRequest.idl \
storage/IDBSuccessEvent.idl \
- storage/IDBFactory.idl \
+ storage/IDBTransaction.idl \
storage/Storage.idl \
storage/StorageEvent.idl \
storage/SQLError.idl \
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 03af4df..652d443 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -155,6 +155,11 @@ contains(DEFINES, WTF_USE_QT_MOBILE_THEME=1) {
include($$PWD/../JavaScriptCore/JavaScriptCore.pri)
addJavaScriptCoreLib(../JavaScriptCore)
+webkit2 {
+ include($$PWD/../WebKit2/WebKit2.pri)
+ addWebKit2Lib(../WebKit2)
+}
+
# Extract sources to build from the generator definitions
defineTest(addExtraCompiler) {
isEqual($${1}.wkAddOutputToSources, false): return(true)
@@ -276,6 +281,7 @@ SOURCES += \
accessibility/AccessibilityTableHeaderContainer.cpp \
accessibility/AccessibilityTableRow.cpp \
accessibility/AXObjectCache.cpp \
+ bindings/generic/ActiveDOMCallback.cpp \
bindings/generic/RuntimeEnabledFeatures.cpp \
bindings/js/GCController.cpp \
bindings/js/DOMObjectHashTableMap.cpp \
@@ -300,6 +306,7 @@ SOURCES += \
bindings/js/JSDataGridDataSource.cpp \
bindings/js/JSDebugWrapperSet.cpp \
bindings/js/JSDesktopNotificationsCustom.cpp \
+ bindings/js/JSDeviceMotionEventCustom.cpp \
bindings/js/JSDeviceOrientationEventCustom.cpp \
bindings/js/JSDocumentCustom.cpp \
bindings/js/JSDOMFormDataCustom.cpp \
@@ -367,7 +374,6 @@ SOURCES += \
bindings/js/JSPluginElementFunctions.cpp \
bindings/js/JSPopStateEventCustom.cpp \
bindings/js/JSWorkerContextErrorHandler.cpp \
- bindings/js/ScriptArray.cpp \
bindings/js/ScriptCachedFrameData.cpp \
bindings/js/ScriptCallFrame.cpp \
bindings/js/ScriptCallStack.cpp \
@@ -377,6 +383,7 @@ SOURCES += \
bindings/js/ScriptFunctionCall.cpp \
bindings/js/ScriptGCEvent.cpp \
bindings/js/ScriptObject.cpp \
+ bindings/js/ScriptProfile.cpp \
bindings/js/ScriptState.cpp \
bindings/js/ScriptValue.cpp \
bindings/js/ScheduledAction.cpp \
@@ -457,6 +464,7 @@ SOURCES += \
css/WebKitCSSMatrix.cpp \
css/WebKitCSSTransformValue.cpp \
dom/ActiveDOMObject.cpp \
+ dom/AsyncScriptRunner.cpp \
dom/Attr.cpp \
dom/Attribute.cpp \
dom/BeforeProcessEvent.cpp \
@@ -477,6 +485,9 @@ SOURCES += \
dom/CSSMappedAttributeDeclaration.cpp \
dom/CustomEvent.cpp \
dom/DecodedDataDocumentParser.cpp \
+ dom/DeviceMotionController.cpp \
+ dom/DeviceMotionData.cpp \
+ dom/DeviceMotionEvent.cpp \
dom/DeviceOrientation.cpp \
dom/DeviceOrientationController.cpp \
dom/DeviceOrientationEvent.cpp \
@@ -520,6 +531,7 @@ SOURCES += \
dom/StaticHashSetNodeList.cpp \
dom/OverflowEvent.cpp \
dom/PageTransitionEvent.cpp \
+ dom/PendingScript.cpp \
dom/PopStateEvent.cpp \
dom/Position.cpp \
dom/PositionIterator.cpp \
@@ -740,12 +752,13 @@ SOURCES += \
inspector/InspectorCSSStore.cpp \
inspector/InspectorController.cpp \
inspector/InspectorDatabaseResource.cpp \
+ inspector/InspectorDebuggerAgent.cpp \
inspector/InspectorDOMAgent.cpp \
inspector/InspectorDOMStorageResource.cpp \
- inspector/InspectorFrontend.cpp \
inspector/InspectorFrontendClientLocal.cpp \
inspector/InspectorFrontendHost.cpp \
inspector/InspectorResource.cpp \
+ inspector/InspectorStorageAgent.cpp \
inspector/InspectorTimelineAgent.cpp \
inspector/InspectorValues.cpp \
inspector/ScriptBreakpoint.cpp \
@@ -1081,6 +1094,7 @@ HEADERS += \
accessibility/AccessibilityTableRow.h \
accessibility/AXObjectCache.h \
bindings/ScriptControllerBase.h \
+ bindings/generic/ActiveDOMCallback.h \
bindings/js/CachedScriptSourceProvider.h \
bindings/js/GCController.h \
bindings/js/DOMObjectHashTableMap.h \
@@ -1121,7 +1135,6 @@ HEADERS += \
bindings/js/JSWorkerContextErrorHandler.h \
bindings/js/JavaScriptCallFrame.h \
bindings/js/ScheduledAction.h \
- bindings/js/ScriptArray.h \
bindings/js/ScriptCachedFrameData.h \
bindings/js/ScriptCallFrame.h \
bindings/js/ScriptCallStack.h \
@@ -1240,6 +1253,10 @@ HEADERS += \
dom/CSSMappedAttributeDeclaration.h \
dom/CustomEvent.h \
dom/default/PlatformMessagePortChannel.h \
+ dom/DeviceMotionClient.h \
+ dom/DeviceMotionData.h \
+ dom/DeviceMotionController.h \
+ dom/DeviceMotionEvent.h \
dom/DeviceOrientation.h \
dom/DeviceOrientationClient.h \
dom/DeviceOrientationController.h \
@@ -1496,12 +1513,13 @@ HEADERS += \
inspector/InspectorBackend.h \
inspector/InspectorController.h \
inspector/InspectorDatabaseResource.h \
+ inspector/InspectorDebuggerAgent.h \
inspector/InspectorDOMStorageResource.h \
- inspector/InspectorFrontend.h \
inspector/InspectorFrontendClient.h \
inspector/InspectorFrontendClientLocal.h \
inspector/InspectorFrontendHost.h \
inspector/InspectorResource.h \
+ inspector/InspectorStorageAgent.h \
inspector/InspectorTimelineAgent.h \
inspector/ScriptGCEventListener.h \
inspector/TimelineRecordFactory.h \
@@ -1560,6 +1578,7 @@ HEADERS += \
mathml/MathMLMathElement.h \
mathml/MathMLTextElement.h \
mathml/RenderMathMLBlock.h \
+ mathml/RenderMathMLFenced.h \
mathml/RenderMathMLFraction.h \
mathml/RenderMathMLMath.h \
mathml/RenderMathMLOperator.h \
@@ -1712,7 +1731,6 @@ HEADERS += \
platform/PopupMenu.h \
platform/qt/ClipboardQt.h \
platform/qt/QWebPageClient.h \
- platform/qt/QtAbstractWebPopup.h \
platform/qt/QtStyleOptionWebComboBox.h \
platform/qt/RenderThemeQt.h \
platform/qt/ScrollbarThemeQt.h \
@@ -2149,6 +2167,8 @@ HEADERS += \
$$PWD/../WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h \
$$PWD/../WebKit/qt/WebCoreSupport/PageClientQt.h \
$$PWD/../WebKit/qt/WebCoreSupport/QtPlatformPlugin.h \
+ $$PWD/../WebKit/qt/WebCoreSupport/PopupMenuQt.h \
+ $$PWD/../WebKit/qt/WebCoreSupport/SearchPopupMenuQt.h \
$$PWD/platform/network/qt/DnsPrefetchHelper.h
SOURCES += \
@@ -2211,13 +2231,10 @@ SOURCES += \
platform/qt/PlatformScreenQt.cpp \
platform/qt/PlatformTouchEventQt.cpp \
platform/qt/PlatformTouchPointQt.cpp \
- platform/qt/PopupMenuQt.cpp \
- platform/qt/QtAbstractWebPopup.cpp \
platform/qt/RenderThemeQt.cpp \
platform/qt/ScrollbarQt.cpp \
platform/qt/ScrollbarThemeQt.cpp \
platform/qt/ScrollViewQt.cpp \
- platform/qt/SearchPopupMenuQt.cpp \
platform/qt/SharedTimerQt.cpp \
platform/qt/SoundQt.cpp \
platform/qt/LoggingQt.cpp \
@@ -2239,7 +2256,9 @@ SOURCES += \
../WebKit/qt/WebCoreSupport/InspectorClientQt.cpp \
../WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp \
../WebKit/qt/WebCoreSupport/PageClientQt.cpp \
+ ../WebKit/qt/WebCoreSupport/PopupMenuQt.cpp \
../WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp \
+ ../WebKit/qt/WebCoreSupport/SearchPopupMenuQt.cpp \
../WebKit/qt/Api/qwebframe.cpp \
../WebKit/qt/Api/qgraphicswebview.cpp \
../WebKit/qt/Api/qwebpage.cpp \
@@ -2411,8 +2430,6 @@ contains(DEFINES, ENABLE_DATABASE=1) {
storage/SQLTransactionCoordinator.cpp \
storage/SQLTransactionSync.cpp \
bindings/js/JSCustomSQLStatementErrorCallback.cpp \
- bindings/js/JSDatabaseCustom.cpp \
- bindings/js/JSDatabaseSyncCustom.cpp \
bindings/js/JSSQLResultSetRowListCustom.cpp \
bindings/js/JSSQLTransactionCustom.cpp \
bindings/js/JSSQLTransactionSyncCustom.cpp
@@ -2423,11 +2440,14 @@ contains(DEFINES, ENABLE_INDEXED_DATABASE=1) {
bindings/js/IDBBindingUtilities.h \
storage/IDBAny.h \
storage/IDBCallbacks.h \
+ storage/IDBCursor.h \
+ storage/IDBCursorBackendImpl.h \
+ storage/IDBCursorBackendInterface.h \
storage/IDBDatabase.h \
- storage/IDBDatabaseImpl.h \
+ storage/IDBDatabaseBackendImpl.h \
+ storage/IDBDatabaseBackendInterface.h \
storage/IDBDatabaseError.h \
storage/IDBDatabaseException.h \
- storage/IDBDatabaseRequest.h \
storage/IDBErrorEvent.h \
storage/IDBEvent.h \
storage/IDBFactory.h \
@@ -2439,18 +2459,22 @@ contains(DEFINES, ENABLE_INDEXED_DATABASE=1) {
storage/IDBKey.h \
storage/IDBKeyRange.h \
storage/IDBObjectStore.h \
- storage/IDBObjectStoreImpl.h \
- storage/IDBObjectStoreRequest.h \
+ storage/IDBObjectStoreBackendImpl.h \
+ storage/IDBObjectStoreBackendInterface.h \
storage/IDBRequest.h \
- storage/IDBSuccessEvent.h
+ storage/IDBSuccessEvent.h \
+ storage/IDBTransaction.h \
+ storage/IDBTransactionBackendInterface.h
SOURCES += \
bindings/js/IDBBindingUtilities.cpp \
bindings/js/JSIDBAnyCustom.cpp \
bindings/js/JSIDBKeyCustom.cpp \
storage/IDBAny.cpp \
- storage/IDBDatabaseImpl.cpp \
- storage/IDBDatabaseRequest.cpp \
+ storage/IDBCursor.cpp \
+ storage/IDBCursorBackendImpl.cpp \
+ storage/IDBDatabase.cpp \
+ storage/IDBDatabaseBackendImpl.cpp \
storage/IDBErrorEvent.cpp \
storage/IDBEvent.cpp \
storage/IDBFactory.cpp \
@@ -2460,10 +2484,11 @@ contains(DEFINES, ENABLE_INDEXED_DATABASE=1) {
storage/IDBIndexBackendImpl.cpp \
storage/IDBKey.cpp \
storage/IDBKeyRange.cpp \
- storage/IDBObjectStoreImpl.cpp \
- storage/IDBObjectStoreRequest.cpp \
+ storage/IDBObjectStore.cpp \
+ storage/IDBObjectStoreBackendImpl.cpp \
storage/IDBRequest.cpp \
- storage/IDBSuccessEvent.cpp
+ storage/IDBSuccessEvent.cpp \
+ storage/IDBTransaction.cpp
}
contains(DEFINES, ENABLE_DOM_STORAGE=1) {
@@ -2654,6 +2679,7 @@ contains(DEFINES, ENABLE_MATHML=1) {
mathml/MathMLMathElement.cpp \
mathml/MathMLTextElement.cpp \
mathml/RenderMathMLBlock.cpp \
+ mathml/RenderMathMLFenced.cpp \
mathml/RenderMathMLFraction.cpp \
mathml/RenderMathMLMath.cpp \
mathml/RenderMathMLOperator.cpp \
@@ -2832,8 +2858,12 @@ contains(DEFINES, ENABLE_SVG=1) {
svg/SVGPaint.cpp \
svg/SVGParserUtilities.cpp \
svg/SVGPathBuilder.cpp \
+ svg/SVGPathByteStreamBuilder.cpp \
+ svg/SVGPathByteStreamSource.cpp \
svg/SVGPathElement.cpp \
svg/SVGPathParser.cpp \
+ svg/SVGPathParserFactory.cpp \
+ svg/SVGPathSeg.cpp \
svg/SVGPathSegArc.cpp \
svg/SVGPathSegClosePath.cpp \
svg/SVGPathSegCurvetoCubic.cpp \
@@ -2845,7 +2875,10 @@ contains(DEFINES, ENABLE_SVG=1) {
svg/SVGPathSegLinetoVertical.cpp \
svg/SVGPathSegList.cpp \
svg/SVGPathSegListBuilder.cpp \
+ svg/SVGPathSegListSource.cpp \
svg/SVGPathSegMoveto.cpp \
+ svg/SVGPathStringBuilder.cpp \
+ svg/SVGPathStringSource.cpp \
svg/SVGPatternElement.cpp \
svg/SVGPointList.cpp \
svg/SVGPolyElement.cpp \
@@ -3004,7 +3037,7 @@ tobe|!tobe: QT += opengl
HEADERS += \
bindings/js/JSArrayBufferViewHelper.h \
html/canvas/CanvasContextAttributes.h \
- html/canvas/CanvasObject.h \
+ html/canvas/WebGLObject.h \
html/canvas/WebGLActiveInfo.h \
html/canvas/ArrayBuffer.h \
html/canvas/ArrayBufferView.h \
@@ -3039,7 +3072,7 @@ SOURCES += \
bindings/js/JSUint32ArrayCustom.cpp \
bindings/js/JSUint16ArrayCustom.cpp \
html/canvas/CanvasContextAttributes.cpp \
- html/canvas/CanvasObject.cpp \
+ html/canvas/WebGLObject.cpp \
html/canvas/ArrayBuffer.cpp \
html/canvas/ArrayBufferView.cpp \
html/canvas/WebGLBuffer.cpp \
@@ -3194,204 +3227,6 @@ SOURCES += \
rendering/RenderLayerCompositor.cpp
}
-webkit2 {
-
-CONFIG += precompile_header
-PRECOMPILED_HEADER = $$PWD/../WebKit2/WebKit2Prefix.h
-
-INCLUDEPATH = \
- $$PWD/../WebKit2/Platform \
- $$PWD/../WebKit2/Platform/CoreIPC \
- $$PWD/../WebKit2/Shared \
- $$PWD/../WebKit2/Shared/CoreIPCSupport \
- $$PWD/../WebKit2/Shared/qt \
- $$PWD/../WebKit2/UIProcess \
- $$PWD/../WebKit2/UIProcess/API/C \
- $$PWD/../WebKit2/UIProcess/API/cpp \
- $$PWD/../WebKit2/UIProcess/API/cpp/qt \
- $$PWD/../WebKit2/UIProcess/API/qt \
- $$PWD/../WebKit2/UIProcess/Launcher \
- $$PWD/../WebKit2/UIProcess/Plugins \
- $$PWD/../WebKit2/UIProcess/qt \
- $$PWD/../WebKit2/WebProcess \
- $$PWD/../WebKit2/WebProcess/InjectedBundle \
- $$PWD/../WebKit2/WebProcess/InjectedBundle/API/c \
- $$PWD/../WebKit2/WebProcess/WebCoreSupport \
- $$PWD/../WebKit2/WebProcess/WebPage \
- $$INCLUDEPATH \
- $$OUTPUT_DIR/include \
-
-HEADERS += \
- ../WebKit2/Platform/CoreIPC/ArgumentDecoder.h \
- ../WebKit2/Platform/CoreIPC/ArgumentEncoder.h \
- ../WebKit2/Platform/CoreIPC/Arguments.h \
- ../WebKit2/Platform/CoreIPC/Attachment.h \
- ../WebKit2/Platform/CoreIPC/Connection.h \
- ../WebKit2/Platform/CoreIPC/CoreIPCMessageKinds.h \
- ../WebKit2/Platform/CoreIPC/MessageID.h \
- ../WebKit2/Platform/PlatformProcessIdentifier.h \
- ../WebKit2/Platform/RunLoop.h \
- ../WebKit2/Platform/WorkItem.h \
- ../WebKit2/Platform/WorkQueue.h \
- ../WebKit2/Shared/CoreIPCSupport/DrawingAreaMessageKinds.h \
- ../WebKit2/Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h \
- ../WebKit2/Shared/CoreIPCSupport/WebPageMessageKinds.h \
- ../WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h \
- ../WebKit2/Shared/CoreIPCSupport/WebProcessMessageKinds.h \
- ../WebKit2/Shared/NotImplemented.h \
- ../WebKit2/Shared/qt/WebEventFactoryQt.h \
- ../WebKit2/Shared/WebEventConversion.h \
- ../WebKit2/Shared/WebEvent.h \
- ../WebKit2/Shared/WebNavigationDataStore.h \
- ../WebKit2/Shared/WebPreferencesStore.h \
- ../WebKit2/UIProcess/API/cpp/WKRetainPtr.h \
- ../WebKit2/UIProcess/API/cpp/qt/WKStringQt.h \
- ../WebKit2/UIProcess/API/cpp/qt/WKURLQt.h \
- ../WebKit2/UIProcess/API/C/WebKit2.h \
- ../WebKit2/UIProcess/API/C/WKAPICast.h \
- ../WebKit2/UIProcess/API/C/WKBase.h \
- ../WebKit2/UIProcess/API/C/WKContext.h \
- ../WebKit2/UIProcess/API/C/WKContextPrivate.h \
- ../WebKit2/UIProcess/API/C/WKFrame.h \
- ../WebKit2/UIProcess/API/C/WKFramePolicyListener.h \
- ../WebKit2/UIProcess/API/C/WKNavigationData.h \
- ../WebKit2/UIProcess/API/C/WKPage.h \
- ../WebKit2/UIProcess/API/C/WKPageNamespace.h \
- ../WebKit2/UIProcess/API/C/WKPagePrivate.h \
- ../WebKit2/UIProcess/API/C/WKPreferences.h \
- ../WebKit2/UIProcess/API/C/WKString.h \
- ../WebKit2/UIProcess/API/C/WKURL.h \
- ../WebKit2/UIProcess/API/qt/qgraphicswkview.h \
- ../WebKit2/UIProcess/API/qt/qwkpage.h \
- ../WebKit2/UIProcess/API/qt/qwkpage_p.h \
- ../WebKit2/UIProcess/ChunkedUpdateDrawingAreaProxy.h \
- ../WebKit2/UIProcess/DrawingAreaProxy.h \
- ../WebKit2/UIProcess/GenericCallback.h \
- ../WebKit2/UIProcess/Launcher/ProcessLauncher.h \
- ../WebKit2/UIProcess/Plugins/PluginInfoStore.h \
- ../WebKit2/UIProcess/PageClient.h \
- ../WebKit2/UIProcess/ProcessModel.h \
- ../WebKit2/UIProcess/API/qt/ClientImpl.h \
- ../WebKit2/UIProcess/ResponsivenessTimer.h \
- ../WebKit2/UIProcess/WebContext.h \
- ../WebKit2/UIProcess/WebContextInjectedBundleClient.h \
- ../WebKit2/UIProcess/WebFramePolicyListenerProxy.h \
- ../WebKit2/UIProcess/WebFrameProxy.h \
- ../WebKit2/UIProcess/WebHistoryClient.h \
- ../WebKit2/UIProcess/WebLoaderClient.h \
- ../WebKit2/UIProcess/WebNavigationData.h \
- ../WebKit2/UIProcess/WebPageNamespace.h \
- ../WebKit2/UIProcess/WebPageProxy.h \
- ../WebKit2/UIProcess/WebPolicyClient.h \
- ../WebKit2/UIProcess/WebPreferences.h \
- ../WebKit2/UIProcess/WebProcessManager.h \
- ../WebKit2/UIProcess/WebProcessProxy.h \
- ../WebKit2/UIProcess/WebUIClient.h \
- ../WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBase.h \
- ../WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h \
- ../WebKit2/WebProcess/InjectedBundle/InjectedBundle.h \
- ../WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebContextMenuClient.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebDragClient.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebErrors.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h \
- ../WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.h \
- ../WebKit2/WebProcess/WebPage/ChunkedUpdateDrawingArea.h \
- ../WebKit2/WebProcess/WebPage/DrawingArea.h \
- ../WebKit2/WebProcess/WebPage/WebFrame.h \
- ../WebKit2/WebProcess/WebPage/WebPage.h \
- ../WebKit2/WebProcess/WebProcess.h \
-
-SOURCES += \
- ../WebKit2/Platform/CoreIPC/ArgumentDecoder.cpp \
- ../WebKit2/Platform/CoreIPC/ArgumentEncoder.cpp \
- ../WebKit2/Platform/CoreIPC/Attachment.cpp \
- ../WebKit2/Platform/CoreIPC/Connection.cpp \
- ../WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp \
- ../WebKit2/Platform/RunLoop.cpp \
- ../WebKit2/Platform/WorkQueue.cpp \
- ../WebKit2/Platform/qt/RunLoopQt.cpp \
- ../WebKit2/Platform/qt/WorkQueueQt.cpp \
- ../WebKit2/Shared/ImmutableArray.cpp \
- ../WebKit2/Shared/WebEventConversion.cpp \
- ../WebKit2/Shared/WebPreferencesStore.cpp \
- ../WebKit2/Shared/qt/UpdateChunk.cpp \
- ../WebKit2/Shared/qt/WebEventFactoryQt.cpp \
- ../WebKit2/UIProcess/API/C/WKContext.cpp \
- ../WebKit2/UIProcess/API/C/WKFrame.cpp \
- ../WebKit2/UIProcess/API/C/WKFramePolicyListener.cpp \
- ../WebKit2/UIProcess/API/C/WKNavigationData.cpp \
- ../WebKit2/UIProcess/API/C/WKPage.cpp \
- ../WebKit2/UIProcess/API/C/WKPageNamespace.cpp \
- ../WebKit2/UIProcess/API/C/WKPreferences.cpp \
- ../WebKit2/UIProcess/API/C/WKString.cpp \
- ../WebKit2/UIProcess/API/C/WKURL.cpp \
- ../WebKit2/UIProcess/API/qt/qgraphicswkview.cpp \
- ../WebKit2/UIProcess/API/qt/qwkpage.cpp \
- ../WebKit2/UIProcess/API/cpp/qt/WKStringQt.cpp \
- ../WebKit2/UIProcess/API/cpp/qt/WKURLQt.cpp \
- ../WebKit2/UIProcess/ChunkedUpdateDrawingAreaProxy.cpp \
- ../WebKit2/UIProcess/DrawingAreaProxy.cpp \
- ../WebKit2/UIProcess/Plugins/PluginInfoStore.cpp \
- ../WebKit2/UIProcess/Plugins/qt/PluginInfoStoreQt.cpp \
- ../WebKit2/UIProcess/Launcher/ProcessLauncher.cpp \
- ../WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp \
- ../WebKit2/UIProcess/ResponsivenessTimer.cpp \
- ../WebKit2/UIProcess/WebBackForwardList.cpp \
- ../WebKit2/UIProcess/WebBackForwardListItem.cpp \
- ../WebKit2/UIProcess/WebContext.cpp \
- ../WebKit2/UIProcess/WebContextInjectedBundleClient.cpp \
- ../WebKit2/UIProcess/WebFramePolicyListenerProxy.cpp \
- ../WebKit2/UIProcess/WebFrameProxy.cpp \
- ../WebKit2/UIProcess/WebHistoryClient.cpp \
- ../WebKit2/UIProcess/WebLoaderClient.cpp \
- ../WebKit2/UIProcess/WebNavigationData.cpp \
- ../WebKit2/UIProcess/WebPageNamespace.cpp \
- ../WebKit2/UIProcess/WebPageProxy.cpp \
- ../WebKit2/UIProcess/WebPolicyClient.cpp \
- ../WebKit2/UIProcess/WebPreferences.cpp \
- ../WebKit2/UIProcess/WebProcessManager.cpp \
- ../WebKit2/UIProcess/WebProcessProxy.cpp \
- ../WebKit2/UIProcess/WebUIClient.cpp \
- ../WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp \
- ../WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp \
- ../WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp \
- ../WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp \
- ../WebKit2/WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp \
- ../WebKit2/UIProcess/API/qt/ClientImpl.cpp \
- ../WebKit2/UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp \
- ../WebKit2/UIProcess/qt/WebContextQt.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebContextMenuClient.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebDragClient.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebBackForwardControllerClient.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp \
- ../WebKit2/WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp \
- ../WebKit2/WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp \
- ../WebKit2/WebProcess/WebPage/DrawingArea.cpp \
- ../WebKit2/WebProcess/WebPage/WebFrame.cpp \
- ../WebKit2/WebProcess/WebPage/WebPage.cpp \
- ../WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp \
- ../WebKit2/WebProcess/WebPage/qt/ChunkedUpdateDrawingAreaQt.cpp \
- ../WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp \
- ../WebKit2/WebProcess/WebProcess.cpp \
- ../WebKit2/WebProcess/qt/WebProcessMainQt.cpp
-
-INCLUDEPATH = \
- $$OUTPUT_DIR/WebCore/generated \
- $$INCLUDEPATH \
- $$OUPUT_DIR/include
-
-}
-
symbian {
shared {
contains(CONFIG, def_files) {
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index 7e80fb2..cee21ac 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -545,6 +545,14 @@
>
</File>
<File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\InspectorBackendDispatcher.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\InspectorBackendDispatcher.h"
+ >
+ </File>
+ <File
RelativePath="$(WebKitOutputDir)\obj\WebCore\DerivedSources\JSAbstractWorker.cpp"
>
<FileConfiguration
@@ -2897,6 +2905,62 @@
>
</File>
<File
+ RelativePath="$(WebKitOutputDir)\obj\WebCore\DerivedSources\JSDeviceMotionEvent.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Internal|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="$(WebKitOutputDir)\obj\WebCore\DerivedSources\JSDeviceMotionEvent.h"
+ >
+ </File>
+ <File
RelativePath="$(WebKitOutputDir)\obj\WebCore\DerivedSources\JSDeviceOrientationEvent.cpp"
>
<FileConfiguration
@@ -20685,14 +20749,6 @@
>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\InspectorBackendDispatcher.cpp"
- >
- </File>
- <File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\InspectorBackendDispatcher.h"
- >
- </File>
- <File
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\RemoteInspectorFrontend.cpp"
>
</File>
@@ -22725,15 +22781,15 @@
>
</File>
<File
- RelativePath="..\loader\DocumentLoadTiming.h"
+ RelativePath="..\loader\DocumentLoader.cpp"
>
</File>
<File
- RelativePath="..\loader\DocumentLoader.cpp"
+ RelativePath="..\loader\DocumentLoader.h"
>
</File>
<File
- RelativePath="..\loader\DocumentLoader.h"
+ RelativePath="..\loader\DocumentLoadTiming.h"
>
</File>
<File
@@ -23361,6 +23417,14 @@
>
</File>
<File
+ RelativePath="..\platform\LocalizationStrategy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\platform\LocalizedStrings.cpp"
+ >
+ </File>
+ <File
RelativePath="..\platform\LocalizedStrings.h"
>
</File>
@@ -23409,6 +23473,14 @@
>
</File>
<File
+ RelativePath="..\platform\PlatformStrategies.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\platform\PlatformStrategies.h"
+ >
+ </File>
+ <File
RelativePath="..\platform\PlatformWheelEvent.h"
>
</File>
@@ -23557,6 +23629,10 @@
>
</File>
<File
+ RelativePath="..\platform\VisitedLinkStrategy.h"
+ >
+ </File>
+ <File
RelativePath="..\platform\Widget.cpp"
>
</File>
@@ -24380,15 +24456,15 @@
>
</File>
<File
- RelativePath="..\platform\graphics\WOFFFileFormat.cpp"
+ RelativePath="..\platform\graphics\UnitBezier.h"
>
</File>
<File
- RelativePath="..\platform\graphics\WOFFFileFormat.h"
+ RelativePath="..\platform\graphics\WOFFFileFormat.cpp"
>
</File>
<File
- RelativePath="..\platform\graphics\UnitBezier.h"
+ RelativePath="..\platform\graphics\WOFFFileFormat.h"
>
</File>
<Filter
@@ -32473,6 +32549,14 @@
>
</File>
<File
+ RelativePath="..\dom\AsyncScriptRunner.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dom\AsyncScriptRunner.h"
+ >
+ </File>
+ <File
RelativePath="..\dom\Attr.cpp"
>
</File>
@@ -32653,6 +32737,34 @@
>
</File>
<File
+ RelativePath="..\dom\DeviceMotionClient.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dom\DeviceMotionController.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dom\DeviceMotionController.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dom\DeviceMotionData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dom\DeviceMotionData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\dom\DeviceMotionEvent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dom\DeviceMotionEvent.h"
+ >
+ </File>
+ <File
RelativePath="..\dom\DeviceOrientation.cpp"
>
</File>
@@ -32997,6 +33109,14 @@
>
</File>
<File
+ RelativePath="..\dom\PendingScript.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\dom\PendingScript.h"
+ >
+ </File>
+ <File
RelativePath="..\dom\PageTransitionEvent.cpp"
>
</File>
@@ -40868,6 +40988,18 @@
Name="generic"
>
<File
+ RelativePath="..\bindings\generic\ActiveDOMCallback.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\bindings\generic\ActiveDOMCallback.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="generic"
+ >
+ <File
RelativePath="..\bindings\generic\RuntimeEnabledFeatures.cpp"
>
</File>
@@ -42068,7 +42200,7 @@
>
</File>
<File
- RelativePath="..\bindings\js\JSDatabaseCustom.cpp"
+ RelativePath="..\bindings\js\JSDataGridColumnListCustom.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -42120,7 +42252,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\bindings\js\JSDatabaseSyncCustom.cpp"
+ RelativePath="..\bindings\js\JSDataGridDataSource.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -42172,7 +42304,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\bindings\js\JSDataGridColumnListCustom.cpp"
+ RelativePath="..\bindings\js\JSDebugWrapperSet.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -42224,59 +42356,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\bindings\js\JSDataGridDataSource.cpp"
+ RelativePath="..\bindings\js\JSDebugWrapperSet.h"
>
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Internal|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_All|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
</File>
<File
- RelativePath="..\bindings\js\JSDebugWrapperSet.cpp"
+ RelativePath="..\bindings\js\JSDedicatedWorkerContextCustom.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -42328,11 +42412,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\bindings\js\JSDebugWrapperSet.h"
- >
- </File>
- <File
- RelativePath="..\bindings\js\JSDedicatedWorkerContextCustom.cpp"
+ RelativePath="..\bindings\js\JSDesktopNotificationsCustom.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -42384,7 +42464,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\bindings\js\JSDesktopNotificationsCustom.cpp"
+ RelativePath="..\bindings\js\JSDeviceMotionEventCustom.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -44300,6 +44380,110 @@
</FileConfiguration>
</File>
<File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBCursor.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Internal|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBCursor.h"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Internal|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
RelativePath="..\bindings\js\JSHTMLOptionsCollectionCustom.cpp"
>
<FileConfiguration
@@ -44568,6 +44752,62 @@
</FileConfiguration>
</File>
<File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBDatabase.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Internal|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBDatabase.h"
+ >
+ </File>
+ <File
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBDatabase.h"
>
</File>
@@ -44684,7 +44924,7 @@
>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBDatabaseRequest.cpp"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBErrorEvent.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -44736,11 +44976,15 @@
</FileConfiguration>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBDatabaseRequest.h"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBErrorEvent.h"
>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBErrorEvent.cpp"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBEvent.h"
+ >
+ </File>
+ <File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBFactory.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -44792,11 +45036,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBErrorEvent.h"
- >
- </File>
- <File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBEvent.h"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBFactory.h"
>
</File>
<File
@@ -45020,7 +45260,7 @@
>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBObjectStoreRequest.cpp"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBObjectStore.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -45072,7 +45312,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBObjectStoreRequest.cpp"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBObjectStore.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -45124,7 +45364,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBObjectStoreRequest.h"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBObjectStore.h"
>
</File>
<File
@@ -45240,7 +45480,7 @@
>
</File>
<File
- RelativePath="..\bindings\js\JSImageConstructor.cpp"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBTransaction.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -45292,11 +45532,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\bindings\js\JSImageConstructor.h"
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBTransaction.h"
>
</File>
<File
- RelativePath="..\bindings\js\JSImageDataCustom.cpp"
+ RelativePath="..\bindings\js\JSImageConstructor.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -45348,7 +45588,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBFactory.cpp"
+ RelativePath="..\bindings\js\JSImageConstructor.h"
+ >
+ </File>
+ <File
+ RelativePath="..\bindings\js\JSImageDataCustom.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -45400,10 +45644,6 @@
</FileConfiguration>
</File>
<File
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBFactory.h"
- >
- </File>
- <File
RelativePath="..\bindings\js\JSInjectedScriptHostCustom.cpp"
>
<FileConfiguration
@@ -47744,62 +47984,6 @@
>
</File>
<File
- RelativePath="..\bindings\js\ScriptArray.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Internal|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release_Cairo|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug_All|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\bindings\js\ScriptArray.h"
- >
- </File>
- <File
RelativePath="..\bindings\js\ScriptCachedFrameData.cpp"
>
<FileConfiguration
@@ -48256,6 +48440,10 @@
>
</File>
<File
+ RelativePath="..\bindings\js\ScriptProfile.cpp"
+ >
+ </File>
+ <File
RelativePath="..\bindings\js\ScriptSourceCode.h"
>
</File>
@@ -48545,6 +48733,10 @@
>
</File>
<File
+ RelativePath="..\plugins\PluginStrategy.h"
+ >
+ </File>
+ <File
RelativePath="..\plugins\PluginStream.cpp"
>
</File>
@@ -48568,10 +48760,6 @@
>
</File>
<File
- RelativePath="..\plugins\win\PluginDataWin.cpp"
- >
- </File>
- <File
RelativePath="..\plugins\win\PluginMessageThrottlerWin.cpp"
>
</File>
@@ -49169,6 +49357,18 @@
>
</File>
<File
+ RelativePath="..\svg\SVGPathByteStream.h"
+ >
+ </File>
+ <File
+ RelativePath="..\svg\SVGPathByteStreamBuilder.h"
+ >
+ </File>
+ <File
+ RelativePath="..\svg\SVGPathByteStreamSource.h"
+ >
+ </File>
+ <File
RelativePath="..\svg\SVGPathConsumer.h"
>
</File>
@@ -49181,6 +49381,10 @@
>
</File>
<File
+ RelativePath="..\svg\SVGPathParserFactory.h"
+ >
+ </File>
+ <File
RelativePath="..\svg\SVGPathSeg.h"
>
</File>
@@ -49229,10 +49433,26 @@
>
</File>
<File
+ RelativePath="..\svg\SVGPathSegListSource.h"
+ >
+ </File>
+ <File
RelativePath="..\svg\SVGPathSegMoveto.h"
>
</File>
<File
+ RelativePath="..\svg\SVGPathSource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\svg\SVGPathStringBuilder.h"
+ >
+ </File>
+ <File
+ RelativePath="..\svg\SVGPathStringSource.h"
+ >
+ </File>
+ <File
RelativePath="..\svg\SVGPatternElement.h"
>
</File>
@@ -50145,31 +50365,51 @@
>
</File>
<File
- RelativePath="..\storage\IDBDatabase.h"
+ RelativePath="..\storage\IDBCursor.cpp"
>
</File>
<File
- RelativePath="..\storage\IDBDatabaseError.h"
+ RelativePath="..\storage\IDBCursor.h"
>
</File>
<File
- RelativePath="..\storage\IDBDatabaseException.h"
+ RelativePath="..\storage\IDBCursorBackendImpl.cpp"
>
</File>
<File
- RelativePath="..\storage\IDBDatabaseImpl.cpp"
+ RelativePath="..\storage\IDBCursorBackendImpl.h"
>
</File>
<File
- RelativePath="..\storage\IDBDatabaseImpl.h"
+ RelativePath="..\storage\IDBCursorBackendInterface.h"
>
</File>
<File
- RelativePath="..\storage\IDBDatabaseRequest.cpp"
+ RelativePath="..\storage\IDBDatabase.cpp"
>
</File>
<File
- RelativePath="..\storage\IDBDatabaseRequest.h"
+ RelativePath="..\storage\IDBDatabase.h"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBDatabaseBackendImpl.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBDatabaseBackendImpl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBDatabaseBackendInterface.h"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBDatabaseError.h"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBDatabaseException.h"
>
</File>
<File
@@ -50189,15 +50429,35 @@
>
</File>
<File
- RelativePath="..\storage\IDBIndex.cpp"
+ RelativePath="..\storage\IDBFactory.cpp"
>
</File>
<File
- RelativePath="..\storage\IDBIndex.h"
+ RelativePath="..\storage\IDBFactory.h"
>
</File>
<File
- RelativePath="..\storage\IDBIndexBackendInterface.h"
+ RelativePath="..\storage\IDBFactoryBackendImpl.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBFactoryBackendImpl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBFactoryBackendInterface.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBFactoryBackendInterface.h"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBIndex.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\storage\IDBIndex.h"
>
</File>
<File
@@ -50209,6 +50469,10 @@
>
</File>
<File
+ RelativePath="..\storage\IDBIndexBackendInterface.h"
+ >
+ </File>
+ <File
RelativePath="..\storage\IDBKey.cpp"
>
</File>
@@ -50225,23 +50489,23 @@
>
</File>
<File
- RelativePath="..\storage\IDBObjectStore.h"
+ RelativePath="..\storage\IDBObjectStore.cpp"
>
</File>
<File
- RelativePath="..\storage\IDBObjectStoreImpl.cpp"
+ RelativePath="..\storage\IDBObjectStore.h"
>
</File>
<File
- RelativePath="..\storage\IDBObjectStoreImpl.h"
+ RelativePath="..\storage\IDBObjectStoreBackendImpl.cpp"
>
</File>
<File
- RelativePath="..\storage\IDBObjectStoreRequest.cpp"
+ RelativePath="..\storage\IDBObjectStoreBackendImpl.h"
>
</File>
<File
- RelativePath="..\storage\IDBObjectStoreRequest.h"
+ RelativePath="..\storage\IDBObjectStoreBackendInterface.h"
>
</File>
<File
@@ -50260,28 +50524,12 @@
RelativePath="..\storage\IDBSuccessEvent.h"
>
</File>
- <File
- RelativePath="..\storage\IDBFactory.cpp"
- >
- </File>
- <File
- RelativePath="..\storage\IDBFactory.h"
- >
- </File>
- <File
- RelativePath="..\storage\IDBFactoryBackendInterface.cpp"
- >
- </File>
- <File
- RelativePath="..\storage\IDBFactoryBackendInterface.h"
- >
- </File>
<File
- RelativePath="..\storage\IDBFactoryBackendImpl.cpp"
+ RelativePath="..\storage\IDBTransaction.cpp"
>
</File>
<File
- RelativePath="..\storage\IDBFactoryBackendImpl.h"
+ RelativePath="..\storage\IDBTransaction.h"
>
</File>
<File
@@ -50709,27 +50957,27 @@
>
</File>
<File
- RelativePath="..\inspector\InspectorDOMAgent.cpp"
+ RelativePath="..\inspector\InspectorDebuggerAgent.cpp"
>
</File>
<File
- RelativePath="..\inspector\InspectorDOMAgent.h"
+ RelativePath="..\inspector\InspectorDebuggerAgent.h"
>
</File>
<File
- RelativePath="..\inspector\InspectorDOMStorageResource.cpp"
+ RelativePath="..\inspector\InspectorDOMAgent.cpp"
>
</File>
<File
- RelativePath="..\inspector\InspectorDOMStorageResource.h"
+ RelativePath="..\inspector\InspectorDOMAgent.h"
>
</File>
<File
- RelativePath="..\inspector\InspectorFrontend.cpp"
+ RelativePath="..\inspector\InspectorDOMStorageResource.cpp"
>
</File>
<File
- RelativePath="..\inspector\InspectorFrontend.h"
+ RelativePath="..\inspector\InspectorDOMStorageResource.h"
>
</File>
<File
@@ -50761,6 +51009,14 @@
>
</File>
<File
+ RelativePath="..\inspector\InspectorStorageAgent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\inspector\InspectorStorageAgent.h"
+ >
+ </File>
+ <File
RelativePath="..\inspector\InspectorTimelineAgent.cpp"
>
</File>
@@ -51625,6 +51881,122 @@
>
</File>
</Filter>
+ <Filter
+ Name="mathml"
+ >
+ <File
+ RelativePath="..\mathml\MathMLElement.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\MathMLElement.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\MathMLInlineContainerElement.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\MathMLInlineContainerElement.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\MathMLMathElement.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\MathMLMathElement.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\MathMLTextElement.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\MathMLTextElement.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLBlock.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLBlock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLFenced.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLFenced.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLFraction.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLFraction.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLMath.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLMath.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLOperator.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLOperator.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLRoot.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLRoot.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLRow.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLRow.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLSquareRoot.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLSquareRoot.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLSubSup.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLSubSup.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLUnderOver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\mathml\RenderMathMLUnderOver.h"
+ >
+ </File>
+ </Filter>
<File
RelativePath="..\config.h"
>
diff --git a/WebCore/WebCore.vcproj/WebCoreCommon.vsprops b/WebCore/WebCore.vcproj/WebCoreCommon.vsprops
index 25fa58e..579a610 100644
--- a/WebCore/WebCore.vcproj/WebCoreCommon.vsprops
+++ b/WebCore/WebCore.vcproj/WebCoreCommon.vsprops
@@ -7,7 +7,7 @@
>
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="&quot;$(ProjectDir)..&quot;;&quot;$(ProjectDir)..\accessibility&quot;;&quot;$(ProjectDir)..\accessibility\win&quot;;&quot;$(ProjectDir)..\bridge&quot;;&quot;$(ProjectDir)..\bridge\c&quot;;&quot;$(ProjectDir)..\bridge\jsc&quot;;&quot;$(ProjectDir)..\css&quot;;&quot;$(ProjectDir)..\editing&quot;;&quot;$(ProjectDir)..\rendering&quot;;&quot;$(ProjectDir)..\rendering\style&quot;;&quot;$(ProjectDir)..\bindings&quot;;&quot;$(ProjectDir)..\bindings\generic&quot;;&quot;$(ProjectDir)..\bindings\js&quot;;&quot;$(ProjectDir)..\dom&quot;;&quot;$(ProjectDir)..\dom\default&quot;;&quot;$(ProjectDir)..\history&quot;;&quot;$(ProjectDir)..\html&quot;;&quot;$(ProjectDir)..\html\canvas&quot;;&quot;$(ProjectDir)..\inspector&quot;;&quot;$(ProjectDir)..\loader&quot;;&quot;$(ProjectDir)..\loader\appcache&quot;;&quot;$(ProjectDir)..\loader\archive&quot;;&quot;$(ProjectDir)..\loader\archive\cf&quot;;&quot;$(ProjectDir)..\loader\icon&quot;;&quot;$(ProjectDir)..\notifications&quot;;&quot;$(ProjectDir)..\page&quot;;&quot;$(ProjectDir)..\page\animation&quot;;&quot;$(ProjectDir)..\page\win&quot;;&quot;$(ProjectDir)..\platform&quot;;&quot;$(ProjectDir)..\platform\animation&quot;;&quot;$(ProjectDir)..\platform\mock&quot;;&quot;$(ProjectDir)..\platform\sql&quot;;&quot;$(ProjectDir)..\platform\win&quot;;&quot;$(ProjectDir)..\platform\network&quot;;&quot;$(ProjectDir)..\platform\network\win&quot;;&quot;$(ProjectDir)..\platform\cf&quot;;&quot;$(ProjectDir)..\platform\graphics&quot;;&quot;$(ProjectDir)..\platform\graphics\filters&quot;;&quot;$(ProjectDir)..\platform\graphics\opentype&quot;;&quot;$(ProjectDir)..\platform\graphics\transforms&quot;;&quot;$(ProjectDir)..\platform\text&quot;;&quot;$(ProjectDir)..\platform\text\transcoder&quot;;&quot;$(ProjectDir)..\platform\graphics\win&quot;;&quot;$(ProjectDir)..\xml&quot;;&quot;$(WebKitOutputDir)\obj\WebCore\DerivedSources&quot;;&quot;$(ProjectDir)..\plugins&quot;;&quot;$(ProjectDir)..\plugins\win&quot;;&quot;$(ProjectDir)..\svg\animation&quot;;&quot;$(ProjectDir)..\svg\graphics&quot;;&quot;$(ProjectDir)..\svg\graphics\filters&quot;;&quot;$(ProjectDir)..\svg&quot;;&quot;$(ProjectDir)..\wml&quot;;&quot;$(ProjectDir)..\storage&quot;;&quot;$(ProjectDir)..\websockets&quot;;&quot;$(ProjectDir)..\workers&quot;;&quot;$(WebKitOutputDir)\include&quot;;&quot;$(WebKitOutputDir)\include\private&quot;;&quot;$(WebKitOutputDir)\include\JavaScriptCore&quot;;&quot;$(WebKitOutputDir)\include\private\JavaScriptCore&quot;;&quot;$(ProjectDir)..\ForwardingHeaders&quot;;&quot;$(WebKitLibrariesDir)\include&quot;;&quot;$(WebKitLibrariesDir)\include\private&quot;;&quot;$(WebKitLibrariesDir)\include\private\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitLibrariesDir)\include\sqlite&quot;;&quot;$(WebKitLibrariesDir)\include\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\include\zlib&quot;"
+ AdditionalIncludeDirectories="&quot;$(ProjectDir)..&quot;;&quot;$(ProjectDir)..\accessibility&quot;;&quot;$(ProjectDir)..\accessibility\win&quot;;&quot;$(ProjectDir)..\bridge&quot;;&quot;$(ProjectDir)..\bridge\c&quot;;&quot;$(ProjectDir)..\bridge\jsc&quot;;&quot;$(ProjectDir)..\css&quot;;&quot;$(ProjectDir)..\editing&quot;;&quot;$(ProjectDir)..\rendering&quot;;&quot;$(ProjectDir)..\rendering\style&quot;;&quot;$(ProjectDir)..\bindings&quot;;&quot;$(ProjectDir)..\bindings\generic&quot;;&quot;$(ProjectDir)..\bindings\js&quot;;&quot;$(ProjectDir)..\dom&quot;;&quot;$(ProjectDir)..\dom\default&quot;;&quot;$(ProjectDir)..\history&quot;;&quot;$(ProjectDir)..\html&quot;;&quot;$(ProjectDir)..\html\canvas&quot;;&quot;$(ProjectDir)..\inspector&quot;;&quot;$(ProjectDir)..\loader&quot;;&quot;$(ProjectDir)..\loader\appcache&quot;;&quot;$(ProjectDir)..\loader\archive&quot;;&quot;$(ProjectDir)..\loader\archive\cf&quot;;&quot;$(ProjectDir)..\loader\icon&quot;;&quot;$(ProjectDir)..\mathml&quot;;&quot;$(ProjectDir)..\notifications&quot;;&quot;$(ProjectDir)..\page&quot;;&quot;$(ProjectDir)..\page\animation&quot;;&quot;$(ProjectDir)..\page\win&quot;;&quot;$(ProjectDir)..\platform&quot;;&quot;$(ProjectDir)..\platform\animation&quot;;&quot;$(ProjectDir)..\platform\mock&quot;;&quot;$(ProjectDir)..\platform\sql&quot;;&quot;$(ProjectDir)..\platform\win&quot;;&quot;$(ProjectDir)..\platform\network&quot;;&quot;$(ProjectDir)..\platform\network\win&quot;;&quot;$(ProjectDir)..\platform\cf&quot;;&quot;$(ProjectDir)..\platform\graphics&quot;;&quot;$(ProjectDir)..\platform\graphics\filters&quot;;&quot;$(ProjectDir)..\platform\graphics\opentype&quot;;&quot;$(ProjectDir)..\platform\graphics\transforms&quot;;&quot;$(ProjectDir)..\platform\text&quot;;&quot;$(ProjectDir)..\platform\text\transcoder&quot;;&quot;$(ProjectDir)..\platform\graphics\win&quot;;&quot;$(ProjectDir)..\xml&quot;;&quot;$(WebKitOutputDir)\obj\WebCore\DerivedSources&quot;;&quot;$(ProjectDir)..\plugins&quot;;&quot;$(ProjectDir)..\plugins\win&quot;;&quot;$(ProjectDir)..\svg\animation&quot;;&quot;$(ProjectDir)..\svg\graphics&quot;;&quot;$(ProjectDir)..\svg\graphics\filters&quot;;&quot;$(ProjectDir)..\svg&quot;;&quot;$(ProjectDir)..\wml&quot;;&quot;$(ProjectDir)..\storage&quot;;&quot;$(ProjectDir)..\websockets&quot;;&quot;$(ProjectDir)..\workers&quot;;&quot;$(WebKitOutputDir)\include&quot;;&quot;$(WebKitOutputDir)\include\private&quot;;&quot;$(WebKitOutputDir)\include\JavaScriptCore&quot;;&quot;$(WebKitOutputDir)\include\private\JavaScriptCore&quot;;&quot;$(ProjectDir)..\ForwardingHeaders&quot;;&quot;$(WebKitLibrariesDir)\include&quot;;&quot;$(WebKitLibrariesDir)\include\private&quot;;&quot;$(WebKitLibrariesDir)\include\private\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitLibrariesDir)\include\sqlite&quot;;&quot;$(WebKitLibrariesDir)\include\JavaScriptCore&quot;;&quot;$(WebKitLibrariesDir)\include\zlib&quot;"
PreprocessorDefinitions="__WIN32__;DISABLE_3D_RENDERING;WEBCORE_CONTEXT_MENUS"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="WebCorePrefix.h"
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index 853d1ca..9e54ab5 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -233,6 +233,8 @@
0F580D000F12DE9B0051D689 /* RenderLayerBacking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F580CFC0F12DE9B0051D689 /* RenderLayerBacking.cpp */; };
0F5B7A5410F65D7A00376302 /* RenderEmbeddedObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F5B7A5210F65D7A00376302 /* RenderEmbeddedObject.cpp */; };
0F5B7A5510F65D7A00376302 /* RenderEmbeddedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5B7A5310F65D7A00376302 /* RenderEmbeddedObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 0F69B9C9120FE1D6000E1FC7 /* RenderMathMLFenced.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F69B9C7120FE1D6000E1FC7 /* RenderMathMLFenced.cpp */; };
+ 0F69B9CA120FE1D6000E1FC7 /* RenderMathMLFenced.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F69B9C8120FE1D6000E1FC7 /* RenderMathMLFenced.h */; };
0F6ECD450F252F3700BDE271 /* CSSPropertyLonghand.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F6ECD430F252F3700BDE271 /* CSSPropertyLonghand.h */; };
0F6ECD460F252F3700BDE271 /* CSSPropertyLonghand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F6ECD440F252F3700BDE271 /* CSSPropertyLonghand.cpp */; };
0FC705210EB1815600B90AD8 /* AtomicStringHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FC705200EB1815600B90AD8 /* AtomicStringHash.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -750,6 +752,16 @@
31C0FF4C0E4CEFDD007D6FE5 /* DOMWebKitTransitionEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 31C0FF460E4CEFDD007D6FE5 /* DOMWebKitTransitionEvent.h */; };
31C0FF4D0E4CEFDD007D6FE5 /* DOMWebKitTransitionEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = 31C0FF470E4CEFDD007D6FE5 /* DOMWebKitTransitionEvent.mm */; };
31C0FF4E0E4CEFDD007D6FE5 /* DOMWebKitTransitionEventInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 31C0FF480E4CEFDD007D6FE5 /* DOMWebKitTransitionEventInternal.h */; };
+ 31FB1A57120A5D0600DC02A0 /* DeviceMotionClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FB1A4F120A5D0600DC02A0 /* DeviceMotionClient.h */; };
+ 31FB1A58120A5D0600DC02A0 /* DeviceMotionController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31FB1A50120A5D0600DC02A0 /* DeviceMotionController.cpp */; };
+ 31FB1A59120A5D0600DC02A0 /* DeviceMotionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FB1A51120A5D0600DC02A0 /* DeviceMotionController.h */; };
+ 31FB1A5A120A5D0600DC02A0 /* DeviceMotionData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31FB1A52120A5D0600DC02A0 /* DeviceMotionData.cpp */; };
+ 31FB1A5B120A5D0600DC02A0 /* DeviceMotionData.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FB1A53120A5D0600DC02A0 /* DeviceMotionData.h */; };
+ 31FB1A5C120A5D0600DC02A0 /* DeviceMotionEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31FB1A54120A5D0600DC02A0 /* DeviceMotionEvent.cpp */; };
+ 31FB1A5D120A5D0600DC02A0 /* DeviceMotionEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FB1A55120A5D0600DC02A0 /* DeviceMotionEvent.h */; };
+ 31FB1A65120A5D3F00DC02A0 /* JSDeviceMotionEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31FB1A63120A5D3F00DC02A0 /* JSDeviceMotionEvent.cpp */; };
+ 31FB1A66120A5D3F00DC02A0 /* JSDeviceMotionEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FB1A64120A5D3F00DC02A0 /* JSDeviceMotionEvent.h */; };
+ 31FB1A6C120A5D6900DC02A0 /* JSDeviceMotionEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31FB1A6B120A5D6900DC02A0 /* JSDeviceMotionEventCustom.cpp */; };
3314ACEB10892086000F0E56 /* JSExceptionBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3314ACE910892086000F0E56 /* JSExceptionBase.cpp */; };
3314ACEC10892086000F0E56 /* JSExceptionBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3314ACEA10892086000F0E56 /* JSExceptionBase.h */; };
33503C9A10179A74003B47E1 /* NotificationPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 33503C9910179A74003B47E1 /* NotificationPresenter.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -794,6 +806,7 @@
37C238211098C84200EF9F72 /* ComplexTextControllerATSUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37C2381F1098C84200EF9F72 /* ComplexTextControllerATSUI.cpp */; };
37C238221098C84200EF9F72 /* ComplexTextControllerCoreText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37C238201098C84200EF9F72 /* ComplexTextControllerCoreText.cpp */; };
37C28A6810F659CC008C7813 /* TypesettingFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C28A6710F659CC008C7813 /* TypesettingFeatures.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 37C61F0112095C87007A3C67 /* AtomicStringKeyedMRUCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C61F0012095C87007A3C67 /* AtomicStringKeyedMRUCache.h */; };
37F818FD0D657606005E1F05 /* WebCoreURLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 37F818FB0D657606005E1F05 /* WebCoreURLResponse.h */; settings = {ATTRIBUTES = (Private, ); }; };
37F818FE0D657606005E1F05 /* WebCoreURLResponse.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37F818FC0D657606005E1F05 /* WebCoreURLResponse.mm */; };
37FD4298118368460093C029 /* TreeDepthLimit.h in Headers */ = {isa = PBXBuildFile; fileRef = 37FD4297118368460093C029 /* TreeDepthLimit.h */; };
@@ -918,8 +931,8 @@
49C7B9CC1042D32F0009D447 /* Int8Array.h in Headers */ = {isa = PBXBuildFile; fileRef = 49C7B9AC1042D32E0009D447 /* Int8Array.h */; };
49C7B9CE1042D32F0009D447 /* WebGLFramebuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49C7B9AE1042D32E0009D447 /* WebGLFramebuffer.cpp */; };
49C7B9CF1042D32F0009D447 /* WebGLFramebuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 49C7B9AF1042D32E0009D447 /* WebGLFramebuffer.h */; };
- 49C7B9D41042D32F0009D447 /* CanvasObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49C7B9B41042D32F0009D447 /* CanvasObject.cpp */; };
- 49C7B9D51042D32F0009D447 /* CanvasObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 49C7B9B51042D32F0009D447 /* CanvasObject.h */; };
+ 49C7B9D41042D32F0009D447 /* WebGLObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49C7B9B41042D32F0009D447 /* WebGLObject.cpp */; };
+ 49C7B9D51042D32F0009D447 /* WebGLObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 49C7B9B51042D32F0009D447 /* WebGLObject.h */; };
49C7B9D61042D32F0009D447 /* WebGLProgram.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49C7B9B61042D32F0009D447 /* WebGLProgram.cpp */; };
49C7B9D71042D32F0009D447 /* WebGLProgram.h in Headers */ = {isa = PBXBuildFile; fileRef = 49C7B9B71042D32F0009D447 /* WebGLProgram.h */; };
49C7B9D91042D32F0009D447 /* WebGLRenderbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49C7B9B91042D32F0009D447 /* WebGLRenderbuffer.cpp */; };
@@ -1400,8 +1413,6 @@
7A0E770F10C00A8800A0276E /* InspectorFrontendHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0E770C10C00A8800A0276E /* InspectorFrontendHost.h */; };
7A0E771E10C00DB100A0276E /* JSInspectorFrontendHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A0E771C10C00DB100A0276E /* JSInspectorFrontendHost.cpp */; };
7A0E771F10C00DB100A0276E /* JSInspectorFrontendHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0E771D10C00DB100A0276E /* JSInspectorFrontendHost.h */; };
- 7A1E88F5101CC384000C4DF5 /* ScriptArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A1E88F3101CC384000C4DF5 /* ScriptArray.cpp */; };
- 7A1E88F6101CC384000C4DF5 /* ScriptArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A1E88F4101CC384000C4DF5 /* ScriptArray.h */; settings = {ATTRIBUTES = (Private, ); }; };
7A24587B1021EAF4000A00AA /* InspectorDOMAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A2458791021EAF4000A00AA /* InspectorDOMAgent.cpp */; };
7A24587C1021EAF4000A00AA /* InspectorDOMAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A24587A1021EAF4000A00AA /* InspectorDOMAgent.h */; settings = {ATTRIBUTES = (Private, ); }; };
7A674BDB0F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */; };
@@ -1409,13 +1420,27 @@
7A74ECBA101839A600BF939E /* InspectorBackend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A74ECB8101839A500BF939E /* InspectorBackend.cpp */; };
7A74ECBB101839A600BF939E /* InspectorBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A74ECB9101839A600BF939E /* InspectorBackend.h */; };
7A74ECBD101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A74ECBC101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp */; };
+ 7AB0B1C01211A62200A76940 /* InspectorStorageAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AB0B1BE1211A62200A76940 /* InspectorStorageAgent.cpp */; };
+ 7AB0B1C11211A62200A76940 /* InspectorStorageAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AB0B1BF1211A62200A76940 /* InspectorStorageAgent.h */; };
7ADE722610CBBB9B006B3B3A /* ContextMenuProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ADE722510CBBB9B006B3B3A /* ContextMenuProvider.h */; };
- 7AED3E050FBB1EAA00D2B03C /* InspectorFrontend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AED3E030FBB1EAA00D2B03C /* InspectorFrontend.cpp */; };
- 7AED3E060FBB1EAA00D2B03C /* InspectorFrontend.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AED3E040FBB1EAA00D2B03C /* InspectorFrontend.h */; };
7AFD4A8B1131C2760035B883 /* ScriptBreakpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AFD4A8A1131C2760035B883 /* ScriptBreakpoint.h */; settings = {ATTRIBUTES = (Private, ); }; };
7AFD4FF4113277B60035B883 /* ScriptDebugListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AFD4FF3113277B60035B883 /* ScriptDebugListener.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 81A7325E1210189B00FC0D9E /* IDBCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 81A7325D1210189B00FC0D9E /* IDBCursor.h */; };
+ 81A73260121018A400FC0D9E /* IDBCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 81A7325F121018A400FC0D9E /* IDBCursor.cpp */; };
+ 81A73278121019E100FC0D9E /* IDBCursorBackendImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 81A73277121019E100FC0D9E /* IDBCursorBackendImpl.h */; };
+ 81BE209811F4AB8D00915DFA /* IDBCursorBackendImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 81BE209311F4AB8D00915DFA /* IDBCursorBackendImpl.cpp */; };
+ 81BE209911F4AB8D00915DFA /* IDBCursorBackendInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BE209411F4AB8D00915DFA /* IDBCursorBackendInterface.h */; };
+ 81BE20D211F4BC3200915DFA /* JSIDBCursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 81BE20A711F4B66F00915DFA /* JSIDBCursor.cpp */; };
+ 81BE20D311F4BC3200915DFA /* JSIDBCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 81BE20A811F4B66F00915DFA /* JSIDBCursor.h */; };
82B658981189E39200E052A1 /* InspectorCSSStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 82B658971189E39200E052A1 /* InspectorCSSStore.h */; settings = {ATTRIBUTES = (Private, ); }; };
82B6589A1189E47600E052A1 /* InspectorCSSStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 82B658991189E47600E052A1 /* InspectorCSSStore.cpp */; };
+ 8419D2A7120D92D000141F8F /* SVGPathByteStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2A4120D92D000141F8F /* SVGPathByteStream.h */; };
+ 8419D2A8120D92D000141F8F /* SVGPathByteStreamBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */; };
+ 8419D2A9120D92D000141F8F /* SVGPathByteStreamBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2A6120D92D000141F8F /* SVGPathByteStreamBuilder.h */; };
+ 8419D2AC120D92FC00141F8F /* SVGPathByteStreamSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8419D2AA120D92FC00141F8F /* SVGPathByteStreamSource.cpp */; };
+ 8419D2AD120D92FC00141F8F /* SVGPathByteStreamSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2AB120D92FC00141F8F /* SVGPathByteStreamSource.h */; };
+ 8419D2B9120E0C7600141F8F /* SVGPathStringBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8419D2B7120E0C7600141F8F /* SVGPathStringBuilder.cpp */; };
+ 8419D2BA120E0C7600141F8F /* SVGPathStringBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2B8120E0C7600141F8F /* SVGPathStringBuilder.h */; };
841FDC261178C9BE00F8AC9B /* RenderSVGResourceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841FDC241178C9BE00F8AC9B /* RenderSVGResourceFilter.cpp */; };
841FDC271178C9BE00F8AC9B /* RenderSVGResourceFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 841FDC251178C9BE00F8AC9B /* RenderSVGResourceFilter.h */; };
84224183107E77F400766A87 /* JSSVGFEMorphologyElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84224181107E77F400766A87 /* JSSVGFEMorphologyElement.cpp */; };
@@ -1425,6 +1450,11 @@
8422418E107E786F00766A87 /* DOMSVGFEMorphologyElementInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8422418B107E786F00766A87 /* DOMSVGFEMorphologyElementInternal.h */; };
84224193107E78A700766A87 /* SVGFEMorphologyElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84224190107E78A700766A87 /* SVGFEMorphologyElement.cpp */; };
84224194107E78A700766A87 /* SVGFEMorphologyElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 84224191107E78A700766A87 /* SVGFEMorphologyElement.h */; };
+ 84300BD3120C9A710021954A /* SVGPathParserFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84300BD1120C9A710021954A /* SVGPathParserFactory.cpp */; };
+ 84300BD4120C9A710021954A /* SVGPathParserFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 84300BD2120C9A710021954A /* SVGPathParserFactory.h */; };
+ 84300BD6120C9AAC0021954A /* SVGPathStringSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 84300BD5120C9AAC0021954A /* SVGPathStringSource.h */; };
+ 84300BD8120C9AD40021954A /* SVGPathSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 84300BD7120C9AD40021954A /* SVGPathSource.h */; };
+ 84300BDA120C9AED0021954A /* SVGPathStringSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84300BD9120C9AED0021954A /* SVGPathStringSource.cpp */; };
845E72F80FD261EE00A87D79 /* Filter.h in Headers */ = {isa = PBXBuildFile; fileRef = 845E72F70FD261EE00A87D79 /* Filter.h */; };
845E72FB0FD2623900A87D79 /* SVGFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 845E72F90FD2623900A87D79 /* SVGFilter.cpp */; };
845E72FC0FD2623900A87D79 /* SVGFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 845E72FA0FD2623900A87D79 /* SVGFilter.h */; };
@@ -1454,6 +1484,8 @@
84A81F3E0FC7DFF000955300 /* SourceAlpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 84A81F3C0FC7DFF000955300 /* SourceAlpha.h */; };
84A81F410FC7E02700955300 /* SourceGraphic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84A81F3F0FC7E02700955300 /* SourceGraphic.cpp */; };
84A81F420FC7E02700955300 /* SourceGraphic.h in Headers */ = {isa = PBXBuildFile; fileRef = 84A81F400FC7E02700955300 /* SourceGraphic.h */; };
+ 84B6B977120F13E500B8EFAF /* SVGPathSegListSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B6B975120F13E500B8EFAF /* SVGPathSegListSource.cpp */; };
+ 84B6B978120F13E500B8EFAF /* SVGPathSegListSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B6B976120F13E500B8EFAF /* SVGPathSegListSource.h */; };
84BDA16B11358D2A00DBF64C /* RenderSVGResourceClipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84BDA16911358D2A00DBF64C /* RenderSVGResourceClipper.cpp */; };
84BDA16C11358D2A00DBF64C /* RenderSVGResourceClipper.h in Headers */ = {isa = PBXBuildFile; fileRef = 84BDA16A11358D2A00DBF64C /* RenderSVGResourceClipper.h */; };
84D0C4041115F1D40018AA34 /* AffineTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84D0C4031115F1D40018AA34 /* AffineTransform.cpp */; };
@@ -2340,6 +2372,10 @@
89CD029311C85B870070B791 /* JSBlobBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 89CD029111C85B870070B791 /* JSBlobBuilder.cpp */; };
89CD029411C85B870070B791 /* JSBlobBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 89CD029211C85B870070B791 /* JSBlobBuilder.h */; };
8A12E35D11FA33280025836A /* DocumentLoadTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A12E35C11FA33280025836A /* DocumentLoadTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 8A413AE01207BBA50082016E /* AsyncScriptRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A413ADE1207BBA50082016E /* AsyncScriptRunner.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 8A413AE11207BBA50082016E /* AsyncScriptRunner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A413ADF1207BBA50082016E /* AsyncScriptRunner.cpp */; };
+ 8A7CC96B12076D73001D4588 /* PendingScript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A7CC96A12076D73001D4588 /* PendingScript.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 8A7CC97012076F8A001D4588 /* PendingScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A7CC96F12076F8A001D4588 /* PendingScript.cpp */; };
8A81BF8511DCFD9000DA2B98 /* ResourceLoadTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A81BF8411DCFD9000DA2B98 /* ResourceLoadTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
8A844D0411D3C18E0014065C /* Performance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A844D0111D3C18E0014065C /* Performance.cpp */; };
8A844D0511D3C18E0014065C /* Performance.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A844D0211D3C18E0014065C /* Performance.h */; };
@@ -2466,7 +2502,6 @@
934F71440D5A6F5300018D69 /* AuthenticationChallenge.h in Headers */ = {isa = PBXBuildFile; fileRef = 934F71430D5A6F5300018D69 /* AuthenticationChallenge.h */; settings = {ATTRIBUTES = (Private, ); }; };
934FE9E50B5CA539003E4A73 /* FileChooser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 934FE9E40B5CA539003E4A73 /* FileChooser.cpp */; };
935207BE09BD410A00F2038D /* LocalizedStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = 935207BD09BD410A00F2038D /* LocalizedStrings.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 935207C009BD412100F2038D /* LocalizedStringsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 935207BF09BD412000F2038D /* LocalizedStringsMac.mm */; };
9352084509BD43B900F2038D /* Language.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9352084409BD43B900F2038D /* Language.mm */; };
9352087709BD453400F2038D /* CookieJar.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9352087609BD453400F2038D /* CookieJar.mm */; };
9352088209BD45E900F2038D /* CookieJar.h in Headers */ = {isa = PBXBuildFile; fileRef = 9352088109BD45E900F2038D /* CookieJar.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -3135,6 +3170,7 @@
A8A564A611DC0E59003AC2F0 /* HTMLFormattingElementList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A564A411DC0E59003AC2F0 /* HTMLFormattingElementList.cpp */; };
A8A909AC0CBCD6B50029B807 /* RenderSVGTransformableContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A909AA0CBCD6B50029B807 /* RenderSVGTransformableContainer.h */; };
A8A909AD0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A909AB0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp */; };
+ A8BCFD05120A046100B5F122 /* SVGPathSeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8BCFD04120A046100B5F122 /* SVGPathSeg.cpp */; };
A8C2280E11D4A59700D5A7D3 /* DocumentParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C2280D11D4A59700D5A7D3 /* DocumentParser.cpp */; };
A8C228A111D5722E00D5A7D3 /* DecodedDataDocumentParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C2289F11D5722E00D5A7D3 /* DecodedDataDocumentParser.h */; };
A8C228A211D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C228A011D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp */; };
@@ -4330,7 +4366,6 @@
B550B52611DC68A800923885 /* SQLStatementSync.h in Headers */ = {isa = PBXBuildFile; fileRef = B550B52211DC68A800923885 /* SQLStatementSync.h */; };
B55D5AA4119131FC00BCC315 /* JSSQLTransactionSyncCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B55D5AA2119131FC00BCC315 /* JSSQLTransactionSyncCallback.h */; };
B55D5AA5119131FC00BCC315 /* JSSQLTransactionSyncCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55D5AA3119131FC00BCC315 /* JSSQLTransactionSyncCallback.cpp */; };
- B55D5AA81191325000BCC315 /* JSDatabaseSyncCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55D5AA61191325000BCC315 /* JSDatabaseSyncCustom.cpp */; };
B55D5AA91191325000BCC315 /* JSSQLTransactionSyncCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B55D5AA71191325000BCC315 /* JSSQLTransactionSyncCustom.cpp */; };
B56EBA8511C9FF8100B04477 /* SQLException.h in Headers */ = {isa = PBXBuildFile; fileRef = B56EBA8311C9FF8100B04477 /* SQLException.h */; };
B58CEB6911913607002A6790 /* JSDatabaseSync.h in Headers */ = {isa = PBXBuildFile; fileRef = B58CEB6711913607002A6790 /* JSDatabaseSync.h */; };
@@ -4353,7 +4388,16 @@
B5B5DC6A119BB3D5002A8790 /* AbstractDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B5DC68119BB3D5002A8790 /* AbstractDatabase.h */; settings = {ATTRIBUTES = (Private, ); }; };
B5C1123B102B6C4600096578 /* SQLTransactionCoordinator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5C11239102B6C4600096578 /* SQLTransactionCoordinator.cpp */; };
B5C1123C102B6C4600096578 /* SQLTransactionCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = B5C1123A102B6C4600096578 /* SQLTransactionCoordinator.h */; };
+ B5D31DFA11CF610B009F22B4 /* ActiveDOMCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */; };
+ B5D31DFB11CF610B009F22B4 /* ActiveDOMCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */; };
B5D3601A112F8B560048DEA8 /* DatabaseCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D36019112F8B560048DEA8 /* DatabaseCallback.h */; };
+ B61762541203374F00EF9114 /* IDBDatabaseBackendInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = B61762531203374F00EF9114 /* IDBDatabaseBackendInterface.h */; };
+ B61762621203490800EF9114 /* IDBDatabaseBackendImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = B61762611203490800EF9114 /* IDBDatabaseBackendImpl.h */; };
+ B656626A120B115A006EA85C /* IDBTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6566267120B115A006EA85C /* IDBTransaction.cpp */; };
+ B656626B120B115A006EA85C /* IDBTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = B6566268120B115A006EA85C /* IDBTransaction.h */; };
+ B6566270120B1227006EA85C /* JSIDBTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = B656626E120B1227006EA85C /* JSIDBTransaction.h */; };
+ B6566271120B1227006EA85C /* JSIDBTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B656626F120B1227006EA85C /* JSIDBTransaction.cpp */; };
+ B691C1F91206D4A00025D980 /* IDBDatabase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6A311D4FB3D004C3E4B /* IDBDatabase.cpp */; };
B71FE6DF11091CB300DAEF77 /* PrintContext.h in Headers */ = {isa = PBXBuildFile; fileRef = B776D43A1104525D00BEB0EC /* PrintContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
B734B181119B9911006587BD /* FontTranscoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B734B180119B9911006587BD /* FontTranscoder.cpp */; };
B734B183119B991D006587BD /* FontTranscoder.h in Headers */ = {isa = PBXBuildFile; fileRef = B734B182119B991D006587BD /* FontTranscoder.h */; };
@@ -4779,7 +4823,6 @@
BCCBE7B50E07166900EAFA8E /* CSSVariableDependentValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCCBE7B40E07166900EAFA8E /* CSSVariableDependentValue.cpp */; };
BCCD74DC0A4C8D35005FDA6D /* HTMLViewSourceDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = BCCD74DB0A4C8D35005FDA6D /* HTMLViewSourceDocument.h */; };
BCCD74E50A4C8DDF005FDA6D /* HTMLViewSourceDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCCD74E40A4C8DDF005FDA6D /* HTMLViewSourceDocument.cpp */; };
- BCCE58AC1061E8CF008FB35A /* JSDatabaseCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCCE58AB1061E8CF008FB35A /* JSDatabaseCustom.cpp */; };
BCCFBAE80B5152ED0001F1D7 /* DocumentParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BCCFBAE70B5152ED0001F1D7 /* DocumentParser.h */; settings = {ATTRIBUTES = (Private, ); }; };
BCD0E0FA0E972C3500265DEA /* SecurityOrigin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCD0E0F70E972C3500265DEA /* SecurityOrigin.cpp */; };
BCD0E0FB0E972C3500265DEA /* SecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = BCD0E0F80E972C3500265DEA /* SecurityOrigin.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -4900,6 +4943,7 @@
BCFE2F120C1B58380020235F /* JSRect.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFE2F100C1B58370020235F /* JSRect.h */; };
BCFF64910EAD15C200C1D6F7 /* LengthBox.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFF648F0EAD15C200C1D6F7 /* LengthBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
BCFF64920EAD15C200C1D6F7 /* LengthSize.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFF64900EAD15C200C1D6F7 /* LengthSize.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ C046E1AC1208A9FE00BA2CF7 /* LocalizedStrings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C046E1AB1208A9FE00BA2CF7 /* LocalizedStrings.cpp */; };
C0C054CB1118C8E400CE2636 /* CodeGenerator.pm in Headers */ = {isa = PBXBuildFile; fileRef = 93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */; settings = {ATTRIBUTES = (Private, ); }; };
C0C054CC1118C8E400CE2636 /* generate-bindings.pl in Headers */ = {isa = PBXBuildFile; fileRef = 93F8B3070A300FEA00F61AB8 /* generate-bindings.pl */; settings = {ATTRIBUTES = (Private, ); }; };
C0C054CD1118C8E400CE2636 /* IDLParser.pm in Headers */ = {isa = PBXBuildFile; fileRef = 14813BF309EDF88E00F757E1 /* IDLParser.pm */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -4938,8 +4982,8 @@
C585A67F11D4FB08004C3E4B /* JSIDBDatabaseError.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A66711D4FB07004C3E4B /* JSIDBDatabaseError.h */; };
C585A68011D4FB08004C3E4B /* JSIDBDatabaseException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A66811D4FB07004C3E4B /* JSIDBDatabaseException.cpp */; };
C585A68111D4FB08004C3E4B /* JSIDBDatabaseException.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A66911D4FB07004C3E4B /* JSIDBDatabaseException.h */; };
- C585A68211D4FB08004C3E4B /* JSIDBDatabaseRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A66A11D4FB07004C3E4B /* JSIDBDatabaseRequest.cpp */; };
- C585A68311D4FB08004C3E4B /* JSIDBDatabaseRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A66B11D4FB07004C3E4B /* JSIDBDatabaseRequest.h */; };
+ C585A68211D4FB08004C3E4B /* JSIDBDatabase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A66A11D4FB07004C3E4B /* JSIDBDatabase.cpp */; };
+ C585A68311D4FB08004C3E4B /* JSIDBDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A66B11D4FB07004C3E4B /* JSIDBDatabase.h */; };
C585A68411D4FB08004C3E4B /* JSIDBErrorEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A66C11D4FB07004C3E4B /* JSIDBErrorEvent.cpp */; };
C585A68511D4FB08004C3E4B /* JSIDBErrorEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A66D11D4FB07004C3E4B /* JSIDBErrorEvent.h */; };
C585A68611D4FB08004C3E4B /* JSIDBEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A66E11D4FB07004C3E4B /* JSIDBEvent.cpp */; };
@@ -4948,8 +4992,8 @@
C585A68B11D4FB08004C3E4B /* JSIDBKey.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A67311D4FB07004C3E4B /* JSIDBKey.h */; };
C585A68C11D4FB08004C3E4B /* JSIDBKeyRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A67411D4FB07004C3E4B /* JSIDBKeyRange.cpp */; };
C585A68D11D4FB08004C3E4B /* JSIDBKeyRange.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A67511D4FB07004C3E4B /* JSIDBKeyRange.h */; };
- C585A68E11D4FB08004C3E4B /* JSIDBObjectStoreRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A67611D4FB07004C3E4B /* JSIDBObjectStoreRequest.cpp */; };
- C585A68F11D4FB08004C3E4B /* JSIDBObjectStoreRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A67711D4FB07004C3E4B /* JSIDBObjectStoreRequest.h */; };
+ C585A68E11D4FB08004C3E4B /* JSIDBObjectStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A67611D4FB07004C3E4B /* JSIDBObjectStore.cpp */; };
+ C585A68F11D4FB08004C3E4B /* JSIDBObjectStore.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A67711D4FB07004C3E4B /* JSIDBObjectStore.h */; };
C585A69011D4FB08004C3E4B /* JSIDBRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A67811D4FB07004C3E4B /* JSIDBRequest.cpp */; };
C585A69111D4FB08004C3E4B /* JSIDBRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A67911D4FB07004C3E4B /* JSIDBRequest.h */; };
C585A69211D4FB08004C3E4B /* JSIDBSuccessEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A67A11D4FB07004C3E4B /* JSIDBSuccessEvent.cpp */; };
@@ -4959,13 +5003,10 @@
C585A6CC11D4FB3D004C3E4B /* IDBAny.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A69811D4FB3D004C3E4B /* IDBAny.cpp */; };
C585A6CD11D4FB3D004C3E4B /* IDBAny.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A69911D4FB3D004C3E4B /* IDBAny.h */; };
C585A6CF11D4FB3D004C3E4B /* IDBCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A69B11D4FB3D004C3E4B /* IDBCallbacks.h */; };
- C585A6D011D4FB3D004C3E4B /* IDBDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A69C11D4FB3D004C3E4B /* IDBDatabase.h */; };
C585A6D111D4FB3D004C3E4B /* IDBDatabaseError.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A69D11D4FB3D004C3E4B /* IDBDatabaseError.h */; };
C585A6D311D4FB3D004C3E4B /* IDBDatabaseException.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A69F11D4FB3D004C3E4B /* IDBDatabaseException.h */; };
- C585A6D511D4FB3D004C3E4B /* IDBDatabaseImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6A111D4FB3D004C3E4B /* IDBDatabaseImpl.cpp */; };
- C585A6D611D4FB3D004C3E4B /* IDBDatabaseImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6A211D4FB3D004C3E4B /* IDBDatabaseImpl.h */; };
- C585A6D711D4FB3D004C3E4B /* IDBDatabaseRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6A311D4FB3D004C3E4B /* IDBDatabaseRequest.cpp */; };
- C585A6D811D4FB3D004C3E4B /* IDBDatabaseRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6A411D4FB3D004C3E4B /* IDBDatabaseRequest.h */; };
+ C585A6D511D4FB3D004C3E4B /* IDBDatabaseBackendImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6A111D4FB3D004C3E4B /* IDBDatabaseBackendImpl.cpp */; };
+ C585A6D811D4FB3D004C3E4B /* IDBDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6A411D4FB3D004C3E4B /* IDBDatabase.h */; };
C585A6DA11D4FB3D004C3E4B /* IDBErrorEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6A611D4FB3D004C3E4B /* IDBErrorEvent.cpp */; };
C585A6DB11D4FB3D004C3E4B /* IDBErrorEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6A711D4FB3D004C3E4B /* IDBErrorEvent.h */; };
C585A6DD11D4FB3D004C3E4B /* IDBEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6A911D4FB3D004C3E4B /* IDBEvent.cpp */; };
@@ -4976,10 +5017,10 @@
C585A6EA11D4FB3D004C3E4B /* IDBKeyRange.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6B611D4FB3D004C3E4B /* IDBKeyRange.h */; };
C585A6EC11D4FB3D004C3E4B /* IDBKeyTree.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6B811D4FB3D004C3E4B /* IDBKeyTree.h */; };
C585A6ED11D4FB3D004C3E4B /* IDBObjectStore.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6B911D4FB3D004C3E4B /* IDBObjectStore.h */; };
- C585A6EE11D4FB3D004C3E4B /* IDBObjectStoreImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6BA11D4FB3D004C3E4B /* IDBObjectStoreImpl.cpp */; };
- C585A6EF11D4FB3D004C3E4B /* IDBObjectStoreImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6BB11D4FB3D004C3E4B /* IDBObjectStoreImpl.h */; };
- C585A6F011D4FB3D004C3E4B /* IDBObjectStoreRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6BC11D4FB3D004C3E4B /* IDBObjectStoreRequest.cpp */; };
- C585A6F111D4FB3D004C3E4B /* IDBObjectStoreRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6BD11D4FB3D004C3E4B /* IDBObjectStoreRequest.h */; };
+ C585A6EE11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6BA11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.cpp */; };
+ C585A6EF11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6BB11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.h */; };
+ C585A6F011D4FB3D004C3E4B /* IDBObjectStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6BC11D4FB3D004C3E4B /* IDBObjectStore.cpp */; };
+ C585A6F111D4FB3D004C3E4B /* IDBObjectStoreBackendInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6BD11D4FB3D004C3E4B /* IDBObjectStoreBackendInterface.h */; };
C585A6F311D4FB3D004C3E4B /* IDBRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6BF11D4FB3D004C3E4B /* IDBRequest.cpp */; };
C585A6F411D4FB3D004C3E4B /* IDBRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C585A6C011D4FB3D004C3E4B /* IDBRequest.h */; };
C585A6F611D4FB3D004C3E4B /* IDBSuccessEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C585A6C211D4FB3D004C3E4B /* IDBSuccessEvent.cpp */; };
@@ -5185,6 +5226,9 @@
ED501DC60B249F2900AE18D9 /* EditorMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED501DC50B249F2900AE18D9 /* EditorMac.mm */; };
EDE3A5000C7A430600956A37 /* ColorMac.h in Headers */ = {isa = PBXBuildFile; fileRef = EDE3A4FF0C7A430600956A37 /* ColorMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
EDEC98030AED7E170059137F /* WebCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = EDEC98020AED7E170059137F /* WebCorePrefix.h */; };
+ F33F0282120947F200E5743A /* ScriptProfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F33F0281120947F200E5743A /* ScriptProfile.cpp */; };
+ F33F053D120B0DA500E5743A /* InspectorDebuggerAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F33F053B120B0DA500E5743A /* InspectorDebuggerAgent.cpp */; };
+ F33F053E120B0DA500E5743A /* InspectorDebuggerAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = F33F053C120B0DA500E5743A /* InspectorDebuggerAgent.h */; };
F344C7141125B82C00F26EEE /* InspectorFrontendClient.h in Headers */ = {isa = PBXBuildFile; fileRef = F344C7121125B82C00F26EEE /* InspectorFrontendClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
F344C75311294D9D00F26EEE /* InspectorFrontendClientLocal.h in Headers */ = {isa = PBXBuildFile; fileRef = F344C75211294D9D00F26EEE /* InspectorFrontendClientLocal.h */; settings = {ATTRIBUTES = (Private, ); }; };
F344C75811294FF600F26EEE /* InspectorFrontendClientLocal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F344C75711294FF600F26EEE /* InspectorFrontendClientLocal.cpp */; };
@@ -5895,6 +5939,8 @@
0F580CFC0F12DE9B0051D689 /* RenderLayerBacking.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderLayerBacking.cpp; sourceTree = "<group>"; };
0F5B7A5210F65D7A00376302 /* RenderEmbeddedObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderEmbeddedObject.cpp; sourceTree = "<group>"; };
0F5B7A5310F65D7A00376302 /* RenderEmbeddedObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderEmbeddedObject.h; sourceTree = "<group>"; };
+ 0F69B9C7120FE1D6000E1FC7 /* RenderMathMLFenced.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLFenced.cpp; sourceTree = "<group>"; };
+ 0F69B9C8120FE1D6000E1FC7 /* RenderMathMLFenced.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLFenced.h; sourceTree = "<group>"; };
0F6ECD430F252F3700BDE271 /* CSSPropertyLonghand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSPropertyLonghand.h; sourceTree = "<group>"; };
0F6ECD440F252F3700BDE271 /* CSSPropertyLonghand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSPropertyLonghand.cpp; sourceTree = "<group>"; };
0FC705200EB1815600B90AD8 /* AtomicStringHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AtomicStringHash.h; sourceTree = "<group>"; };
@@ -6465,6 +6511,17 @@
31C0FF460E4CEFDD007D6FE5 /* DOMWebKitTransitionEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMWebKitTransitionEvent.h; sourceTree = "<group>"; };
31C0FF470E4CEFDD007D6FE5 /* DOMWebKitTransitionEvent.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMWebKitTransitionEvent.mm; sourceTree = "<group>"; };
31C0FF480E4CEFDD007D6FE5 /* DOMWebKitTransitionEventInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMWebKitTransitionEventInternal.h; sourceTree = "<group>"; };
+ 31FB1A4F120A5D0600DC02A0 /* DeviceMotionClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceMotionClient.h; sourceTree = "<group>"; };
+ 31FB1A50120A5D0600DC02A0 /* DeviceMotionController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeviceMotionController.cpp; sourceTree = "<group>"; };
+ 31FB1A51120A5D0600DC02A0 /* DeviceMotionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceMotionController.h; sourceTree = "<group>"; };
+ 31FB1A52120A5D0600DC02A0 /* DeviceMotionData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeviceMotionData.cpp; sourceTree = "<group>"; };
+ 31FB1A53120A5D0600DC02A0 /* DeviceMotionData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceMotionData.h; sourceTree = "<group>"; };
+ 31FB1A54120A5D0600DC02A0 /* DeviceMotionEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeviceMotionEvent.cpp; sourceTree = "<group>"; };
+ 31FB1A55120A5D0600DC02A0 /* DeviceMotionEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceMotionEvent.h; sourceTree = "<group>"; };
+ 31FB1A56120A5D0600DC02A0 /* DeviceMotionEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DeviceMotionEvent.idl; sourceTree = "<group>"; };
+ 31FB1A63120A5D3F00DC02A0 /* JSDeviceMotionEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDeviceMotionEvent.cpp; sourceTree = "<group>"; };
+ 31FB1A64120A5D3F00DC02A0 /* JSDeviceMotionEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDeviceMotionEvent.h; sourceTree = "<group>"; };
+ 31FB1A6B120A5D6900DC02A0 /* JSDeviceMotionEventCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDeviceMotionEventCustom.cpp; sourceTree = "<group>"; };
3314ACE910892086000F0E56 /* JSExceptionBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSExceptionBase.cpp; sourceTree = "<group>"; };
3314ACEA10892086000F0E56 /* JSExceptionBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSExceptionBase.h; sourceTree = "<group>"; };
333F704E0FB49CA2008E12A6 /* Notification.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Notification.idl; path = notifications/Notification.idl; sourceTree = "<group>"; };
@@ -6512,6 +6569,7 @@
37C2381F1098C84200EF9F72 /* ComplexTextControllerATSUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComplexTextControllerATSUI.cpp; sourceTree = "<group>"; };
37C238201098C84200EF9F72 /* ComplexTextControllerCoreText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComplexTextControllerCoreText.cpp; sourceTree = "<group>"; };
37C28A6710F659CC008C7813 /* TypesettingFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypesettingFeatures.h; sourceTree = "<group>"; };
+ 37C61F0012095C87007A3C67 /* AtomicStringKeyedMRUCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AtomicStringKeyedMRUCache.h; sourceTree = "<group>"; };
37F818FB0D657606005E1F05 /* WebCoreURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreURLResponse.h; sourceTree = "<group>"; };
37F818FC0D657606005E1F05 /* WebCoreURLResponse.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreURLResponse.mm; sourceTree = "<group>"; };
37FC96DA1104ED71003E1FAD /* TrailingFloatsRootInlineBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrailingFloatsRootInlineBox.h; sourceTree = "<group>"; };
@@ -6652,8 +6710,8 @@
49C7B9AE1042D32E0009D447 /* WebGLFramebuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebGLFramebuffer.cpp; path = canvas/WebGLFramebuffer.cpp; sourceTree = "<group>"; };
49C7B9AF1042D32E0009D447 /* WebGLFramebuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebGLFramebuffer.h; path = canvas/WebGLFramebuffer.h; sourceTree = "<group>"; };
49C7B9B01042D32E0009D447 /* WebGLFramebuffer.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebGLFramebuffer.idl; path = canvas/WebGLFramebuffer.idl; sourceTree = "<group>"; };
- 49C7B9B41042D32F0009D447 /* CanvasObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CanvasObject.cpp; path = canvas/CanvasObject.cpp; sourceTree = "<group>"; };
- 49C7B9B51042D32F0009D447 /* CanvasObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CanvasObject.h; path = canvas/CanvasObject.h; sourceTree = "<group>"; };
+ 49C7B9B41042D32F0009D447 /* WebGLObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebGLObject.cpp; path = canvas/WebGLObject.cpp; sourceTree = "<group>"; };
+ 49C7B9B51042D32F0009D447 /* WebGLObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebGLObject.h; path = canvas/WebGLObject.h; sourceTree = "<group>"; };
49C7B9B61042D32F0009D447 /* WebGLProgram.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebGLProgram.cpp; path = canvas/WebGLProgram.cpp; sourceTree = "<group>"; };
49C7B9B71042D32F0009D447 /* WebGLProgram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebGLProgram.h; path = canvas/WebGLProgram.h; sourceTree = "<group>"; };
49C7B9B81042D32F0009D447 /* WebGLProgram.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebGLProgram.idl; path = canvas/WebGLProgram.idl; sourceTree = "<group>"; };
@@ -7193,8 +7251,6 @@
7A0E770D10C00A8800A0276E /* InspectorFrontendHost.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InspectorFrontendHost.idl; sourceTree = "<group>"; };
7A0E771C10C00DB100A0276E /* JSInspectorFrontendHost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInspectorFrontendHost.cpp; sourceTree = "<group>"; };
7A0E771D10C00DB100A0276E /* JSInspectorFrontendHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInspectorFrontendHost.h; sourceTree = "<group>"; };
- 7A1E88F3101CC384000C4DF5 /* ScriptArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptArray.cpp; sourceTree = "<group>"; };
- 7A1E88F4101CC384000C4DF5 /* ScriptArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptArray.h; sourceTree = "<group>"; };
7A2458791021EAF4000A00AA /* InspectorDOMAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDOMAgent.cpp; sourceTree = "<group>"; };
7A24587A1021EAF4000A00AA /* InspectorDOMAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDOMAgent.h; sourceTree = "<group>"; };
7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageGroupLoadDeferrer.cpp; sourceTree = "<group>"; };
@@ -7202,13 +7258,28 @@
7A74ECB8101839A500BF939E /* InspectorBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorBackend.cpp; sourceTree = "<group>"; };
7A74ECB9101839A600BF939E /* InspectorBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorBackend.h; sourceTree = "<group>"; };
7A74ECBC101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInspectorFrontendHostCustom.cpp; sourceTree = "<group>"; };
+ 7AB0B1BE1211A62200A76940 /* InspectorStorageAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorStorageAgent.cpp; sourceTree = "<group>"; };
+ 7AB0B1BF1211A62200A76940 /* InspectorStorageAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorStorageAgent.h; sourceTree = "<group>"; };
7ADE722510CBBB9B006B3B3A /* ContextMenuProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextMenuProvider.h; sourceTree = "<group>"; };
- 7AED3E030FBB1EAA00D2B03C /* InspectorFrontend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorFrontend.cpp; sourceTree = "<group>"; };
- 7AED3E040FBB1EAA00D2B03C /* InspectorFrontend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFrontend.h; sourceTree = "<group>"; };
7AFD4A8A1131C2760035B883 /* ScriptBreakpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptBreakpoint.h; sourceTree = "<group>"; };
7AFD4FF3113277B60035B883 /* ScriptDebugListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptDebugListener.h; sourceTree = "<group>"; };
+ 81A7325D1210189B00FC0D9E /* IDBCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursor.h; sourceTree = "<group>"; };
+ 81A7325F121018A400FC0D9E /* IDBCursor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursor.cpp; sourceTree = "<group>"; };
+ 81A73277121019E100FC0D9E /* IDBCursorBackendImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorBackendImpl.h; sourceTree = "<group>"; };
+ 81BE209311F4AB8D00915DFA /* IDBCursorBackendImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBCursorBackendImpl.cpp; sourceTree = "<group>"; };
+ 81BE209411F4AB8D00915DFA /* IDBCursorBackendInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCursorBackendInterface.h; sourceTree = "<group>"; };
+ 81BE209C11F4ABBD00915DFA /* IDBCursor.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBCursor.idl; sourceTree = "<group>"; };
+ 81BE20A711F4B66F00915DFA /* JSIDBCursor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBCursor.cpp; sourceTree = "<group>"; };
+ 81BE20A811F4B66F00915DFA /* JSIDBCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBCursor.h; sourceTree = "<group>"; };
82B658971189E39200E052A1 /* InspectorCSSStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorCSSStore.h; sourceTree = "<group>"; };
82B658991189E47600E052A1 /* InspectorCSSStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorCSSStore.cpp; sourceTree = "<group>"; };
+ 8419D2A4120D92D000141F8F /* SVGPathByteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStream.h; sourceTree = "<group>"; };
+ 8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathByteStreamBuilder.cpp; sourceTree = "<group>"; };
+ 8419D2A6120D92D000141F8F /* SVGPathByteStreamBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStreamBuilder.h; sourceTree = "<group>"; };
+ 8419D2AA120D92FC00141F8F /* SVGPathByteStreamSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathByteStreamSource.cpp; sourceTree = "<group>"; };
+ 8419D2AB120D92FC00141F8F /* SVGPathByteStreamSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStreamSource.h; sourceTree = "<group>"; };
+ 8419D2B7120E0C7600141F8F /* SVGPathStringBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathStringBuilder.cpp; sourceTree = "<group>"; };
+ 8419D2B8120E0C7600141F8F /* SVGPathStringBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathStringBuilder.h; sourceTree = "<group>"; };
841FDC241178C9BE00F8AC9B /* RenderSVGResourceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceFilter.cpp; sourceTree = "<group>"; };
841FDC251178C9BE00F8AC9B /* RenderSVGResourceFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceFilter.h; sourceTree = "<group>"; };
84224181107E77F400766A87 /* JSSVGFEMorphologyElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGFEMorphologyElement.cpp; sourceTree = "<group>"; };
@@ -7219,6 +7290,11 @@
84224190107E78A700766A87 /* SVGFEMorphologyElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEMorphologyElement.cpp; sourceTree = "<group>"; };
84224191107E78A700766A87 /* SVGFEMorphologyElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGFEMorphologyElement.h; sourceTree = "<group>"; };
84224192107E78A700766A87 /* SVGFEMorphologyElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SVGFEMorphologyElement.idl; sourceTree = "<group>"; };
+ 84300BD1120C9A710021954A /* SVGPathParserFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathParserFactory.cpp; sourceTree = "<group>"; };
+ 84300BD2120C9A710021954A /* SVGPathParserFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathParserFactory.h; sourceTree = "<group>"; };
+ 84300BD5120C9AAC0021954A /* SVGPathStringSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathStringSource.h; sourceTree = "<group>"; };
+ 84300BD7120C9AD40021954A /* SVGPathSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSource.h; sourceTree = "<group>"; };
+ 84300BD9120C9AED0021954A /* SVGPathStringSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathStringSource.cpp; sourceTree = "<group>"; };
845E72F70FD261EE00A87D79 /* Filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Filter.h; path = filters/Filter.h; sourceTree = "<group>"; };
845E72F90FD2623900A87D79 /* SVGFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFilter.cpp; sourceTree = "<group>"; };
845E72FA0FD2623900A87D79 /* SVGFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGFilter.h; sourceTree = "<group>"; };
@@ -7252,6 +7328,8 @@
84B2B1F7056BEF3A00D2B771 /* WebCoreKeyGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreKeyGenerator.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
84B2B1F8056BEF3A00D2B771 /* WebCoreKeyGenerator.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebCoreKeyGenerator.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
84B2B24F056BF15F00D2B771 /* SSLKeyGeneratorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SSLKeyGeneratorMac.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+ 84B6B975120F13E500B8EFAF /* SVGPathSegListSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSegListSource.cpp; sourceTree = "<group>"; };
+ 84B6B976120F13E500B8EFAF /* SVGPathSegListSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegListSource.h; sourceTree = "<group>"; };
84BDA16911358D2A00DBF64C /* RenderSVGResourceClipper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceClipper.cpp; sourceTree = "<group>"; };
84BDA16A11358D2A00DBF64C /* RenderSVGResourceClipper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceClipper.h; sourceTree = "<group>"; };
84D0C4031115F1D40018AA34 /* AffineTransform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AffineTransform.cpp; path = transforms/AffineTransform.cpp; sourceTree = "<group>"; };
@@ -8114,6 +8192,10 @@
89CD029111C85B870070B791 /* JSBlobBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSBlobBuilder.cpp; sourceTree = "<group>"; };
89CD029211C85B870070B791 /* JSBlobBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSBlobBuilder.h; sourceTree = "<group>"; };
8A12E35C11FA33280025836A /* DocumentLoadTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentLoadTiming.h; sourceTree = "<group>"; };
+ 8A413ADE1207BBA50082016E /* AsyncScriptRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AsyncScriptRunner.h; sourceTree = "<group>"; };
+ 8A413ADF1207BBA50082016E /* AsyncScriptRunner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AsyncScriptRunner.cpp; sourceTree = "<group>"; };
+ 8A7CC96A12076D73001D4588 /* PendingScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PendingScript.h; sourceTree = "<group>"; };
+ 8A7CC96F12076F8A001D4588 /* PendingScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PendingScript.cpp; sourceTree = "<group>"; };
8A81BF8411DCFD9000DA2B98 /* ResourceLoadTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadTiming.h; sourceTree = "<group>"; };
8A844D0111D3C18E0014065C /* Performance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Performance.cpp; sourceTree = "<group>"; };
8A844D0211D3C18E0014065C /* Performance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Performance.h; sourceTree = "<group>"; };
@@ -8246,7 +8328,6 @@
934F71430D5A6F5300018D69 /* AuthenticationChallenge.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AuthenticationChallenge.h; sourceTree = "<group>"; };
934FE9E40B5CA539003E4A73 /* FileChooser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileChooser.cpp; sourceTree = "<group>"; };
935207BD09BD410A00F2038D /* LocalizedStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalizedStrings.h; sourceTree = "<group>"; };
- 935207BF09BD412000F2038D /* LocalizedStringsMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LocalizedStringsMac.mm; sourceTree = "<group>"; };
9352084409BD43B900F2038D /* Language.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Language.mm; sourceTree = "<group>"; };
9352087609BD453400F2038D /* CookieJar.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CookieJar.mm; sourceTree = "<group>"; };
9352088109BD45E900F2038D /* CookieJar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CookieJar.h; sourceTree = "<group>"; };
@@ -8762,6 +8843,7 @@
A8A564A411DC0E59003AC2F0 /* HTMLFormattingElementList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLFormattingElementList.cpp; sourceTree = "<group>"; };
A8A909AA0CBCD6B50029B807 /* RenderSVGTransformableContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGTransformableContainer.h; sourceTree = "<group>"; };
A8A909AB0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGTransformableContainer.cpp; sourceTree = "<group>"; };
+ A8BCFD04120A046100B5F122 /* SVGPathSeg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathSeg.cpp; sourceTree = "<group>"; };
A8C2280D11D4A59700D5A7D3 /* DocumentParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentParser.cpp; sourceTree = "<group>"; };
A8C2289F11D5722E00D5A7D3 /* DecodedDataDocumentParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecodedDataDocumentParser.h; sourceTree = "<group>"; };
A8C228A011D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecodedDataDocumentParser.cpp; sourceTree = "<group>"; };
@@ -9985,7 +10067,6 @@
B550B52211DC68A800923885 /* SQLStatementSync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLStatementSync.h; sourceTree = "<group>"; };
B55D5AA2119131FC00BCC315 /* JSSQLTransactionSyncCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSQLTransactionSyncCallback.h; sourceTree = "<group>"; };
B55D5AA3119131FC00BCC315 /* JSSQLTransactionSyncCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLTransactionSyncCallback.cpp; sourceTree = "<group>"; };
- B55D5AA61191325000BCC315 /* JSDatabaseSyncCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDatabaseSyncCustom.cpp; sourceTree = "<group>"; };
B55D5AA71191325000BCC315 /* JSSQLTransactionSyncCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLTransactionSyncCustom.cpp; sourceTree = "<group>"; };
B55D5ABB1191327200BCC315 /* DatabaseSync.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DatabaseSync.idl; sourceTree = "<group>"; };
B55D5ABC1191327200BCC315 /* SQLTransactionSync.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLTransactionSync.idl; sourceTree = "<group>"; };
@@ -10017,7 +10098,17 @@
B5B5DC68119BB3D5002A8790 /* AbstractDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractDatabase.h; sourceTree = "<group>"; };
B5C11239102B6C4600096578 /* SQLTransactionCoordinator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLTransactionCoordinator.cpp; sourceTree = "<group>"; };
B5C1123A102B6C4600096578 /* SQLTransactionCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLTransactionCoordinator.h; sourceTree = "<group>"; };
+ B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActiveDOMCallback.cpp; path = generic/ActiveDOMCallback.cpp; sourceTree = "<group>"; };
+ B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActiveDOMCallback.h; path = generic/ActiveDOMCallback.h; sourceTree = "<group>"; };
B5D36019112F8B560048DEA8 /* DatabaseCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseCallback.h; sourceTree = "<group>"; };
+ B61762531203374F00EF9114 /* IDBDatabaseBackendInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseBackendInterface.h; sourceTree = "<group>"; };
+ B61762611203490800EF9114 /* IDBDatabaseBackendImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseBackendImpl.h; sourceTree = "<group>"; };
+ B6566267120B115A006EA85C /* IDBTransaction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBTransaction.cpp; sourceTree = "<group>"; };
+ B6566268120B115A006EA85C /* IDBTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBTransaction.h; sourceTree = "<group>"; };
+ B6566269120B115A006EA85C /* IDBTransaction.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBTransaction.idl; sourceTree = "<group>"; };
+ B656626D120B116B006EA85C /* IDBTransactionBackendInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBTransactionBackendInterface.h; sourceTree = "<group>"; };
+ B656626E120B1227006EA85C /* JSIDBTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBTransaction.h; sourceTree = "<group>"; };
+ B656626F120B1227006EA85C /* JSIDBTransaction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBTransaction.cpp; sourceTree = "<group>"; };
B734B180119B9911006587BD /* FontTranscoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FontTranscoder.cpp; path = transcoder/FontTranscoder.cpp; sourceTree = "<group>"; };
B734B182119B991D006587BD /* FontTranscoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FontTranscoder.h; path = transcoder/FontTranscoder.h; sourceTree = "<group>"; };
B776D43A1104525D00BEB0EC /* PrintContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrintContext.h; sourceTree = "<group>"; };
@@ -10470,7 +10561,6 @@
BCCBE7B40E07166900EAFA8E /* CSSVariableDependentValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSVariableDependentValue.cpp; sourceTree = "<group>"; };
BCCD74DB0A4C8D35005FDA6D /* HTMLViewSourceDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HTMLViewSourceDocument.h; sourceTree = "<group>"; };
BCCD74E40A4C8DDF005FDA6D /* HTMLViewSourceDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLViewSourceDocument.cpp; sourceTree = "<group>"; };
- BCCE58AB1061E8CF008FB35A /* JSDatabaseCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDatabaseCustom.cpp; sourceTree = "<group>"; };
BCCFBAE70B5152ED0001F1D7 /* DocumentParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DocumentParser.h; sourceTree = "<group>"; };
BCD0E0F70E972C3500265DEA /* SecurityOrigin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SecurityOrigin.cpp; sourceTree = "<group>"; };
BCD0E0F80E972C3500265DEA /* SecurityOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecurityOrigin.h; sourceTree = "<group>"; };
@@ -10604,6 +10694,7 @@
BE91FC8B06133666005E3790 /* Position.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = Position.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
BE91FC8C06133666005E3790 /* Position.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Position.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
BE983D95052A2E0A00892D85 /* WebCoreKeyboardUIMode.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreKeyboardUIMode.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+ C046E1AB1208A9FE00BA2CF7 /* LocalizedStrings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalizedStrings.cpp; sourceTree = "<group>"; };
C0DFC86F0DB6841A003EAE7C /* JSConsoleCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSConsoleCustom.cpp; sourceTree = "<group>"; };
C105DA610F3AA68F001DD44F /* TextEncodingDetectorICU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextEncodingDetectorICU.cpp; sourceTree = "<group>"; };
C105DA630F3AA6B8001DD44F /* TextEncodingDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextEncodingDetector.h; sourceTree = "<group>"; };
@@ -10640,8 +10731,8 @@
C585A66711D4FB07004C3E4B /* JSIDBDatabaseError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBDatabaseError.h; sourceTree = "<group>"; };
C585A66811D4FB07004C3E4B /* JSIDBDatabaseException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBDatabaseException.cpp; sourceTree = "<group>"; };
C585A66911D4FB07004C3E4B /* JSIDBDatabaseException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBDatabaseException.h; sourceTree = "<group>"; };
- C585A66A11D4FB07004C3E4B /* JSIDBDatabaseRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBDatabaseRequest.cpp; sourceTree = "<group>"; };
- C585A66B11D4FB07004C3E4B /* JSIDBDatabaseRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBDatabaseRequest.h; sourceTree = "<group>"; };
+ C585A66A11D4FB07004C3E4B /* JSIDBDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBDatabase.cpp; sourceTree = "<group>"; };
+ C585A66B11D4FB07004C3E4B /* JSIDBDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBDatabase.h; sourceTree = "<group>"; };
C585A66C11D4FB07004C3E4B /* JSIDBErrorEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBErrorEvent.cpp; sourceTree = "<group>"; };
C585A66D11D4FB07004C3E4B /* JSIDBErrorEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBErrorEvent.h; sourceTree = "<group>"; };
C585A66E11D4FB07004C3E4B /* JSIDBEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBEvent.cpp; sourceTree = "<group>"; };
@@ -10650,8 +10741,8 @@
C585A67311D4FB07004C3E4B /* JSIDBKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBKey.h; sourceTree = "<group>"; };
C585A67411D4FB07004C3E4B /* JSIDBKeyRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBKeyRange.cpp; sourceTree = "<group>"; };
C585A67511D4FB07004C3E4B /* JSIDBKeyRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBKeyRange.h; sourceTree = "<group>"; };
- C585A67611D4FB07004C3E4B /* JSIDBObjectStoreRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBObjectStoreRequest.cpp; sourceTree = "<group>"; };
- C585A67711D4FB07004C3E4B /* JSIDBObjectStoreRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBObjectStoreRequest.h; sourceTree = "<group>"; };
+ C585A67611D4FB07004C3E4B /* JSIDBObjectStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBObjectStore.cpp; sourceTree = "<group>"; };
+ C585A67711D4FB07004C3E4B /* JSIDBObjectStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBObjectStore.h; sourceTree = "<group>"; };
C585A67811D4FB07004C3E4B /* JSIDBRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBRequest.cpp; sourceTree = "<group>"; };
C585A67911D4FB07004C3E4B /* JSIDBRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBRequest.h; sourceTree = "<group>"; };
C585A67A11D4FB07004C3E4B /* JSIDBSuccessEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSIDBSuccessEvent.cpp; sourceTree = "<group>"; };
@@ -10662,16 +10753,14 @@
C585A69911D4FB3D004C3E4B /* IDBAny.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBAny.h; sourceTree = "<group>"; };
C585A69A11D4FB3D004C3E4B /* IDBAny.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBAny.idl; sourceTree = "<group>"; };
C585A69B11D4FB3D004C3E4B /* IDBCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBCallbacks.h; sourceTree = "<group>"; };
- C585A69C11D4FB3D004C3E4B /* IDBDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabase.h; sourceTree = "<group>"; };
C585A69D11D4FB3D004C3E4B /* IDBDatabaseError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseError.h; sourceTree = "<group>"; };
C585A69E11D4FB3D004C3E4B /* IDBDatabaseError.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBDatabaseError.idl; sourceTree = "<group>"; };
C585A69F11D4FB3D004C3E4B /* IDBDatabaseException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseException.h; sourceTree = "<group>"; };
C585A6A011D4FB3D004C3E4B /* IDBDatabaseException.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBDatabaseException.idl; sourceTree = "<group>"; };
- C585A6A111D4FB3D004C3E4B /* IDBDatabaseImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBDatabaseImpl.cpp; sourceTree = "<group>"; };
- C585A6A211D4FB3D004C3E4B /* IDBDatabaseImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseImpl.h; sourceTree = "<group>"; };
- C585A6A311D4FB3D004C3E4B /* IDBDatabaseRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBDatabaseRequest.cpp; sourceTree = "<group>"; };
- C585A6A411D4FB3D004C3E4B /* IDBDatabaseRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabaseRequest.h; sourceTree = "<group>"; };
- C585A6A511D4FB3D004C3E4B /* IDBDatabaseRequest.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBDatabaseRequest.idl; sourceTree = "<group>"; };
+ C585A6A111D4FB3D004C3E4B /* IDBDatabaseBackendImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBDatabaseBackendImpl.cpp; sourceTree = "<group>"; };
+ C585A6A311D4FB3D004C3E4B /* IDBDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBDatabase.cpp; sourceTree = "<group>"; };
+ C585A6A411D4FB3D004C3E4B /* IDBDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBDatabase.h; sourceTree = "<group>"; };
+ C585A6A511D4FB3D004C3E4B /* IDBDatabase.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBDatabase.idl; sourceTree = "<group>"; };
C585A6A611D4FB3D004C3E4B /* IDBErrorEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBErrorEvent.cpp; sourceTree = "<group>"; };
C585A6A711D4FB3D004C3E4B /* IDBErrorEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBErrorEvent.h; sourceTree = "<group>"; };
C585A6A811D4FB3D004C3E4B /* IDBErrorEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBErrorEvent.idl; sourceTree = "<group>"; };
@@ -10686,11 +10775,11 @@
C585A6B711D4FB3D004C3E4B /* IDBKeyRange.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBKeyRange.idl; sourceTree = "<group>"; };
C585A6B811D4FB3D004C3E4B /* IDBKeyTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBKeyTree.h; sourceTree = "<group>"; };
C585A6B911D4FB3D004C3E4B /* IDBObjectStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBObjectStore.h; sourceTree = "<group>"; };
- C585A6BA11D4FB3D004C3E4B /* IDBObjectStoreImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBObjectStoreImpl.cpp; sourceTree = "<group>"; };
- C585A6BB11D4FB3D004C3E4B /* IDBObjectStoreImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBObjectStoreImpl.h; sourceTree = "<group>"; };
- C585A6BC11D4FB3D004C3E4B /* IDBObjectStoreRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBObjectStoreRequest.cpp; sourceTree = "<group>"; };
- C585A6BD11D4FB3D004C3E4B /* IDBObjectStoreRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBObjectStoreRequest.h; sourceTree = "<group>"; };
- C585A6BE11D4FB3D004C3E4B /* IDBObjectStoreRequest.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBObjectStoreRequest.idl; sourceTree = "<group>"; };
+ C585A6BA11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBObjectStoreBackendImpl.cpp; sourceTree = "<group>"; };
+ C585A6BB11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBObjectStoreBackendImpl.h; sourceTree = "<group>"; };
+ C585A6BC11D4FB3D004C3E4B /* IDBObjectStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBObjectStore.cpp; sourceTree = "<group>"; };
+ C585A6BD11D4FB3D004C3E4B /* IDBObjectStoreBackendInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBObjectStoreBackendInterface.h; sourceTree = "<group>"; };
+ C585A6BE11D4FB3D004C3E4B /* IDBObjectStore.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBObjectStore.idl; sourceTree = "<group>"; };
C585A6BF11D4FB3D004C3E4B /* IDBRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBRequest.cpp; sourceTree = "<group>"; };
C585A6C011D4FB3D004C3E4B /* IDBRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBRequest.h; sourceTree = "<group>"; };
C585A6C111D4FB3D004C3E4B /* IDBRequest.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDBRequest.idl; sourceTree = "<group>"; };
@@ -10916,6 +11005,9 @@
ED501DC50B249F2900AE18D9 /* EditorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = EditorMac.mm; path = mac/EditorMac.mm; sourceTree = "<group>"; };
EDE3A4FF0C7A430600956A37 /* ColorMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorMac.h; sourceTree = "<group>"; };
EDEC98020AED7E170059137F /* WebCorePrefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebCorePrefix.h; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };
+ F33F0281120947F200E5743A /* ScriptProfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptProfile.cpp; sourceTree = "<group>"; };
+ F33F053B120B0DA500E5743A /* InspectorDebuggerAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDebuggerAgent.cpp; sourceTree = "<group>"; };
+ F33F053C120B0DA500E5743A /* InspectorDebuggerAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDebuggerAgent.h; sourceTree = "<group>"; };
F344C7121125B82C00F26EEE /* InspectorFrontendClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFrontendClient.h; sourceTree = "<group>"; };
F344C75211294D9D00F26EEE /* InspectorFrontendClientLocal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFrontendClientLocal.h; sourceTree = "<group>"; };
F344C75711294FF600F26EEE /* InspectorFrontendClientLocal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorFrontendClientLocal.cpp; sourceTree = "<group>"; };
@@ -11385,16 +11477,22 @@
C585A69911D4FB3D004C3E4B /* IDBAny.h */,
C585A69A11D4FB3D004C3E4B /* IDBAny.idl */,
C585A69B11D4FB3D004C3E4B /* IDBCallbacks.h */,
- C585A69C11D4FB3D004C3E4B /* IDBDatabase.h */,
+ 81A7325F121018A400FC0D9E /* IDBCursor.cpp */,
+ 81A7325D1210189B00FC0D9E /* IDBCursor.h */,
+ 81BE209C11F4ABBD00915DFA /* IDBCursor.idl */,
+ 81BE209311F4AB8D00915DFA /* IDBCursorBackendImpl.cpp */,
+ 81A73277121019E100FC0D9E /* IDBCursorBackendImpl.h */,
+ 81BE209411F4AB8D00915DFA /* IDBCursorBackendInterface.h */,
+ C585A6A311D4FB3D004C3E4B /* IDBDatabase.cpp */,
+ C585A6A411D4FB3D004C3E4B /* IDBDatabase.h */,
+ C585A6A511D4FB3D004C3E4B /* IDBDatabase.idl */,
+ C585A6A111D4FB3D004C3E4B /* IDBDatabaseBackendImpl.cpp */,
+ B61762611203490800EF9114 /* IDBDatabaseBackendImpl.h */,
+ B61762531203374F00EF9114 /* IDBDatabaseBackendInterface.h */,
C585A69D11D4FB3D004C3E4B /* IDBDatabaseError.h */,
C585A69E11D4FB3D004C3E4B /* IDBDatabaseError.idl */,
C585A69F11D4FB3D004C3E4B /* IDBDatabaseException.h */,
C585A6A011D4FB3D004C3E4B /* IDBDatabaseException.idl */,
- C585A6A111D4FB3D004C3E4B /* IDBDatabaseImpl.cpp */,
- C585A6A211D4FB3D004C3E4B /* IDBDatabaseImpl.h */,
- C585A6A311D4FB3D004C3E4B /* IDBDatabaseRequest.cpp */,
- C585A6A411D4FB3D004C3E4B /* IDBDatabaseRequest.h */,
- C585A6A511D4FB3D004C3E4B /* IDBDatabaseRequest.idl */,
C585A6A611D4FB3D004C3E4B /* IDBErrorEvent.cpp */,
C585A6A711D4FB3D004C3E4B /* IDBErrorEvent.h */,
C585A6A811D4FB3D004C3E4B /* IDBErrorEvent.idl */,
@@ -11421,18 +11519,22 @@
C585A6B611D4FB3D004C3E4B /* IDBKeyRange.h */,
C585A6B711D4FB3D004C3E4B /* IDBKeyRange.idl */,
C585A6B811D4FB3D004C3E4B /* IDBKeyTree.h */,
+ C585A6BC11D4FB3D004C3E4B /* IDBObjectStore.cpp */,
C585A6B911D4FB3D004C3E4B /* IDBObjectStore.h */,
- C585A6BA11D4FB3D004C3E4B /* IDBObjectStoreImpl.cpp */,
- C585A6BB11D4FB3D004C3E4B /* IDBObjectStoreImpl.h */,
- C585A6BC11D4FB3D004C3E4B /* IDBObjectStoreRequest.cpp */,
- C585A6BD11D4FB3D004C3E4B /* IDBObjectStoreRequest.h */,
- C585A6BE11D4FB3D004C3E4B /* IDBObjectStoreRequest.idl */,
+ C585A6BE11D4FB3D004C3E4B /* IDBObjectStore.idl */,
+ C585A6BA11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.cpp */,
+ C585A6BB11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.h */,
+ C585A6BD11D4FB3D004C3E4B /* IDBObjectStoreBackendInterface.h */,
C585A6BF11D4FB3D004C3E4B /* IDBRequest.cpp */,
C585A6C011D4FB3D004C3E4B /* IDBRequest.h */,
C585A6C111D4FB3D004C3E4B /* IDBRequest.idl */,
C585A6C211D4FB3D004C3E4B /* IDBSuccessEvent.cpp */,
C585A6C311D4FB3D004C3E4B /* IDBSuccessEvent.h */,
C585A6C411D4FB3D004C3E4B /* IDBSuccessEvent.idl */,
+ B6566267120B115A006EA85C /* IDBTransaction.cpp */,
+ B6566268120B115A006EA85C /* IDBTransaction.h */,
+ B6566269120B115A006EA85C /* IDBTransaction.idl */,
+ B656626D120B116B006EA85C /* IDBTransactionBackendInterface.h */,
511F23130DC160DA004F0032 /* LocalStorageTask.cpp */,
511F23140DC160DA004F0032 /* LocalStorageTask.h */,
511F23150DC160DA004F0032 /* LocalStorageThread.cpp */,
@@ -11550,12 +11652,12 @@
82B658971189E39200E052A1 /* InspectorCSSStore.h */,
41F062130F5F192600A07EAC /* InspectorDatabaseResource.cpp */,
41F062120F5F192600A07EAC /* InspectorDatabaseResource.h */,
+ F33F053B120B0DA500E5743A /* InspectorDebuggerAgent.cpp */,
+ F33F053C120B0DA500E5743A /* InspectorDebuggerAgent.h */,
7A2458791021EAF4000A00AA /* InspectorDOMAgent.cpp */,
7A24587A1021EAF4000A00AA /* InspectorDOMAgent.h */,
41F061730F5F00AC00A07EAC /* InspectorDOMStorageResource.cpp */,
41F061720F5F00AC00A07EAC /* InspectorDOMStorageResource.h */,
- 7AED3E030FBB1EAA00D2B03C /* InspectorFrontend.cpp */,
- 7AED3E040FBB1EAA00D2B03C /* InspectorFrontend.h */,
F344C7121125B82C00F26EEE /* InspectorFrontendClient.h */,
F344C75711294FF600F26EEE /* InspectorFrontendClientLocal.cpp */,
F344C75211294D9D00F26EEE /* InspectorFrontendClientLocal.h */,
@@ -11564,6 +11666,8 @@
7A0E770D10C00A8800A0276E /* InspectorFrontendHost.idl */,
41F062000F5F0B6600A07EAC /* InspectorResource.cpp */,
41F061FF0F5F0B6600A07EAC /* InspectorResource.h */,
+ 7AB0B1BE1211A62200A76940 /* InspectorStorageAgent.cpp */,
+ 7AB0B1BF1211A62200A76940 /* InspectorStorageAgent.h */,
754133A9102E00F400075D00 /* InspectorTimelineAgent.cpp */,
754133A7102E00E800075D00 /* InspectorTimelineAgent.h */,
4F3289B311A42AAB005ABE7E /* InspectorValues.cpp */,
@@ -11776,8 +11880,6 @@
49484FB3102CF23C00187DD3 /* CanvasGradient.cpp */,
49484FB4102CF23C00187DD3 /* CanvasGradient.h */,
49484FB5102CF23C00187DD3 /* CanvasGradient.idl */,
- 49C7B9B41042D32F0009D447 /* CanvasObject.cpp */,
- 49C7B9B51042D32F0009D447 /* CanvasObject.h */,
49484FB6102CF23C00187DD3 /* CanvasPattern.cpp */,
49484FB7102CF23C00187DD3 /* CanvasPattern.h */,
49484FB8102CF23C00187DD3 /* CanvasPattern.idl */,
@@ -11829,6 +11931,8 @@
49C7B9B01042D32E0009D447 /* WebGLFramebuffer.idl */,
6E47E65E10B7944B00B186C8 /* WebGLGetInfo.cpp */,
6E47E65F10B7944B00B186C8 /* WebGLGetInfo.h */,
+ 49C7B9B41042D32F0009D447 /* WebGLObject.cpp */,
+ 49C7B9B51042D32F0009D447 /* WebGLObject.h */,
49C7B9B61042D32F0009D447 /* WebGLProgram.cpp */,
49C7B9B71042D32F0009D447 /* WebGLProgram.h */,
49C7B9B81042D32F0009D447 /* WebGLProgram.idl */,
@@ -12303,7 +12407,6 @@
9352084409BD43B900F2038D /* Language.mm */,
06E81ED60AB5D5E900C87837 /* LocalCurrentGraphicsContext.h */,
06E81EEB0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm */,
- 935207BF09BD412000F2038D /* LocalizedStringsMac.mm */,
1402645D0AFDC19B005919E2 /* LoggingMac.mm */,
BC772C5D0C4EB3440083285F /* MIMETypeRegistryMac.mm */,
A7D3C5230B576B4B002CA450 /* PasteboardHelper.h */,
@@ -12315,12 +12418,12 @@
E4D687760ED7AE3D006EA978 /* PurgeableBufferMac.cpp */,
447D69010FA626810015CCB1 /* RuntimeApplicationChecks.h */,
447D69020FA626810015CCB1 /* RuntimeApplicationChecks.mm */,
- D39D009C11F907E6006041F2 /* SearchPopupMenuMac.h */,
1CE24F960D7CAF0E007E04C2 /* SchedulePairMac.mm */,
BCAA90C20A7EBA60008B1229 /* Scrollbar.cpp */,
BC8B853C0E7C7F1100AB6984 /* ScrollbarThemeMac.h */,
BCEF869E0E844E9D00A85CD5 /* ScrollbarThemeMac.mm */,
9353676A09AED88B00D35CD6 /* ScrollViewMac.mm */,
+ D39D009C11F907E6006041F2 /* SearchPopupMenuMac.h */,
AB71709F0B31193B0017123E /* SearchPopupMenuMac.mm */,
1A4A95510B4EDCFF002D8C3C /* SharedBufferMac.mm */,
93309E9F099EB78C0056E581 /* SharedTimerMac.mm */,
@@ -14729,6 +14832,8 @@
93F9B6DF0BA0FB7200854064 /* JSComment.h */,
FE6FD48B0F676E9300092873 /* JSCoordinates.cpp */,
FE6FD48C0F676E9300092873 /* JSCoordinates.h */,
+ 31FB1A63120A5D3F00DC02A0 /* JSDeviceMotionEvent.cpp */,
+ 31FB1A64120A5D3F00DC02A0 /* JSDeviceMotionEvent.h */,
59A86005119DAF7F00DEF1EF /* JSDeviceOrientationEvent.cpp */,
59A86007119DAFA100DEF1EF /* JSDeviceOrientationEvent.h */,
659DDC8009E198BA001BF3C6 /* JSDocument.cpp */,
@@ -14847,12 +14952,14 @@
897A2D92120003760082740C /* JSFlags.h */,
C585A66411D4FB07004C3E4B /* JSIDBAny.cpp */,
C585A66511D4FB07004C3E4B /* JSIDBAny.h */,
+ 81BE20A711F4B66F00915DFA /* JSIDBCursor.cpp */,
+ 81BE20A811F4B66F00915DFA /* JSIDBCursor.h */,
+ C585A66A11D4FB07004C3E4B /* JSIDBDatabase.cpp */,
+ C585A66B11D4FB07004C3E4B /* JSIDBDatabase.h */,
C585A66611D4FB07004C3E4B /* JSIDBDatabaseError.cpp */,
C585A66711D4FB07004C3E4B /* JSIDBDatabaseError.h */,
C585A66811D4FB07004C3E4B /* JSIDBDatabaseException.cpp */,
C585A66911D4FB07004C3E4B /* JSIDBDatabaseException.h */,
- C585A66A11D4FB07004C3E4B /* JSIDBDatabaseRequest.cpp */,
- C585A66B11D4FB07004C3E4B /* JSIDBDatabaseRequest.h */,
C585A66C11D4FB07004C3E4B /* JSIDBErrorEvent.cpp */,
C585A66D11D4FB07004C3E4B /* JSIDBErrorEvent.h */,
C585A66E11D4FB07004C3E4B /* JSIDBEvent.cpp */,
@@ -14865,12 +14972,14 @@
C585A67311D4FB07004C3E4B /* JSIDBKey.h */,
C585A67411D4FB07004C3E4B /* JSIDBKeyRange.cpp */,
C585A67511D4FB07004C3E4B /* JSIDBKeyRange.h */,
- C585A67611D4FB07004C3E4B /* JSIDBObjectStoreRequest.cpp */,
- C585A67711D4FB07004C3E4B /* JSIDBObjectStoreRequest.h */,
+ C585A67611D4FB07004C3E4B /* JSIDBObjectStore.cpp */,
+ C585A67711D4FB07004C3E4B /* JSIDBObjectStore.h */,
C585A67811D4FB07004C3E4B /* JSIDBRequest.cpp */,
C585A67911D4FB07004C3E4B /* JSIDBRequest.h */,
C585A67A11D4FB07004C3E4B /* JSIDBSuccessEvent.cpp */,
C585A67B11D4FB07004C3E4B /* JSIDBSuccessEvent.h */,
+ B656626F120B1227006EA85C /* JSIDBTransaction.cpp */,
+ B656626E120B1227006EA85C /* JSIDBTransaction.h */,
514C76350CE9225E007EF3CD /* JSSQLError.cpp */,
BC8243250D0CE8A200460C8F /* JSSQLError.h */,
B525A96411CA2340003A23A8 /* JSSQLException.cpp */,
@@ -15211,12 +15320,20 @@
B22278C10D00BF200071B782 /* SVGParserUtilities.h */,
8476C9E711DF6A2900555B02 /* SVGPathBuilder.cpp */,
8476C9E811DF6A2900555B02 /* SVGPathBuilder.h */,
+ 8419D2A4120D92D000141F8F /* SVGPathByteStream.h */,
+ 8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */,
+ 8419D2A6120D92D000141F8F /* SVGPathByteStreamBuilder.h */,
+ 8419D2AA120D92FC00141F8F /* SVGPathByteStreamSource.cpp */,
+ 8419D2AB120D92FC00141F8F /* SVGPathByteStreamSource.h */,
8476C9E911DF6A2900555B02 /* SVGPathConsumer.h */,
B22278C20D00BF200071B782 /* SVGPathElement.cpp */,
B22278C30D00BF200071B782 /* SVGPathElement.h */,
B22278C40D00BF200071B782 /* SVGPathElement.idl */,
8476C9ED11DF6A5800555B02 /* SVGPathParser.cpp */,
8476C9EE11DF6A5800555B02 /* SVGPathParser.h */,
+ 84300BD1120C9A710021954A /* SVGPathParserFactory.cpp */,
+ 84300BD2120C9A710021954A /* SVGPathParserFactory.h */,
+ A8BCFD04120A046100B5F122 /* SVGPathSeg.cpp */,
B22278C50D00BF200071B782 /* SVGPathSeg.h */,
B22278C60D00BF200071B782 /* SVGPathSeg.idl */,
B22278C70D00BF200071B782 /* SVGPathSegArc.cpp */,
@@ -15259,10 +15376,17 @@
B22278EC0D00BF210071B782 /* SVGPathSegList.idl */,
8476C9E311DF6A0B00555B02 /* SVGPathSegListBuilder.cpp */,
8476C9E411DF6A0B00555B02 /* SVGPathSegListBuilder.h */,
+ 84B6B975120F13E500B8EFAF /* SVGPathSegListSource.cpp */,
+ 84B6B976120F13E500B8EFAF /* SVGPathSegListSource.h */,
B22278ED0D00BF210071B782 /* SVGPathSegMoveto.cpp */,
B22278EE0D00BF210071B782 /* SVGPathSegMoveto.h */,
B22278EF0D00BF210071B782 /* SVGPathSegMovetoAbs.idl */,
B22278F00D00BF210071B782 /* SVGPathSegMovetoRel.idl */,
+ 84300BD7120C9AD40021954A /* SVGPathSource.h */,
+ 8419D2B7120E0C7600141F8F /* SVGPathStringBuilder.cpp */,
+ 8419D2B8120E0C7600141F8F /* SVGPathStringBuilder.h */,
+ 84300BD9120C9AED0021954A /* SVGPathStringSource.cpp */,
+ 84300BD5120C9AAC0021954A /* SVGPathStringSource.h */,
B22278F10D00BF210071B782 /* SVGPatternElement.cpp */,
B22278F20D00BF210071B782 /* SVGPatternElement.h */,
B22278F30D00BF210071B782 /* SVGPatternElement.idl */,
@@ -15630,6 +15754,7 @@
B2C3D9EE0D006C1D00EF6F26 /* AtomicString.h */,
0FC705200EB1815600B90AD8 /* AtomicStringHash.h */,
B2C3D9EF0D006C1D00EF6F26 /* AtomicStringImpl.h */,
+ 37C61F0012095C87007A3C67 /* AtomicStringKeyedMRUCache.h */,
B2C3D9F00D006C1D00EF6F26 /* Base64.cpp */,
B2C3D9F10D006C1D00EF6F26 /* Base64.h */,
B2C3D9F20D006C1D00EF6F26 /* BidiContext.cpp */,
@@ -15712,6 +15837,15 @@
name = cf;
sourceTree = "<group>";
};
+ B5D31DF711CF60E5009F22B4 /* generic */ = {
+ isa = PBXGroup;
+ children = (
+ B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */,
+ B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */,
+ );
+ name = generic;
+ sourceTree = "<group>";
+ };
B734B17F119B98DB006587BD /* transcoder */ = {
isa = PBXGroup;
children = (
@@ -15724,6 +15858,7 @@
BC1A3790097C6F970019F3D8 /* bindings */ = {
isa = PBXGroup;
children = (
+ B5D31DF711CF60E5009F22B4 /* generic */,
BC1A3793097C6FB10019F3D8 /* js */,
BC1A3794097C6FC40019F3D8 /* objc */,
93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */,
@@ -15787,8 +15922,6 @@
F3D461471161D53200CA0D09 /* JSWorkerContextErrorHandler.h */,
BCA378BA0D15F64200B793D6 /* ScheduledAction.cpp */,
BCA378BB0D15F64200B793D6 /* ScheduledAction.h */,
- 7A1E88F3101CC384000C4DF5 /* ScriptArray.cpp */,
- 7A1E88F4101CC384000C4DF5 /* ScriptArray.h */,
41F1D21E0EF35C2A00DA8753 /* ScriptCachedFrameData.cpp */,
41F1D21D0EF35C2A00DA8753 /* ScriptCachedFrameData.h */,
416E75CA0EDF90C700360E1D /* ScriptCallFrame.cpp */,
@@ -15809,6 +15942,7 @@
934CC1160EDCAC7300A658F2 /* ScriptInstance.h */,
41F066E30F64BCF600A07EAC /* ScriptObject.cpp */,
41F066E20F64BCF600A07EAC /* ScriptObject.h */,
+ F33F0281120947F200E5743A /* ScriptProfile.cpp */,
9F72304C11184B4100AD0126 /* ScriptProfile.h */,
9FA37EE31172FC8000C4CD55 /* ScriptProfileNode.h */,
9F72304D11184B4100AD0126 /* ScriptProfiler.cpp */,
@@ -15894,11 +16028,10 @@
9392262E10321084006E7D5D /* JSCSSRuleListCustom.cpp */,
BC5825F20C0B89380053F1B5 /* JSCSSStyleDeclarationCustom.cpp */,
BC20FB7E0C0E8E6C00D1447F /* JSCSSValueCustom.cpp */,
- BCCE58AB1061E8CF008FB35A /* JSDatabaseCustom.cpp */,
- B55D5AA61191325000BCC315 /* JSDatabaseSyncCustom.cpp */,
BC77D1510FF19C730070887B /* JSDataGridColumnListCustom.cpp */,
4162A453101145E300DFF3ED /* JSDedicatedWorkerContextCustom.cpp */,
33503CBF10179C1A003B47E1 /* JSDesktopNotificationsCustom.cpp */,
+ 31FB1A6B120A5D6900DC02A0 /* JSDeviceMotionEventCustom.cpp */,
590E1B4A11E4EF700069F784 /* JSDeviceOrientationEventCustom.cpp */,
49C7BA8C1042F5B10009D447 /* JSDocumentCustom.cpp */,
1AC226160DB69F740089B669 /* JSDOMApplicationCacheCustom.cpp */,
@@ -16330,6 +16463,7 @@
A7AD2F850EC89D07008AB002 /* LinkHash.cpp */,
A7AD2F860EC89D07008AB002 /* LinkHash.h */,
BC5CFCA811F793320099ED09 /* LocalizationStrategy.h */,
+ C046E1AB1208A9FE00BA2CF7 /* LocalizedStrings.cpp */,
935207BD09BD410A00F2038D /* LocalizedStrings.h */,
A8239DFE09B3CF8A00B60641 /* Logging.cpp */,
A8239DFF09B3CF8A00B60641 /* Logging.h */,
@@ -16991,6 +17125,8 @@
children = (
E1C4DE6D0EA75C650023CCD6 /* ActiveDOMObject.cpp */,
E1C4DE680EA75C1E0023CCD6 /* ActiveDOMObject.h */,
+ 8A413ADF1207BBA50082016E /* AsyncScriptRunner.cpp */,
+ 8A413ADE1207BBA50082016E /* AsyncScriptRunner.h */,
A8C4A7FC09D563270003AC8D /* Attr.cpp */,
A8C4A7FB09D563270003AC8D /* Attr.h */,
93EEC1E509C2877700C515D1 /* Attr.idl */,
@@ -17048,6 +17184,14 @@
BC64641A11D7F416006455B0 /* DatasetDOMStringMap.h */,
A8C228A011D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp */,
A8C2289F11D5722E00D5A7D3 /* DecodedDataDocumentParser.h */,
+ 31FB1A4F120A5D0600DC02A0 /* DeviceMotionClient.h */,
+ 31FB1A50120A5D0600DC02A0 /* DeviceMotionController.cpp */,
+ 31FB1A51120A5D0600DC02A0 /* DeviceMotionController.h */,
+ 31FB1A52120A5D0600DC02A0 /* DeviceMotionData.cpp */,
+ 31FB1A53120A5D0600DC02A0 /* DeviceMotionData.h */,
+ 31FB1A54120A5D0600DC02A0 /* DeviceMotionEvent.cpp */,
+ 31FB1A55120A5D0600DC02A0 /* DeviceMotionEvent.h */,
+ 31FB1A56120A5D0600DC02A0 /* DeviceMotionEvent.idl */,
59D1C10311EB5DCF00B638C8 /* DeviceOrientation.cpp */,
590E1B4811E4EF4B0069F784 /* DeviceOrientation.h */,
59A8F1D711A69520001AC34A /* DeviceOrientationClient.h */,
@@ -17172,6 +17316,8 @@
E1284AE910447DEE00EAEB52 /* PageTransitionEvent.cpp */,
E1284AE010447D4500EAEB52 /* PageTransitionEvent.h */,
E1284AD910447AEB00EAEB52 /* PageTransitionEvent.idl */,
+ 8A7CC96F12076F8A001D4588 /* PendingScript.cpp */,
+ 8A7CC96A12076D73001D4588 /* PendingScript.h */,
41BF700D0FE86F61005E8DEC /* PlatformMessagePortChannel.cpp */,
41BF700E0FE86F61005E8DEC /* PlatformMessagePortChannel.h */,
5189F0DD10B46B0E00F3C739 /* PopStateEvent.cpp */,
@@ -17280,6 +17426,8 @@
FABE72F31059C1EB00D999DD /* mathtags.in */,
FA654A6D1108ABFF002615E0 /* RenderMathMLBlock.cpp */,
FA654A6E1108ABFF002615E0 /* RenderMathMLBlock.h */,
+ 0F69B9C7120FE1D6000E1FC7 /* RenderMathMLFenced.cpp */,
+ 0F69B9C8120FE1D6000E1FC7 /* RenderMathMLFenced.h */,
FAA1056E114C2DF700940A01 /* RenderMathMLFraction.cpp */,
FAA1056F114C2DF700940A01 /* RenderMathMLFraction.h */,
FA0B1F8211125CEE007F9839 /* RenderMathMLMath.cpp */,
@@ -17330,6 +17478,7 @@
29A812410FBB9C1D00510293 /* AccessibilityTableColumn.h in Headers */,
29A8123F0FBB9C1D00510293 /* AccessibilityTableHeaderContainer.h in Headers */,
29A812310FBB9C1D00510293 /* AccessibilityTableRow.h in Headers */,
+ B5D31DFB11CF610B009F22B4 /* ActiveDOMCallback.h in Headers */,
E1C4DE690EA75C1E0023CCD6 /* ActiveDOMObject.h in Headers */,
84D0C4061115F1EA0018AA34 /* AffineTransform.h in Headers */,
49E912AB0EFAC906009D0CAF /* Animation.h in Headers */,
@@ -17352,9 +17501,11 @@
49EECDE310503C2400099FAB /* ArrayBuffer.h in Headers */,
49EECDE010503C2400099FAB /* ArrayBufferView.h in Headers */,
B0149E7E11A4B21500196A7B /* AsyncImageResizer.h in Headers */,
+ 8A413AE01207BBA50082016E /* AsyncScriptRunner.h in Headers */,
B2C3DA1F0D006C1D00EF6F26 /* AtomicString.h in Headers */,
0FC705210EB1815600B90AD8 /* AtomicStringHash.h in Headers */,
B2C3DA200D006C1D00EF6F26 /* AtomicStringImpl.h in Headers */,
+ 37C61F0112095C87007A3C67 /* AtomicStringKeyedMRUCache.h in Headers */,
A8C4A80D09D563270003AC8D /* Attr.h in Headers */,
A8C4A80B09D563270003AC8D /* Attribute.h in Headers */,
934F71440D5A6F5300018D69 /* AuthenticationChallenge.h in Headers */,
@@ -17412,7 +17563,6 @@
93F1995008245E59001E9ABC /* CachePolicy.h in Headers */,
6E4E91AD10F7FB3100A2779C /* CanvasContextAttributes.h in Headers */,
49484FC2102CF23C00187DD3 /* CanvasGradient.h in Headers */,
- 49C7B9D51042D32F0009D447 /* CanvasObject.h in Headers */,
49484FC5102CF23C00187DD3 /* CanvasPattern.h in Headers */,
49484FC8102CF23C00187DD3 /* CanvasPixelArray.h in Headers */,
49C7B9DD1042D32F0009D447 /* CanvasRenderingContext.h in Headers */,
@@ -17560,6 +17710,10 @@
93309DE1099E64920056E581 /* DeleteSelectionCommand.h in Headers */,
93F1998208245E59001E9ABC /* DeprecatedPtrList.h in Headers */,
93F1996D08245E59001E9ABC /* DeprecatedPtrListImpl.h in Headers */,
+ 31FB1A57120A5D0600DC02A0 /* DeviceMotionClient.h in Headers */,
+ 31FB1A59120A5D0600DC02A0 /* DeviceMotionController.h in Headers */,
+ 31FB1A5B120A5D0600DC02A0 /* DeviceMotionData.h in Headers */,
+ 31FB1A5D120A5D0600DC02A0 /* DeviceMotionEvent.h in Headers */,
590E1B4911E4EF4B0069F784 /* DeviceOrientation.h in Headers */,
59A8F1D811A69520001AC34A /* DeviceOrientationClient.h in Headers */,
59309A1311F4AE6A00250603 /* DeviceOrientationClientMock.h in Headers */,
@@ -18573,11 +18727,14 @@
C585A6CD11D4FB3D004C3E4B /* IDBAny.h in Headers */,
C585A66311D4FAC5004C3E4B /* IDBBindingUtilities.h in Headers */,
C585A6CF11D4FB3D004C3E4B /* IDBCallbacks.h in Headers */,
- C585A6D011D4FB3D004C3E4B /* IDBDatabase.h in Headers */,
+ 81A7325E1210189B00FC0D9E /* IDBCursor.h in Headers */,
+ 81A73278121019E100FC0D9E /* IDBCursorBackendImpl.h in Headers */,
+ 81BE209911F4AB8D00915DFA /* IDBCursorBackendInterface.h in Headers */,
+ C585A6D811D4FB3D004C3E4B /* IDBDatabase.h in Headers */,
+ B61762621203490800EF9114 /* IDBDatabaseBackendImpl.h in Headers */,
+ B61762541203374F00EF9114 /* IDBDatabaseBackendInterface.h in Headers */,
C585A6D111D4FB3D004C3E4B /* IDBDatabaseError.h in Headers */,
C585A6D311D4FB3D004C3E4B /* IDBDatabaseException.h in Headers */,
- C585A6D611D4FB3D004C3E4B /* IDBDatabaseImpl.h in Headers */,
- C585A6D811D4FB3D004C3E4B /* IDBDatabaseRequest.h in Headers */,
C585A6DB11D4FB3D004C3E4B /* IDBErrorEvent.h in Headers */,
C585A6DE11D4FB3D004C3E4B /* IDBEvent.h in Headers */,
C585A6FE11D4FB3D004C3E4B /* IDBFactory.h in Headers */,
@@ -18590,10 +18747,11 @@
C585A6EA11D4FB3D004C3E4B /* IDBKeyRange.h in Headers */,
C585A6EC11D4FB3D004C3E4B /* IDBKeyTree.h in Headers */,
C585A6ED11D4FB3D004C3E4B /* IDBObjectStore.h in Headers */,
- C585A6EF11D4FB3D004C3E4B /* IDBObjectStoreImpl.h in Headers */,
- C585A6F111D4FB3D004C3E4B /* IDBObjectStoreRequest.h in Headers */,
+ C585A6EF11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.h in Headers */,
+ C585A6F111D4FB3D004C3E4B /* IDBObjectStoreBackendInterface.h in Headers */,
C585A6F411D4FB3D004C3E4B /* IDBRequest.h in Headers */,
C585A6F711D4FB3D004C3E4B /* IDBSuccessEvent.h in Headers */,
+ B656626B120B115A006EA85C /* IDBTransaction.h in Headers */,
1A71D57C0F33819000F9CE4E /* IdentifierRep.h in Headers */,
49E911C50EF86D47009D0CAF /* IdentityTransformOperation.h in Headers */,
C0C054CD1118C8E400CE2636 /* IDLParser.pm in Headers */,
@@ -18629,9 +18787,9 @@
1C81B95A0E97330800266E07 /* InspectorController.h in Headers */,
82B658981189E39200E052A1 /* InspectorCSSStore.h in Headers */,
41F062140F5F192600A07EAC /* InspectorDatabaseResource.h in Headers */,
+ F33F053E120B0DA500E5743A /* InspectorDebuggerAgent.h in Headers */,
7A24587C1021EAF4000A00AA /* InspectorDOMAgent.h in Headers */,
41F061740F5F00AC00A07EAC /* InspectorDOMStorageResource.h in Headers */,
- 7AED3E060FBB1EAA00D2B03C /* InspectorFrontend.h in Headers */,
F344C7141125B82C00F26EEE /* InspectorFrontendClient.h in Headers */,
F344C75311294D9D00F26EEE /* InspectorFrontendClientLocal.h in Headers */,
7A0E770F10C00A8800A0276E /* InspectorFrontendHost.h in Headers */,
@@ -18713,6 +18871,7 @@
BCBCAE3D0FF19399000762AE /* JSDataGridDataSource.h in Headers */,
BC53DAC211432EEE000D817E /* JSDebugWrapperSet.h in Headers */,
4162A4581011464700DFF3ED /* JSDedicatedWorkerContext.h in Headers */,
+ 31FB1A66120A5D3F00DC02A0 /* JSDeviceMotionEvent.h in Headers */,
59A86008119DAFA100DEF1EF /* JSDeviceOrientationEvent.h in Headers */,
659DDC8309E198BA001BF3C6 /* JSDocument.h in Headers */,
1A494EDF0A123F4C00FDAFC1 /* JSDocumentFragment.h in Headers */,
@@ -18828,18 +18987,20 @@
1A85B2110A1B258700D8C87C /* JSHTMLUListElement.h in Headers */,
E44614170CD6826900FADA75 /* JSHTMLVideoElement.h in Headers */,
C585A67D11D4FB08004C3E4B /* JSIDBAny.h in Headers */,
+ 81BE20D311F4BC3200915DFA /* JSIDBCursor.h in Headers */,
+ C585A68311D4FB08004C3E4B /* JSIDBDatabase.h in Headers */,
C585A67F11D4FB08004C3E4B /* JSIDBDatabaseError.h in Headers */,
C585A68111D4FB08004C3E4B /* JSIDBDatabaseException.h in Headers */,
- C585A68311D4FB08004C3E4B /* JSIDBDatabaseRequest.h in Headers */,
C585A68511D4FB08004C3E4B /* JSIDBErrorEvent.h in Headers */,
C585A68711D4FB08004C3E4B /* JSIDBEvent.h in Headers */,
C585A69711D4FB13004C3E4B /* JSIDBFactory.h in Headers */,
C572EE1F1201C9BC007D8F82 /* JSIDBIndex.h in Headers */,
C585A68B11D4FB08004C3E4B /* JSIDBKey.h in Headers */,
C585A68D11D4FB08004C3E4B /* JSIDBKeyRange.h in Headers */,
- C585A68F11D4FB08004C3E4B /* JSIDBObjectStoreRequest.h in Headers */,
+ C585A68F11D4FB08004C3E4B /* JSIDBObjectStore.h in Headers */,
C585A69111D4FB08004C3E4B /* JSIDBRequest.h in Headers */,
C585A69311D4FB08004C3E4B /* JSIDBSuccessEvent.h in Headers */,
+ B6566270120B1227006EA85C /* JSIDBTransaction.h in Headers */,
BC6C49F40D7DBA0500FFA558 /* JSImageConstructor.h in Headers */,
A77979290D6B9E64003851B9 /* JSImageData.h in Headers */,
7A0E76DB10BF059800A0276E /* JSInjectedScriptHost.h in Headers */,
@@ -19221,6 +19382,7 @@
B22279710D00BF220071B782 /* PatternAttributes.h in Headers */,
B27535650B053814002CE64F /* PDFDocumentImage.h in Headers */,
B27535820B053814002CE64F /* Pen.h in Headers */,
+ 8A7CC96B12076D73001D4588 /* PendingScript.h in Headers */,
8A844D0511D3C18E0014065C /* Performance.h in Headers */,
49D5DC2E0F423A73008F20FD /* PerspectiveTransformOperation.h in Headers */,
377C4CDF1014E9F600B9AE42 /* PlaceholderDocument.h in Headers */,
@@ -19245,6 +19407,7 @@
5174E20A10A1F44F00F95E6F /* PopStateEvent.h in Headers */,
0668E18B0ADD9624004128E0 /* PopupMenu.h in Headers */,
ABC128770B33AA6D00C693D5 /* PopupMenuClient.h in Headers */,
+ D39D006D11F8E308006041F2 /* PopupMenuMac.h in Headers */,
BC3BE12B0E98092F00835588 /* PopupMenuStyle.h in Headers */,
93F199DE08245E59001E9ABC /* Position.h in Headers */,
FE80D7CB0E9C1F25000D6F75 /* PositionCallback.h in Headers */,
@@ -19306,6 +19469,7 @@
A8EA7A500A191A5200A8EF5F /* RenderListMarker.h in Headers */,
0F56028F0E4B76580065B038 /* RenderMarquee.h in Headers */,
FA654A701108ABFF002615E0 /* RenderMathMLBlock.h in Headers */,
+ 0F69B9CA120FE1D6000E1FC7 /* RenderMathMLFenced.h in Headers */,
FAA10571114C2DF700940A01 /* RenderMathMLFraction.h in Headers */,
FA0B1F8711125CEE007F9839 /* RenderMathMLMath.h in Headers */,
FA5FAE4311126A5D00D3750F /* RenderMathMLOperator.h in Headers */,
@@ -19410,7 +19574,6 @@
5162C7F511F77EFB00612EFE /* SchemeRegistry.h in Headers */,
BCEC01BE0C274DAC009F4EC9 /* Screen.h in Headers */,
A84D82C111D3474800972990 /* ScriptableDocumentParser.h in Headers */,
- 7A1E88F6101CC384000C4DF5 /* ScriptArray.h in Headers */,
7AFD4A8B1131C2760035B883 /* ScriptBreakpoint.h in Headers */,
41F1D21F0EF35C2A00DA8753 /* ScriptCachedFrameData.h in Headers */,
416E75CB0EDF90C700360E1D /* ScriptCallFrame.h in Headers */,
@@ -19444,6 +19607,7 @@
93C09C860B0657AA005ABD4D /* ScrollTypes.h in Headers */,
BC6D6E2609AF943500F59759 /* ScrollView.h in Headers */,
AB7170890B3118080017123E /* SearchPopupMenu.h in Headers */,
+ D39D009D11F907E6006041F2 /* SearchPopupMenuMac.h in Headers */,
33C0CCD5112C5E6200CE057D /* SecureTextInput.h in Headers */,
BCD0E0FB0E972C3500265DEA /* SecurityOrigin.h in Headers */,
BCD0E0FC0E972C3500265DEA /* SecurityOriginHash.h in Headers */,
@@ -19674,9 +19838,13 @@
B2227A540D00BF220071B782 /* SVGPaint.h in Headers */,
B2227A570D00BF220071B782 /* SVGParserUtilities.h in Headers */,
8476C9EB11DF6A2900555B02 /* SVGPathBuilder.h in Headers */,
+ 8419D2A7120D92D000141F8F /* SVGPathByteStream.h in Headers */,
+ 8419D2A9120D92D000141F8F /* SVGPathByteStreamBuilder.h in Headers */,
+ 8419D2AD120D92FC00141F8F /* SVGPathByteStreamSource.h in Headers */,
8476C9EC11DF6A2900555B02 /* SVGPathConsumer.h in Headers */,
B2227A590D00BF220071B782 /* SVGPathElement.h in Headers */,
8476C9F011DF6A5800555B02 /* SVGPathParser.h in Headers */,
+ 84300BD4120C9A710021954A /* SVGPathParserFactory.h in Headers */,
B2227A5B0D00BF220071B782 /* SVGPathSeg.h in Headers */,
B2227A5E0D00BF220071B782 /* SVGPathSegArc.h in Headers */,
B2227A620D00BF220071B782 /* SVGPathSegClosePath.h in Headers */,
@@ -19689,7 +19857,11 @@
B2227A7D0D00BF220071B782 /* SVGPathSegLinetoVertical.h in Headers */,
B2227A810D00BF220071B782 /* SVGPathSegList.h in Headers */,
8476C9E611DF6A0B00555B02 /* SVGPathSegListBuilder.h in Headers */,
+ 84B6B978120F13E500B8EFAF /* SVGPathSegListSource.h in Headers */,
B2227A840D00BF220071B782 /* SVGPathSegMoveto.h in Headers */,
+ 84300BD8120C9AD40021954A /* SVGPathSource.h in Headers */,
+ 8419D2BA120E0C7600141F8F /* SVGPathStringBuilder.h in Headers */,
+ 84300BD6120C9AAC0021954A /* SVGPathStringSource.h in Headers */,
B2227A880D00BF220071B782 /* SVGPatternElement.h in Headers */,
B25599950D00D8BA00BB825C /* SVGPointLightSource.h in Headers */,
B2227A8C0D00BF220071B782 /* SVGPointList.h in Headers */,
@@ -19825,6 +19997,7 @@
93309E1E099E64920056E581 /* visible_units.h in Headers */,
93309E20099E64920056E581 /* VisiblePosition.h in Headers */,
A883DF280F3D045D00F19BF6 /* VisibleSelection.h in Headers */,
+ 515788C11207852C00A37C4A /* VisitedLinkStrategy.h in Headers */,
E44613B60CD6344E00FADA75 /* VoidCallback.h in Headers */,
93F199A808245E59001E9ABC /* WebCoreFrameView.h in Headers */,
BC53D911114310CC000D817E /* WebCoreJSClientData.h in Headers */,
@@ -19845,6 +20018,7 @@
49C7B9CF1042D32F0009D447 /* WebGLFramebuffer.h in Headers */,
6E47E66110B7944B00B186C8 /* WebGLGetInfo.h in Headers */,
49FFBF3F11C93EE3006A7118 /* WebGLLayer.h in Headers */,
+ 49C7B9D51042D32F0009D447 /* WebGLObject.h in Headers */,
49C7B9D71042D32F0009D447 /* WebGLProgram.h in Headers */,
49C7B9DA1042D32F0009D447 /* WebGLRenderbuffer.h in Headers */,
49C7B9E01042D32F0009D447 /* WebGLRenderingContext.h in Headers */,
@@ -19965,9 +20139,7 @@
E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
97DD4D870FDF4D6E00ECF9A4 /* XSSAuditor.h in Headers */,
CE172E011136E8CE0062A533 /* ZoomMode.h in Headers */,
- 515788C11207852C00A37C4A /* VisitedLinkStrategy.h in Headers */,
- D39D006D11F8E308006041F2 /* PopupMenuMac.h in Headers */,
- D39D009D11F907E6006041F2 /* SearchPopupMenuMac.h in Headers */,
+ 7AB0B1C11211A62200A76940 /* InspectorStorageAgent.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -20027,6 +20199,7 @@
isa = PBXProject;
buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */;
compatibilityVersion = "Xcode 2.4";
+ developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
@@ -20289,6 +20462,7 @@
29A812350FBB9C1D00510293 /* AccessibilityTableColumn.cpp in Sources */,
29A812400FBB9C1D00510293 /* AccessibilityTableHeaderContainer.cpp in Sources */,
29A812290FBB9C1D00510293 /* AccessibilityTableRow.cpp in Sources */,
+ B5D31DFA11CF610B009F22B4 /* ActiveDOMCallback.cpp in Sources */,
E1C4DE6E0EA75C650023CCD6 /* ActiveDOMObject.cpp in Sources */,
84D0C4041115F1D40018AA34 /* AffineTransform.cpp in Sources */,
49E912AA0EFAC906009D0CAF /* Animation.cpp in Sources */,
@@ -20309,6 +20483,7 @@
49EECDE210503C2400099FAB /* ArrayBuffer.cpp in Sources */,
49EECDDF10503C2400099FAB /* ArrayBufferView.cpp in Sources */,
B0149E7D11A4B21500196A7B /* AsyncImageResizer.cpp in Sources */,
+ 8A413AE11207BBA50082016E /* AsyncScriptRunner.cpp in Sources */,
A8C4A80E09D563270003AC8D /* Attr.cpp in Sources */,
A8C4A80C09D563270003AC8D /* Attribute.cpp in Sources */,
934F71380D5A6EFF00018D69 /* AuthenticationChallengeBase.cpp in Sources */,
@@ -20354,7 +20529,6 @@
BCB16C270979C3BD00467741 /* CachedXSLStyleSheet.cpp in Sources */,
6E4E91AC10F7FB3100A2779C /* CanvasContextAttributes.cpp in Sources */,
49484FC1102CF23C00187DD3 /* CanvasGradient.cpp in Sources */,
- 49C7B9D41042D32F0009D447 /* CanvasObject.cpp in Sources */,
49484FC4102CF23C00187DD3 /* CanvasPattern.cpp in Sources */,
49484FC7102CF23C00187DD3 /* CanvasPixelArray.cpp in Sources */,
49C7B9DC1042D32F0009D447 /* CanvasRenderingContext.cpp in Sources */,
@@ -20474,6 +20648,9 @@
93309DDE099E64920056E581 /* DeleteFromTextNodeCommand.cpp in Sources */,
93309DE0099E64920056E581 /* DeleteSelectionCommand.cpp in Sources */,
93F19A3C08245E59001E9ABC /* DeprecatedPtrListImpl.cpp in Sources */,
+ 31FB1A58120A5D0600DC02A0 /* DeviceMotionController.cpp in Sources */,
+ 31FB1A5A120A5D0600DC02A0 /* DeviceMotionData.cpp in Sources */,
+ 31FB1A5C120A5D0600DC02A0 /* DeviceMotionEvent.cpp in Sources */,
59D1C10411EB5DCF00B638C8 /* DeviceOrientation.cpp in Sources */,
59309A1111F4AE5800250603 /* DeviceOrientationClientMock.cpp in Sources */,
59A8F1D411A69508001AC34A /* DeviceOrientationController.cpp in Sources */,
@@ -21005,8 +21182,10 @@
51E1ECC00C91C90400DC255B /* IconRecord.cpp in Sources */,
C585A6CC11D4FB3D004C3E4B /* IDBAny.cpp in Sources */,
C585A66211D4FAC5004C3E4B /* IDBBindingUtilities.cpp in Sources */,
- C585A6D511D4FB3D004C3E4B /* IDBDatabaseImpl.cpp in Sources */,
- C585A6D711D4FB3D004C3E4B /* IDBDatabaseRequest.cpp in Sources */,
+ 81A73260121018A400FC0D9E /* IDBCursor.cpp in Sources */,
+ 81BE209811F4AB8D00915DFA /* IDBCursorBackendImpl.cpp in Sources */,
+ B691C1F91206D4A00025D980 /* IDBDatabase.cpp in Sources */,
+ C585A6D511D4FB3D004C3E4B /* IDBDatabaseBackendImpl.cpp in Sources */,
C585A6DA11D4FB3D004C3E4B /* IDBErrorEvent.cpp in Sources */,
C585A6DD11D4FB3D004C3E4B /* IDBEvent.cpp in Sources */,
C585A6FD11D4FB3D004C3E4B /* IDBFactory.cpp in Sources */,
@@ -21016,10 +21195,11 @@
C572EE0D1201C736007D8F82 /* IDBIndexBackendImpl.cpp in Sources */,
C585A6E611D4FB3D004C3E4B /* IDBKey.cpp in Sources */,
C585A6E911D4FB3D004C3E4B /* IDBKeyRange.cpp in Sources */,
- C585A6EE11D4FB3D004C3E4B /* IDBObjectStoreImpl.cpp in Sources */,
- C585A6F011D4FB3D004C3E4B /* IDBObjectStoreRequest.cpp in Sources */,
+ C585A6F011D4FB3D004C3E4B /* IDBObjectStore.cpp in Sources */,
+ C585A6EE11D4FB3D004C3E4B /* IDBObjectStoreBackendImpl.cpp in Sources */,
C585A6F311D4FB3D004C3E4B /* IDBRequest.cpp in Sources */,
C585A6F611D4FB3D004C3E4B /* IDBSuccessEvent.cpp in Sources */,
+ B656626A120B115A006EA85C /* IDBTransaction.cpp in Sources */,
1A71D57B0F33819000F9CE4E /* IdentifierRep.cpp in Sources */,
B275356F0B053814002CE64F /* Image.cpp in Sources */,
B2A10B940B3818D700099AA4 /* ImageBufferCG.cpp in Sources */,
@@ -21051,9 +21231,9 @@
1C81B95B0E97330800266E07 /* InspectorController.cpp in Sources */,
82B6589A1189E47600E052A1 /* InspectorCSSStore.cpp in Sources */,
41F062150F5F192600A07EAC /* InspectorDatabaseResource.cpp in Sources */,
+ F33F053D120B0DA500E5743A /* InspectorDebuggerAgent.cpp in Sources */,
7A24587B1021EAF4000A00AA /* InspectorDOMAgent.cpp in Sources */,
41F061750F5F00AC00A07EAC /* InspectorDOMStorageResource.cpp in Sources */,
- 7AED3E050FBB1EAA00D2B03C /* InspectorFrontend.cpp in Sources */,
F344C75811294FF600F26EEE /* InspectorFrontendClientLocal.cpp in Sources */,
7A0E770E10C00A8800A0276E /* InspectorFrontendHost.cpp in Sources */,
41F062020F5F0B6600A07EAC /* InspectorResource.cpp in Sources */,
@@ -21141,9 +21321,7 @@
E10B93C30B73C291003ED890 /* JSCustomXPathNSResolver.cpp in Sources */,
1AE82F8F0CAAFA9D002237AE /* JSDatabase.cpp in Sources */,
B59DD69A119029E5007E9684 /* JSDatabaseCallback.cpp in Sources */,
- BCCE58AC1061E8CF008FB35A /* JSDatabaseCustom.cpp in Sources */,
B58CEB6A11913607002A6790 /* JSDatabaseSync.cpp in Sources */,
- B55D5AA81191325000BCC315 /* JSDatabaseSyncCustom.cpp in Sources */,
BC77D1690FF19F560070887B /* JSDataGridColumn.cpp in Sources */,
BC77D16B0FF19F560070887B /* JSDataGridColumnList.cpp in Sources */,
BC77D1520FF19C730070887B /* JSDataGridColumnListCustom.cpp in Sources */,
@@ -21152,6 +21330,8 @@
4162A4571011464700DFF3ED /* JSDedicatedWorkerContext.cpp in Sources */,
4162A454101145E300DFF3ED /* JSDedicatedWorkerContextCustom.cpp in Sources */,
33503CC010179C1A003B47E1 /* JSDesktopNotificationsCustom.cpp in Sources */,
+ 31FB1A65120A5D3F00DC02A0 /* JSDeviceMotionEvent.cpp in Sources */,
+ 31FB1A6C120A5D6900DC02A0 /* JSDeviceMotionEventCustom.cpp in Sources */,
59A86006119DAF7F00DEF1EF /* JSDeviceOrientationEvent.cpp in Sources */,
590E1B4B11E4EF700069F784 /* JSDeviceOrientationEventCustom.cpp in Sources */,
659DDC8209E198BA001BF3C6 /* JSDocument.cpp in Sources */,
@@ -21297,9 +21477,10 @@
E44614160CD6826900FADA75 /* JSHTMLVideoElement.cpp in Sources */,
C585A67C11D4FB08004C3E4B /* JSIDBAny.cpp in Sources */,
C585A65E11D4FAB2004C3E4B /* JSIDBAnyCustom.cpp in Sources */,
+ 81BE20D211F4BC3200915DFA /* JSIDBCursor.cpp in Sources */,
+ C585A68211D4FB08004C3E4B /* JSIDBDatabase.cpp in Sources */,
C585A67E11D4FB08004C3E4B /* JSIDBDatabaseError.cpp in Sources */,
C585A68011D4FB08004C3E4B /* JSIDBDatabaseException.cpp in Sources */,
- C585A68211D4FB08004C3E4B /* JSIDBDatabaseRequest.cpp in Sources */,
C585A68411D4FB08004C3E4B /* JSIDBErrorEvent.cpp in Sources */,
C585A68611D4FB08004C3E4B /* JSIDBEvent.cpp in Sources */,
C585A69611D4FB13004C3E4B /* JSIDBFactory.cpp in Sources */,
@@ -21307,9 +21488,10 @@
C585A68A11D4FB08004C3E4B /* JSIDBKey.cpp in Sources */,
C585A65F11D4FAB2004C3E4B /* JSIDBKeyCustom.cpp in Sources */,
C585A68C11D4FB08004C3E4B /* JSIDBKeyRange.cpp in Sources */,
- C585A68E11D4FB08004C3E4B /* JSIDBObjectStoreRequest.cpp in Sources */,
+ C585A68E11D4FB08004C3E4B /* JSIDBObjectStore.cpp in Sources */,
C585A69011D4FB08004C3E4B /* JSIDBRequest.cpp in Sources */,
C585A69211D4FB08004C3E4B /* JSIDBSuccessEvent.cpp in Sources */,
+ B6566271120B1227006EA85C /* JSIDBTransaction.cpp in Sources */,
BC6C49F30D7DBA0500FFA558 /* JSImageConstructor.cpp in Sources */,
A77979280D6B9E64003851B9 /* JSImageData.cpp in Sources */,
A7D0318E0E93540300E24ACD /* JSImageDataCustom.cpp in Sources */,
@@ -21627,7 +21809,7 @@
BCB16C2C0979C3BD00467741 /* loader.cpp in Sources */,
656D37330ADBA5DE00A4554D /* LoaderNSURLExtras.mm in Sources */,
06E81EEC0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm in Sources */,
- 935207C009BD412100F2038D /* LocalizedStringsMac.mm in Sources */,
+ C046E1AC1208A9FE00BA2CF7 /* LocalizedStrings.cpp in Sources */,
511F23170DC160DA004F0032 /* LocalStorageTask.cpp in Sources */,
511F23190DC160DA004F0032 /* LocalStorageThread.cpp in Sources */,
BCE1C41C0D982981003B02F2 /* Location.cpp in Sources */,
@@ -21716,6 +21898,7 @@
A80A38FE0E50CC8200A25EBC /* PatternCG.cpp in Sources */,
B27535640B053814002CE64F /* PDFDocumentImage.cpp in Sources */,
B27535810B053814002CE64F /* Pen.cpp in Sources */,
+ 8A7CC97012076F8A001D4588 /* PendingScript.cpp in Sources */,
8A844D0411D3C18E0014065C /* Performance.cpp in Sources */,
49D5DC2D0F423A73008F20FD /* PerspectiveTransformOperation.cpp in Sources */,
377C4CE01014E9F600B9AE42 /* PlaceholderDocument.cpp in Sources */,
@@ -21785,6 +21968,7 @@
A8EA7A510A191A5200A8EF5F /* RenderListMarker.cpp in Sources */,
0F5602900E4B76580065B038 /* RenderMarquee.cpp in Sources */,
FA654A6F1108ABFF002615E0 /* RenderMathMLBlock.cpp in Sources */,
+ 0F69B9C9120FE1D6000E1FC7 /* RenderMathMLFenced.cpp in Sources */,
FAA10570114C2DF700940A01 /* RenderMathMLFraction.cpp in Sources */,
FA0B1F8611125CEE007F9839 /* RenderMathMLMath.cpp in Sources */,
FA5FAE4211126A5D00D3750F /* RenderMathMLOperator.cpp in Sources */,
@@ -21886,7 +22070,6 @@
5162C7F411F77EFB00612EFE /* SchemeRegistry.cpp in Sources */,
BCEC01BD0C274DAC009F4EC9 /* Screen.cpp in Sources */,
A84D82C211D3474800972990 /* ScriptableDocumentParser.cpp in Sources */,
- 7A1E88F5101CC384000C4DF5 /* ScriptArray.cpp in Sources */,
200B190911C277D900DCCD3A /* ScriptBreakpoint.cpp in Sources */,
41F1D2200EF35C2A00DA8753 /* ScriptCachedFrameData.cpp in Sources */,
416E75CC0EDF90C700360E1D /* ScriptCallFrame.cpp in Sources */,
@@ -21901,6 +22084,7 @@
41002CCE0F66EDEF009E660D /* ScriptFunctionCall.cpp in Sources */,
4FD8D0F2119C718B002FA825 /* ScriptGCEvent.cpp in Sources */,
41F066E50F64BCF600A07EAC /* ScriptObject.cpp in Sources */,
+ F33F0282120947F200E5743A /* ScriptProfile.cpp in Sources */,
9F72305011184B4100AD0126 /* ScriptProfiler.cpp in Sources */,
4127D5370F8AAB1D00E424F5 /* ScriptState.cpp in Sources */,
934CC0E10ED39D6F00A658F2 /* ScriptValue.cpp in Sources */,
@@ -22122,8 +22306,12 @@
B2227A530D00BF220071B782 /* SVGPaint.cpp in Sources */,
B2227A560D00BF220071B782 /* SVGParserUtilities.cpp in Sources */,
8476C9EA11DF6A2900555B02 /* SVGPathBuilder.cpp in Sources */,
+ 8419D2A8120D92D000141F8F /* SVGPathByteStreamBuilder.cpp in Sources */,
+ 8419D2AC120D92FC00141F8F /* SVGPathByteStreamSource.cpp in Sources */,
B2227A580D00BF220071B782 /* SVGPathElement.cpp in Sources */,
8476C9EF11DF6A5800555B02 /* SVGPathParser.cpp in Sources */,
+ 84300BD3120C9A710021954A /* SVGPathParserFactory.cpp in Sources */,
+ A8BCFD05120A046100B5F122 /* SVGPathSeg.cpp in Sources */,
B2227A5D0D00BF220071B782 /* SVGPathSegArc.cpp in Sources */,
B2227A610D00BF220071B782 /* SVGPathSegClosePath.cpp in Sources */,
B2227A640D00BF220071B782 /* SVGPathSegCurvetoCubic.cpp in Sources */,
@@ -22135,7 +22323,10 @@
B2227A7C0D00BF220071B782 /* SVGPathSegLinetoVertical.cpp in Sources */,
B2227A800D00BF220071B782 /* SVGPathSegList.cpp in Sources */,
8476C9E511DF6A0B00555B02 /* SVGPathSegListBuilder.cpp in Sources */,
+ 84B6B977120F13E500B8EFAF /* SVGPathSegListSource.cpp in Sources */,
B2227A830D00BF220071B782 /* SVGPathSegMoveto.cpp in Sources */,
+ 8419D2B9120E0C7600141F8F /* SVGPathStringBuilder.cpp in Sources */,
+ 84300BDA120C9AED0021954A /* SVGPathStringSource.cpp in Sources */,
B2227A870D00BF220071B782 /* SVGPatternElement.cpp in Sources */,
B2227A8B0D00BF220071B782 /* SVGPointList.cpp in Sources */,
B2227A8E0D00BF220071B782 /* SVGPolyElement.cpp in Sources */,
@@ -22260,6 +22451,7 @@
49C7B9CE1042D32F0009D447 /* WebGLFramebuffer.cpp in Sources */,
6E47E66010B7944B00B186C8 /* WebGLGetInfo.cpp in Sources */,
49FFBF4011C93EE3006A7118 /* WebGLLayer.mm in Sources */,
+ 49C7B9D41042D32F0009D447 /* WebGLObject.cpp in Sources */,
49C7B9D61042D32F0009D447 /* WebGLProgram.cpp in Sources */,
49C7B9D91042D32F0009D447 /* WebGLRenderbuffer.cpp in Sources */,
49C7B9DF1042D32F0009D447 /* WebGLRenderingContext.cpp in Sources */,
@@ -22370,6 +22562,7 @@
93F19B0508245E59001E9ABC /* XSLTProcessorLibxslt.cpp in Sources */,
E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
97DD4D860FDF4D6E00ECF9A4 /* XSSAuditor.cpp in Sources */,
+ 7AB0B1C01211A62200A76940 /* InspectorStorageAgent.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/WebCore/accessibility/AXObjectCache.cpp b/WebCore/accessibility/AXObjectCache.cpp
index 750c611..907bb15 100644
--- a/WebCore/accessibility/AXObjectCache.cpp
+++ b/WebCore/accessibility/AXObjectCache.cpp
@@ -59,8 +59,13 @@
#endif
#include "InputElement.h"
#include "Page.h"
-#include "RenderObject.h"
+#include "RenderListBox.h"
+#include "RenderMenuList.h"
+#include "RenderTable.h"
+#include "RenderTableCell.h"
+#include "RenderTableRow.h"
#include "RenderProgress.h"
+#include "RenderSlider.h"
#include "RenderView.h"
#include <wtf/PassRefPtr.h>
@@ -160,80 +165,87 @@ AccessibilityObject* AXObjectCache::get(RenderObject* renderer)
return obj;
}
-
-bool AXObjectCache::nodeHasRole(Node* node, const AtomicString& role)
+
+// FIXME: This probably belongs on Node.
+// FIXME: This should take a const char*, but one caller passes nullAtom.
+bool nodeHasRole(Node* node, const String& role)
{
if (!node || !node->isElementNode())
return false;
-
+
return equalIgnoringCase(static_cast<Element*>(node)->getAttribute(roleAttr), role);
}
-AccessibilityObject* AXObjectCache::getOrCreate(RenderObject* renderer)
+static PassRefPtr<AccessibilityObject> createFromRenderer(RenderObject* renderer)
{
- if (!renderer)
- return 0;
-
- AccessibilityObject* obj = get(renderer);
+ // FIXME: How could renderer->node() ever not be an Element?
+ Node* node = renderer->node();
+
+ // If the node is aria role="list" or the aria role is empty and its a
+ // ul/ol/dl type (it shouldn't be a list if aria says otherwise).
+ if (node && ((nodeHasRole(node, "list") || nodeHasRole(node, "directory"))
+ || (nodeHasRole(node, nullAtom) && (node->hasTagName(ulTag) || node->hasTagName(olTag) || node->hasTagName(dlTag)))))
+ return AccessibilityList::create(renderer);
+
+ // aria tables
+ if (nodeHasRole(node, "grid") || nodeHasRole(node, "treegrid"))
+ return AccessibilityARIAGrid::create(renderer);
+ if (nodeHasRole(node, "row"))
+ return AccessibilityARIAGridRow::create(renderer);
+ if (nodeHasRole(node, "gridcell") || nodeHasRole(node, "columnheader") || nodeHasRole(node, "rowheader"))
+ return AccessibilityARIAGridCell::create(renderer);
- if (!obj) {
- Node* node = renderer->node();
- RefPtr<AccessibilityObject> newObj = 0;
- if (renderer->isListBox())
- newObj = AccessibilityListBox::create(renderer);
- else if (renderer->isMenuList())
- newObj = AccessibilityMenuList::create(renderer);
+#if ENABLE(VIDEO)
+ // media controls
+ if (node && node->isMediaControlElement())
+ return AccessibilityMediaControl::create(renderer);
+#endif
- // If the node is aria role="list" or the aria role is empty and its a ul/ol/dl type (it shouldn't be a list if aria says otherwise).
- else if (node && ((nodeHasRole(node, "list") || nodeHasRole(node, "directory"))
- || (nodeHasRole(node, nullAtom) && (node->hasTagName(ulTag) || node->hasTagName(olTag) || node->hasTagName(dlTag)))))
- newObj = AccessibilityList::create(renderer);
-
- // aria tables
- else if (nodeHasRole(node, "grid") || nodeHasRole(node, "treegrid"))
- newObj = AccessibilityARIAGrid::create(renderer);
- else if (nodeHasRole(node, "row"))
- newObj = AccessibilityARIAGridRow::create(renderer);
- else if (nodeHasRole(node, "gridcell") || nodeHasRole(node, "columnheader") || nodeHasRole(node, "rowheader"))
- newObj = AccessibilityARIAGridCell::create(renderer);
+ if (renderer->isBoxModelObject()) {
+ RenderBoxModelObject* cssBox = toRenderBoxModelObject(renderer);
+ if (cssBox->isListBox())
+ return AccessibilityListBox::create(toRenderListBox(cssBox));
+ if (cssBox->isMenuList())
+ return AccessibilityMenuList::create(toRenderMenuList(cssBox));
// standard tables
- else if (renderer->isTable())
- newObj = AccessibilityTable::create(renderer);
- else if (renderer->isTableRow())
- newObj = AccessibilityTableRow::create(renderer);
- else if (renderer->isTableCell())
- newObj = AccessibilityTableCell::create(renderer);
-
-#if ENABLE(VIDEO)
- // media controls
- else if (renderer->node() && renderer->node()->isMediaControlElement())
- newObj = AccessibilityMediaControl::create(renderer);
-#endif
+ if (cssBox->isTable())
+ return AccessibilityTable::create(toRenderTable(cssBox));
+ if (cssBox->isTableRow())
+ return AccessibilityTableRow::create(toRenderTableRow(cssBox));
+ if (cssBox->isTableCell())
+ return AccessibilityTableCell::create(toRenderTableCell(cssBox));
#if ENABLE(PROGRESS_TAG)
// progress bar
- else if (renderer->isProgress())
- newObj = AccessibilityProgressIndicator::create(toRenderProgress(renderer));
+ if (cssBox->isProgress())
+ return AccessibilityProgressIndicator::create(toRenderProgress(cssBox));
#endif
// input type=range
- else if (renderer->isSlider())
- newObj = AccessibilitySlider::create(renderer);
-
- else
- newObj = AccessibilityRenderObject::create(renderer);
-
- obj = newObj.get();
-
- getAXID(obj);
-
- m_renderObjectMapping.set(renderer, obj->axObjectID());
- m_objects.set(obj->axObjectID(), obj);
- attachWrapper(obj);
+ if (cssBox->isSlider())
+ return AccessibilitySlider::create(toRenderSlider(cssBox));
}
-
- return obj;
+
+ return AccessibilityRenderObject::create(renderer);
+}
+
+AccessibilityObject* AXObjectCache::getOrCreate(RenderObject* renderer)
+{
+ if (!renderer)
+ return 0;
+
+ if (AccessibilityObject* obj = get(renderer))
+ return obj;
+
+ RefPtr<AccessibilityObject> newObj = createFromRenderer(renderer);
+
+ getAXID(newObj.get());
+
+ m_renderObjectMapping.set(renderer, newObj->axObjectID());
+ m_objects.set(newObj->axObjectID(), newObj);
+ attachWrapper(newObj.get());
+ return newObj.get();
}
AccessibilityObject* AXObjectCache::getOrCreate(AccessibilityRole role)
diff --git a/WebCore/accessibility/AXObjectCache.h b/WebCore/accessibility/AXObjectCache.h
index f18d08a..6da6842 100644
--- a/WebCore/accessibility/AXObjectCache.h
+++ b/WebCore/accessibility/AXObjectCache.h
@@ -29,6 +29,7 @@
#include "AccessibilityObject.h"
#include "Timer.h"
#include <limits.h>
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
#include <wtf/RefPtr.h>
@@ -45,7 +46,6 @@ class HTMLAreaElement;
class Node;
class Page;
class RenderObject;
-class String;
class VisiblePosition;
struct TextMarkerData {
@@ -124,8 +124,6 @@ public:
void postNotification(RenderObject*, AXNotification, bool postToElement, PostType = PostAsynchronously);
void postNotification(AccessibilityObject*, Document*, AXNotification, bool postToElement, PostType = PostAsynchronously);
- bool nodeHasRole(Node*, const AtomicString& role);
-
protected:
void postPlatformNotification(AccessibilityObject*, AXNotification);
@@ -146,6 +144,8 @@ private:
AXID getAXID(AccessibilityObject*);
};
+bool nodeHasRole(Node*, const String& role);
+
#if !HAVE(ACCESSIBILITY)
inline void AXObjectCache::handleActiveDescendantChanged(RenderObject*) { }
inline void AXObjectCache::handleAriaRoleChanged(RenderObject*) { }
diff --git a/WebCore/accessibility/AccessibilityARIAGrid.h b/WebCore/accessibility/AccessibilityARIAGrid.h
index 3511f0f..dc3c3ee 100644
--- a/WebCore/accessibility/AccessibilityARIAGrid.h
+++ b/WebCore/accessibility/AccessibilityARIAGrid.h
@@ -30,10 +30,10 @@
#define AccessibilityARIAGrid_h
#include "AccessibilityTable.h"
+#include <wtf/Forward.h>
namespace WebCore {
-class String;
class AccessibilityTableCell;
class AccessibilityTableHeaderContainer;
diff --git a/WebCore/accessibility/AccessibilityImageMapLink.cpp b/WebCore/accessibility/AccessibilityImageMapLink.cpp
index 924ba21..9b77400 100644
--- a/WebCore/accessibility/AccessibilityImageMapLink.cpp
+++ b/WebCore/accessibility/AccessibilityImageMapLink.cpp
@@ -33,18 +33,15 @@
#include "AccessibilityRenderObject.h"
#include "Document.h"
#include "HTMLNames.h"
-#include "IntRect.h"
-#include "RenderObject.h"
-
-using namespace std;
+#include "RenderBoxModelObject.h"
namespace WebCore {
using namespace HTMLNames;
AccessibilityImageMapLink::AccessibilityImageMapLink()
- : m_areaElement(0),
- m_mapElement(0)
+ : m_areaElement(0)
+ , m_mapElement(0)
{
}
diff --git a/WebCore/accessibility/AccessibilityListBoxOption.h b/WebCore/accessibility/AccessibilityListBoxOption.h
index c4c9315..c500283 100644
--- a/WebCore/accessibility/AccessibilityListBoxOption.h
+++ b/WebCore/accessibility/AccessibilityListBoxOption.h
@@ -31,6 +31,7 @@
#include "AccessibilityObject.h"
#include "HTMLElement.h"
+#include <wtf/Forward.h>
namespace WebCore {
@@ -38,7 +39,6 @@ class AccessibilityListBox;
class Element;
class HTMLElement;
class HTMLSelectElement;
-class String;
class AccessibilityListBoxOption : public AccessibilityObject {
diff --git a/WebCore/accessibility/AccessibilityMenuList.cpp b/WebCore/accessibility/AccessibilityMenuList.cpp
index 05cdf97..bde4cd4 100644
--- a/WebCore/accessibility/AccessibilityMenuList.cpp
+++ b/WebCore/accessibility/AccessibilityMenuList.cpp
@@ -32,10 +32,14 @@
namespace WebCore {
-AccessibilityMenuList::AccessibilityMenuList(RenderObject* renderer)
+AccessibilityMenuList::AccessibilityMenuList(RenderMenuList* renderer)
: AccessibilityRenderObject(renderer)
{
- ASSERT_ARG(renderer, renderer->isMenuList());
+}
+
+RenderMenuList* AccessibilityMenuList::renderer() const
+{
+ return toRenderMenuList(AccessibilityRenderObject::renderer());
}
bool AccessibilityMenuList::press() const
diff --git a/WebCore/accessibility/AccessibilityMenuList.h b/WebCore/accessibility/AccessibilityMenuList.h
index 376958f..4082f0a 100644
--- a/WebCore/accessibility/AccessibilityMenuList.h
+++ b/WebCore/accessibility/AccessibilityMenuList.h
@@ -33,16 +33,19 @@ namespace WebCore {
class AccessibilityMenuList;
class AccessibilityMenuListPopup;
class HTMLOptionElement;
+class RenderMenuList;
class AccessibilityMenuList : public AccessibilityRenderObject {
public:
- static PassRefPtr<AccessibilityMenuList> create(RenderObject* renderer) { return adoptRef(new AccessibilityMenuList(renderer)); }
+ static PassRefPtr<AccessibilityMenuList> create(RenderMenuList* renderer) { return adoptRef(new AccessibilityMenuList(renderer)); }
virtual bool isCollapsed() const;
virtual bool press() const;
+ RenderMenuList* renderer() const;
+
private:
- AccessibilityMenuList(RenderObject*);
+ AccessibilityMenuList(RenderMenuList*);
virtual bool isMenuList() const { return true; }
virtual AccessibilityRole roleValue() const { return PopUpButtonRole; }
diff --git a/WebCore/accessibility/AccessibilityMenuListPopup.cpp b/WebCore/accessibility/AccessibilityMenuListPopup.cpp
index 48c2fab..515e02f 100644
--- a/WebCore/accessibility/AccessibilityMenuListPopup.cpp
+++ b/WebCore/accessibility/AccessibilityMenuListPopup.cpp
@@ -31,7 +31,7 @@
#include "AccessibilityMenuListOption.h"
#include "HTMLNames.h"
#include "HTMLSelectElement.h"
-#include "RenderObject.h"
+#include "RenderMenuList.h"
namespace WebCore {
diff --git a/WebCore/accessibility/AccessibilityObject.cpp b/WebCore/accessibility/AccessibilityObject.cpp
index b0ae86b..a6bb033 100644
--- a/WebCore/accessibility/AccessibilityObject.cpp
+++ b/WebCore/accessibility/AccessibilityObject.cpp
@@ -378,16 +378,15 @@ VisiblePositionRange AccessibilityObject::visiblePositionRangeForRange(const Pla
// Gtk ATs need this for all text objects; not just text controls.
if (!textLength) {
Node* node = this->node();
- if (node) {
- RenderText* renderText = toRenderText(node->renderer());
- if (renderText)
- textLength = renderText->textLength();
-
- // Get the text length from the elements under the
- // accessibility object if not a RenderText object.
- if (!textLength && allowsTextRanges())
- textLength = textUnderElement().length();
+ RenderObject* renderer = node ? node->renderer() : 0;
+ if (renderer && renderer->isText()) {
+ RenderText* renderText = toRenderText(renderer);
+ textLength = renderText ? renderText->textLength() : 0;
}
+ // Get the text length from the elements under the
+ // accessibility object if the value is still zero.
+ if (!textLength && allowsTextRanges())
+ textLength = textUnderElement().length();
}
#endif
if (range.start + range.length > textLength)
@@ -417,14 +416,11 @@ static bool replacedNodeNeedsCharacter(Node* replacedNode)
// Finds a RenderListItem parent give a node.
static RenderListItem* renderListItemContainerForNode(Node* node)
{
- for (Node* stringNode = node; stringNode; stringNode = stringNode->parent()) {
- RenderObject* renderObject = stringNode->renderer();
- if (!renderObject || !renderObject->isListItem())
- continue;
-
- return toRenderListItem(renderObject);
+ for (; node; node = node->parent()) {
+ RenderBoxModelObject* renderer = node->renderBoxModelObject();
+ if (renderer && renderer->isListItem())
+ return toRenderListItem(renderer);
}
-
return 0;
}
@@ -970,6 +966,15 @@ AccessibilityRole AccessibilityObject::ariaRoleToWebCoreRole(const String& value
return roleMap->get(value);
}
+const AtomicString& AccessibilityObject::placeholderValue() const
+{
+ const AtomicString& placeholder = getAttribute(placeholderAttr);
+ if (!placeholder.isEmpty())
+ return placeholder;
+
+ return nullAtom;
+}
+
bool AccessibilityObject::isInsideARIALiveRegion() const
{
if (supportsARIALiveRegion())
diff --git a/WebCore/accessibility/AccessibilityObject.h b/WebCore/accessibility/AccessibilityObject.h
index c517855..0e44d1b 100644
--- a/WebCore/accessibility/AccessibilityObject.h
+++ b/WebCore/accessibility/AccessibilityObject.h
@@ -34,6 +34,7 @@
#include "Range.h"
#include "VisiblePosition.h"
#include "VisibleSelection.h"
+#include <wtf/Forward.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
@@ -87,7 +88,6 @@ class Node;
class RenderObject;
class RenderListItem;
class VisibleSelection;
-class String;
class Widget;
typedef unsigned AXID;
@@ -428,6 +428,7 @@ public:
virtual FrameView* documentFrameView() const;
String language() const;
virtual unsigned hierarchicalLevel() const { return 0; }
+ const AtomicString& placeholderValue() const;
virtual void setFocused(bool) { }
virtual void setSelectedText(const String&) { }
diff --git a/WebCore/accessibility/AccessibilityRenderObject.cpp b/WebCore/accessibility/AccessibilityRenderObject.cpp
index a5e1cc3..24c29d4 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.cpp
+++ b/WebCore/accessibility/AccessibilityRenderObject.cpp
@@ -120,8 +120,19 @@ void AccessibilityRenderObject::detach()
m_renderer = 0;
}
-static inline bool isInlineWithContinuation(RenderObject* renderer)
+RenderBoxModelObject* AccessibilityRenderObject::renderBoxModelObject() const
{
+ if (!m_renderer || !m_renderer->isBoxModelObject())
+ return 0;
+ return toRenderBoxModelObject(m_renderer);
+}
+
+static inline bool isInlineWithContinuation(RenderObject* object)
+{
+ if (!object->isBoxModelObject())
+ return false;
+
+ RenderBoxModelObject* renderer = toRenderBoxModelObject(object);
if (!renderer->isRenderInline())
return false;
@@ -429,7 +440,7 @@ bool AccessibilityRenderObject::isTextControl() const
bool AccessibilityRenderObject::isNativeImage() const
{
- return m_renderer->isImage();
+ return m_renderer->isBoxModelObject() && toRenderBoxModelObject(m_renderer)->isImage();
}
bool AccessibilityRenderObject::isImage() const
@@ -439,12 +450,12 @@ bool AccessibilityRenderObject::isImage() const
bool AccessibilityRenderObject::isAttachment() const
{
- if (!m_renderer)
+ RenderBoxModelObject* renderer = renderBoxModelObject();
+ if (!renderer)
return false;
-
// Widgets are the replaced elements that we represent to AX as attachments
- bool isWidget = m_renderer && m_renderer->isWidget();
- ASSERT(!isWidget || (m_renderer->isReplaced() && !isImage()));
+ bool isWidget = renderer->isWidget();
+ ASSERT(!isWidget || (renderer->isReplaced() && !isImage()));
return isWidget && ariaRoleAttribute() == UnknownRole;
}
@@ -603,7 +614,7 @@ bool AccessibilityRenderObject::isMultiSelectable() const
if (equalIgnoringCase(ariaMultiSelectable, "false"))
return false;
- if (!m_renderer->isListBox())
+ if (!m_renderer->isBoxModelObject() || !toRenderBoxModelObject(m_renderer)->isListBox())
return false;
return m_renderer->node() && static_cast<HTMLSelectElement*>(m_renderer->node())->multiple();
}
@@ -628,11 +639,14 @@ bool AccessibilityRenderObject::isReadOnly() const
return !frame->isContentEditable();
}
- if (m_renderer->isTextField())
- return static_cast<HTMLInputElement*>(m_renderer->node())->readOnly();
- if (m_renderer->isTextArea())
- return static_cast<HTMLTextAreaElement*>(m_renderer->node())->readOnly();
-
+ if (m_renderer->isBoxModelObject()) {
+ RenderBoxModelObject* box = toRenderBoxModelObject(m_renderer);
+ if (box->isTextField())
+ return static_cast<HTMLInputElement*>(box->node())->readOnly();
+ if (box->isTextArea())
+ return static_cast<HTMLTextAreaElement*>(box->node())->readOnly();
+ }
+
return !m_renderer->node() || !m_renderer->node()->isContentEditable();
}
@@ -699,10 +713,10 @@ bool AccessibilityRenderObject::isControl() const
bool AccessibilityRenderObject::isFieldset() const
{
- if (!m_renderer)
+ RenderBoxModelObject* renderer = renderBoxModelObject();
+ if (!renderer)
return false;
-
- return m_renderer->isFieldset();
+ return renderer->isFieldset();
}
bool AccessibilityRenderObject::isGroup() const
@@ -789,7 +803,7 @@ Element* AccessibilityRenderObject::actionElement() const
} else if (node->hasTagName(buttonTag))
return static_cast<Element*>(node);
}
-
+
if (isFileUploadButton())
return static_cast<Element*>(m_renderer->node());
@@ -799,7 +813,7 @@ Element* AccessibilityRenderObject::actionElement() const
if (isImageButton())
return static_cast<Element*>(m_renderer->node());
- if (m_renderer->isMenuList())
+ if (m_renderer->isBoxModelObject() && toRenderBoxModelObject(m_renderer)->isMenuList())
return static_cast<Element*>(m_renderer->node());
AccessibilityRole role = roleValue();
@@ -1049,7 +1063,9 @@ String AccessibilityRenderObject::stringValue() const
{
if (!m_renderer || isPasswordField())
return String();
-
+
+ RenderBoxModelObject* cssBox = renderBoxModelObject();
+
if (ariaRoleAttribute() == StaticTextRole) {
String staticText = text();
if (!staticText.length())
@@ -1060,7 +1076,7 @@ String AccessibilityRenderObject::stringValue() const
if (m_renderer->isText())
return textUnderElement();
- if (m_renderer->isMenuList()) {
+ if (cssBox && cssBox->isMenuList()) {
// RenderMenuList will go straight to the text() of its selected item.
// This has to be overriden in the case where the selected item has an aria label
SelectElement* selectNode = toSelectElement(static_cast<Element*>(m_renderer->node()));
@@ -1082,7 +1098,7 @@ String AccessibilityRenderObject::stringValue() const
if (m_renderer->isListMarker())
return toRenderListMarker(m_renderer)->text();
- if (m_renderer->isRenderButton())
+ if (cssBox && cssBox->isRenderButton())
return toRenderButton(m_renderer)->text();
if (isWebArea()) {
@@ -1256,10 +1272,6 @@ String AccessibilityRenderObject::title() const
HTMLLabelElement* label = labelForElement(static_cast<Element*>(node));
if (label && !titleUIElement())
return label->innerText();
-
- const AtomicString& placeholder = getAttribute(placeholderAttr);
- if (!placeholder.isEmpty())
- return placeholder;
}
if (roleValue() == ButtonRole
@@ -1701,13 +1713,13 @@ bool AccessibilityRenderObject::accessibilityIsIgnored() const
// An ARIA tree can only have tree items and static text as children.
if (!isAllowedChildOfTree())
return true;
-
+
// ignore popup menu items because AppKit does
for (RenderObject* parent = m_renderer->parent(); parent; parent = parent->parent()) {
- if (parent->isMenuList())
+ if (parent->isBoxModelObject() && toRenderBoxModelObject(parent)->isMenuList())
return true;
}
-
+
// find out if this element is inside of a label element.
// if so, it may be ignored because it's the label for a checkbox or radio button
AccessibilityObject* controlObject = correspondingControlForLabelElement();
@@ -2182,20 +2194,24 @@ void AccessibilityRenderObject::setSelectedRows(AccessibilityChildrenVector& sel
void AccessibilityRenderObject::setValue(const String& string)
{
- if (!m_renderer)
+ if (!m_renderer || !m_renderer->node() || !m_renderer->node()->isElementNode())
return;
-
+ Element* element = static_cast<Element*>(m_renderer->node());
+
+ if (roleValue() == SliderRole)
+ element->setAttribute(aria_valuenowAttr, string);
+
+ if (!m_renderer->isBoxModelObject())
+ return;
+ RenderBoxModelObject* renderer = toRenderBoxModelObject(m_renderer);
+
// FIXME: Do we want to do anything here for ARIA textboxes?
- if (m_renderer->isTextField()) {
- HTMLInputElement* input = static_cast<HTMLInputElement*>(m_renderer->node());
- input->setValue(string);
- } else if (m_renderer->isTextArea()) {
- HTMLTextAreaElement* textArea = static_cast<HTMLTextAreaElement*>(m_renderer->node());
- textArea->setValue(string);
- } else if (roleValue() == SliderRole) {
- Node* element = m_renderer->node();
- if (element && element->isElementNode())
- static_cast<Element*>(element)->setAttribute(aria_valuenowAttr, string);
+ if (renderer->isTextField()) {
+ // FIXME: This is not safe! Other elements could have a TextField renderer.
+ static_cast<HTMLInputElement*>(element)->setValue(string);
+ } else if (renderer->isTextArea()) {
+ // FIXME: This is not safe! Other elements could have a TextArea renderer.
+ static_cast<HTMLTextAreaElement*>(element)->setValue(string);
}
}
@@ -2255,7 +2271,7 @@ FrameView* AccessibilityRenderObject::topDocumentFrameView() const
Widget* AccessibilityRenderObject::widget() const
{
- if (!m_renderer->isWidget())
+ if (!m_renderer->isBoxModelObject() || !toRenderBoxModelObject(m_renderer)->isWidget())
return 0;
return toRenderWidget(m_renderer)->widget();
}
@@ -2516,12 +2532,12 @@ VisiblePosition AccessibilityRenderObject::visiblePositionForPoint(const IntPoin
return VisiblePosition();
pointResult = result.localPoint();
-
+
// done if hit something other than a widget
- RenderObject* renderer = innerNode->renderer();
+ RenderBoxModelObject* renderer = innerNode->renderBoxModelObject();
if (!renderer->isWidget())
break;
-
+
// descend into widget (FRAME, IFRAME, OBJECT...)
Widget* widget = toRenderWidget(renderer)->widget();
if (!widget || !widget->isFrameView())
@@ -2706,13 +2722,13 @@ AccessibilityObject* AccessibilityRenderObject::doAccessibilityHitTest(const Int
AccessibilityObject* result = obj->document()->axObjectCache()->getOrCreate(obj);
- if (obj->isListBox()) {
+ if (obj->isBoxModelObject() && toRenderBoxModelObject(obj)->isListBox()) {
// Make sure the children are initialized so that hit testing finds the right element.
AccessibilityListBox* listBox = static_cast<AccessibilityListBox*>(result);
listBox->updateChildrenIfNecessary();
return listBox->doAccessibilityHitTest(point);
}
-
+
if (result->accessibilityIsIgnored()) {
// If this element is the label of a control, a hit test should return the control.
AccessibilityObject* controlObject = result->correspondingControlForLabelElement();
@@ -2870,13 +2886,12 @@ bool AccessibilityRenderObject::renderObjectIsObservable(RenderObject* renderer)
return true;
// AX clients will listen for AXSelectedChildrenChanged on listboxes.
- AXObjectCache* cache = axObjectCache();
Node* node = renderer->node();
- if (renderer->isListBox() || cache->nodeHasRole(node, "listbox"))
+ if (nodeHasRole(node, "listbox") || (renderer->isBoxModelObject() && toRenderBoxModelObject(renderer)->isListBox()))
return true;
-
+
// Textboxes should send out notifications.
- if (cache->nodeHasRole(node, "textbox"))
+ if (nodeHasRole(node, "textbox"))
return true;
return false;
@@ -2950,13 +2965,15 @@ AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
AccessibilityRole ariaRole = ariaRoleAttribute();
if (ariaRole != UnknownRole)
return ariaRole;
-
+
+ RenderBoxModelObject* cssBox = renderBoxModelObject();
+
if (node && node->isLink()) {
- if (m_renderer->isImage())
+ if (cssBox && cssBox->isImage())
return ImageMapRole;
return WebCoreLinkRole;
}
- if (m_renderer->isListItem())
+ if (cssBox && cssBox->isListItem())
return ListItemRole;
if (m_renderer->isListMarker())
return ListMarkerRole;
@@ -2964,23 +2981,23 @@ AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
return ButtonRole;
if (m_renderer->isText())
return StaticTextRole;
- if (m_renderer->isImage()) {
+ if (cssBox && cssBox->isImage()) {
if (node && node->hasTagName(inputTag))
return ButtonRole;
return ImageRole;
}
if (node && node->hasTagName(canvasTag))
return ImageRole;
-
- if (m_renderer->isRenderView())
+
+ if (cssBox && cssBox->isRenderView())
return WebAreaRole;
- if (m_renderer->isTextField())
+ if (cssBox && cssBox->isTextField())
return TextFieldRole;
- if (m_renderer->isTextArea())
+ if (cssBox && cssBox->isTextArea())
return TextAreaRole;
-
+
if (node && node->hasTagName(inputTag)) {
HTMLInputElement* input = static_cast<HTMLInputElement*>(node);
if (input->inputType() == HTMLInputElement::CHECKBOX)
@@ -2997,7 +3014,7 @@ AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
if (isFileUploadButton())
return ButtonRole;
- if (m_renderer->isMenuList())
+ if (cssBox && cssBox->isMenuList())
return PopUpButtonRole;
if (headingLevel())
@@ -3287,8 +3304,9 @@ void AccessibilityRenderObject::addChildren()
}
// for a RenderImage, add the <area> elements as individual accessibility objects
- if (m_renderer->isRenderImage()) {
- HTMLMapElement* map = toRenderImage(m_renderer)->imageMap();
+ RenderBoxModelObject* cssBox = renderBoxModelObject();
+ if (cssBox && cssBox->isRenderImage()) {
+ HTMLMapElement* map = toRenderImage(cssBox)->imageMap();
if (map) {
for (Node* current = map->firstChild(); current; current = current->traverseNextNode(map)) {
@@ -3605,7 +3623,7 @@ static AccessibilityRole msaaRoleForRenderer(const RenderObject* renderer)
if (renderer->isText())
return EditableTextRole;
- if (renderer->isListItem())
+ if (renderer->isBoxModelObject() && toRenderBoxModelObject(renderer)->isListItem())
return ListItemRole;
return UnknownRole;
diff --git a/WebCore/accessibility/AccessibilityRenderObject.h b/WebCore/accessibility/AccessibilityRenderObject.h
index c05bc2d..cefaa94 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.h
+++ b/WebCore/accessibility/AccessibilityRenderObject.h
@@ -1,3 +1,4 @@
+
/*
* Copyright (C) 2008 Apple Inc. All rights reserved.
*
@@ -30,7 +31,7 @@
#define AccessibilityRenderObject_h
#include "AccessibilityObject.h"
-#include "RenderObject.h"
+#include <wtf/Forward.h>
namespace WebCore {
@@ -52,7 +53,6 @@ class RenderListBox;
class RenderTextControl;
class RenderView;
class VisibleSelection;
-class String;
class Widget;
class AccessibilityRenderObject : public AccessibilityObject {
@@ -165,6 +165,7 @@ public:
void setRenderer(RenderObject* renderer) { m_renderer = renderer; }
RenderObject* renderer() const { return m_renderer; }
+ RenderBoxModelObject* renderBoxModelObject() const;
virtual Node* node() const;
RenderView* topRenderer() const;
diff --git a/WebCore/accessibility/AccessibilityTable.cpp b/WebCore/accessibility/AccessibilityTable.cpp
index 04ecac3..7f7b6f2 100644
--- a/WebCore/accessibility/AccessibilityTable.cpp
+++ b/WebCore/accessibility/AccessibilityTable.cpp
@@ -43,8 +43,6 @@
#include "RenderTableCell.h"
#include "RenderTableSection.h"
-using namespace std;
-
namespace WebCore {
using namespace HTMLNames;
@@ -75,7 +73,7 @@ bool AccessibilityTable::isTableExposableThroughAccessibility()
// <table> should be exposed as an AXTable. The goal
// is to only show "data" tables
- if (!m_renderer || !m_renderer->isTable())
+ if (!renderer())
return false;
// if the developer assigned an aria role to this, then we shouldn't
@@ -196,7 +194,7 @@ bool AccessibilityTable::isTableExposableThroughAccessibility()
// For the first 5 rows, cache the background color so we can check if this table has zebra-striped rows.
if (row < 5 && row == alternatingRowColorCount) {
RenderObject* renderRow = cell->parent();
- if (!renderRow || !renderRow->isTableRow())
+ if (!renderRow || !renderRow->isBoxModelObject() || !toRenderBoxModelObject(renderRow)->isTableRow())
continue;
RenderStyle* rowRenderStyle = renderRow->style();
if (!rowRenderStyle)
diff --git a/WebCore/accessibility/AccessibilityTable.h b/WebCore/accessibility/AccessibilityTable.h
index 42edf2a..2ee5812 100644
--- a/WebCore/accessibility/AccessibilityTable.h
+++ b/WebCore/accessibility/AccessibilityTable.h
@@ -30,6 +30,7 @@
#define AccessibilityTable_h
#include "AccessibilityRenderObject.h"
+#include <wtf/Forward.h>
#if PLATFORM(MAC) && (defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD))
#define ACCESSIBILITY_TABLES 0
@@ -39,7 +40,6 @@
namespace WebCore {
-class String;
class AccessibilityTableCell;
class AccessibilityTableHeaderContainer;
@@ -50,7 +50,7 @@ protected:
public:
static PassRefPtr<AccessibilityTable> create(RenderObject*);
virtual ~AccessibilityTable();
-
+
virtual bool isDataTable() const;
virtual AccessibilityRole roleValue() const;
virtual bool isAriaTable() const { return false; }
@@ -78,17 +78,17 @@ public:
// an object that contains, as children, all the objects that act as headers
AccessibilityObject* headerContainer();
-
-protected:
+
+protected:
AccessibilityChildrenVector m_rows;
AccessibilityChildrenVector m_columns;
-
+
AccessibilityTableHeaderContainer* m_headerContainer;
mutable bool m_isAccessibilityTable;
-
+
bool isTableExposableThroughAccessibility();
};
-
+
} // namespace WebCore
#endif // AccessibilityTable_h
diff --git a/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp b/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
index 716188a..fd5d6bb 100644
--- a/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
+++ b/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
@@ -160,6 +160,11 @@ static const gchar* webkit_accessible_get_name(AtkObject* object)
if (ATK_IS_TEXT(atkObject))
return webkit_accessible_text_get_text(ATK_TEXT(atkObject), 0, -1);
}
+
+ // Try text under the node
+ String textUnder = renderObject->textUnderElement();
+ if (textUnder.length())
+ return returnString(textUnder);
}
if (renderObject->isImage() || renderObject->isInputImage()) {
diff --git a/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm b/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
index 94d2be3..9595e25 100644
--- a/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
+++ b/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
@@ -157,6 +157,10 @@ using namespace std;
#define NSAccessibilityHasPopupAttribute @"AXHasPopup"
#endif
+#ifndef NSAccessibilityPlaceholderValueAttribute
+#define NSAccessibilityPlaceholderValueAttribute @"AXPlaceholderValue"
+#endif
+
#ifdef BUILDING_ON_TIGER
typedef unsigned NSUInteger;
#define NSAccessibilityValueDescriptionAttribute @"AXValueDescription"
@@ -731,6 +735,7 @@ static WebCoreTextMarkerRange* textMarkerRangeFromVisiblePositions(VisiblePositi
[tempArray addObject:NSAccessibilityTitleUIElementAttribute];
[tempArray addObject:NSAccessibilityAccessKeyAttribute];
[tempArray addObject:NSAccessibilityRequiredAttribute];
+ [tempArray addObject:NSAccessibilityPlaceholderValueAttribute];
textAttrs = [[NSArray alloc] initWithArray:tempArray];
[tempArray release];
}
@@ -1859,6 +1864,9 @@ static NSString* roleValueToNSString(AccessibilityRole value)
return dropEffectsArray;
}
+ if ([attributeName isEqualToString:NSAccessibilityPlaceholderValueAttribute])
+ return m_object->placeholderValue();
+
if ([attributeName isEqualToString:NSAccessibilityHasPopupAttribute])
return [NSNumber numberWithBool:m_object->ariaHasPopup()];
diff --git a/WebCore/bindings/cpp/WebDOMCString.h b/WebCore/bindings/cpp/WebDOMCString.h
index e02a587..c921895 100644
--- a/WebCore/bindings/cpp/WebDOMCString.h
+++ b/WebCore/bindings/cpp/WebDOMCString.h
@@ -22,12 +22,9 @@
#define WebDOMCString_h
#include <WebDOMObject.h>
+#include <wtf/Forward.h>
#include <stddef.h> // For size_t
-namespace WTF {
-class CString;
-};
-
// UTF-16 character type
#if defined(WIN32)
typedef wchar_t WebUChar;
diff --git a/WebCore/bindings/cpp/WebDOMHTMLDocumentCustom.cpp b/WebCore/bindings/cpp/WebDOMHTMLDocumentCustom.cpp
index aa511ad..3bab0c1 100644
--- a/WebCore/bindings/cpp/WebDOMHTMLDocumentCustom.cpp
+++ b/WebCore/bindings/cpp/WebDOMHTMLDocumentCustom.cpp
@@ -27,7 +27,7 @@
static inline void documentWrite(const WebDOMString& text, WebCore::HTMLDocument* document, bool addNewline)
{
- WebCore::SegmentedString segmentedString = WebCore::String(text);
+ WebCore::SegmentedString segmentedString = WTF::String(text);
if (addNewline)
segmentedString.append(WebCore::SegmentedString(&WebCore::newlineCharacter, 1));
document->write(segmentedString);
diff --git a/WebCore/bindings/cpp/WebDOMString.cpp b/WebCore/bindings/cpp/WebDOMString.cpp
index d87dedd..59d98f7 100644
--- a/WebCore/bindings/cpp/WebDOMString.cpp
+++ b/WebCore/bindings/cpp/WebDOMString.cpp
@@ -26,7 +26,7 @@
#include <wtf/text/CString.h>
#include <wtf/text/WTFString.h>
-class WebDOMStringPrivate : public WebCore::StringImpl {
+class WebDOMStringPrivate : public WTF::StringImpl {
};
void WebDOMString::reset()
@@ -45,7 +45,7 @@ void WebDOMString::assign(const WebDOMString& other)
void WebDOMString::assign(const WebUChar* data, size_t length)
{
assign(static_cast<WebDOMStringPrivate*>(
- WebCore::StringImpl::create(data, length).get()));
+ WTF::StringImpl::create(data, length).get()));
}
size_t WebDOMString::length() const
@@ -60,52 +60,52 @@ const WebUChar* WebDOMString::data() const
WebDOMCString WebDOMString::utf8() const
{
- return WebCore::String(m_private).utf8();
+ return WTF::String(m_private).utf8();
}
WebDOMString WebDOMString::fromUTF8(const char* data, size_t length)
{
- return WebCore::String::fromUTF8(data, length);
+ return WTF::String::fromUTF8(data, length);
}
WebDOMString WebDOMString::fromUTF8(const char* data)
{
- return WebCore::String::fromUTF8(data);
+ return WTF::String::fromUTF8(data);
}
-WebDOMString::WebDOMString(const WebCore::String& s)
+WebDOMString::WebDOMString(const WTF::String& s)
: m_private(static_cast<WebDOMStringPrivate*>(s.impl()))
{
if (m_private)
m_private->ref();
}
-WebDOMString& WebDOMString::operator=(const WebCore::String& s)
+WebDOMString& WebDOMString::operator=(const WTF::String& s)
{
assign(static_cast<WebDOMStringPrivate*>(s.impl()));
return *this;
}
-WebDOMString::operator WebCore::String() const
+WebDOMString::operator WTF::String() const
{
return m_private;
}
-WebDOMString::WebDOMString(const WebCore::AtomicString& s)
+WebDOMString::WebDOMString(const WTF::AtomicString& s)
: m_private(0)
{
assign(s.string());
}
-WebDOMString& WebDOMString::operator=(const WebCore::AtomicString& s)
+WebDOMString& WebDOMString::operator=(const WTF::AtomicString& s)
{
assign(s.string());
return *this;
}
-WebDOMString::operator WebCore::AtomicString() const
+WebDOMString::operator WTF::AtomicString() const
{
- return WebCore::AtomicString(static_cast<WebCore::StringImpl *>(m_private));
+ return WTF::AtomicString(static_cast<WTF::StringImpl *>(m_private));
}
bool WebDOMString::equals(const char* string) const
diff --git a/WebCore/bindings/cpp/WebDOMString.h b/WebCore/bindings/cpp/WebDOMString.h
index ca09ee8..0eea1ae 100644
--- a/WebCore/bindings/cpp/WebDOMString.h
+++ b/WebCore/bindings/cpp/WebDOMString.h
@@ -22,11 +22,7 @@
#define WebDOMString_h
#include <WebDOMCString.h>
-
-namespace WebCore {
-class String;
-class AtomicString;
-}
+#include <wtf/Forward.h>
class WebDOMStringPrivate;
@@ -81,13 +77,13 @@ public:
return *this;
}
- WebDOMString(const WebCore::String&);
- WebDOMString& operator=(const WebCore::String&);
- operator WebCore::String() const;
+ WebDOMString(const WTF::String&);
+ WebDOMString& operator=(const WTF::String&);
+ operator WTF::String() const;
- WebDOMString(const WebCore::AtomicString&);
- WebDOMString& operator=(const WebCore::AtomicString&);
- operator WebCore::AtomicString() const;
+ WebDOMString(const WTF::AtomicString&);
+ WebDOMString& operator=(const WTF::AtomicString&);
+ operator WTF::AtomicString() const;
bool equals(const char* string) const;
diff --git a/WebCore/bindings/cpp/WebNativeEventListener.cpp b/WebCore/bindings/cpp/WebNativeEventListener.cpp
index ddd7112..b781eb7 100644
--- a/WebCore/bindings/cpp/WebNativeEventListener.cpp
+++ b/WebCore/bindings/cpp/WebNativeEventListener.cpp
@@ -40,7 +40,7 @@ void WebNativeEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCo
m_listener->handleEvent(toWebKit(event));
}
-bool WebNativeEventListener::reportError(WebCore::ScriptExecutionContext*, const WebCore::String&, const WebCore::String&, int)
+bool WebNativeEventListener::reportError(WebCore::ScriptExecutionContext*, const WTF::String&, const WTF::String&, int)
{
// FIXME: Implement error handling
return false;
diff --git a/WebCore/bindings/cpp/WebNativeEventListener.h b/WebCore/bindings/cpp/WebNativeEventListener.h
index fff1b1c..13b4f5b 100644
--- a/WebCore/bindings/cpp/WebNativeEventListener.h
+++ b/WebCore/bindings/cpp/WebNativeEventListener.h
@@ -44,7 +44,7 @@ public:
private:
virtual void handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*);
- virtual bool reportError(WebCore::ScriptExecutionContext*, const WebCore::String& message, const WebCore::String& url, int lineNumber);
+ virtual bool reportError(WebCore::ScriptExecutionContext*, const WTF::String& message, const WTF::String& url, int lineNumber);
protected:
WebNativeEventListener(WebUserEventListener*);
diff --git a/WebCore/bindings/generic/ActiveDOMCallback.cpp b/WebCore/bindings/generic/ActiveDOMCallback.cpp
new file mode 100644
index 0000000..2e69d10
--- /dev/null
+++ b/WebCore/bindings/generic/ActiveDOMCallback.cpp
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ActiveDOMCallback.h"
+
+#include "ActiveDOMObject.h"
+#include "ScriptExecutionContext.h"
+#include <wtf/PassOwnPtr.h>
+#include <wtf/ThreadingPrimitives.h>
+
+namespace WebCore {
+
+static void destroyOnContextThread(PassOwnPtr<ActiveDOMObjectCallbackImpl>);
+
+class DestroyOnContextThreadTask : public ScriptExecutionContext::Task {
+public:
+ static PassOwnPtr<DestroyOnContextThreadTask> create(PassOwnPtr<ActiveDOMObjectCallbackImpl> impl)
+ {
+ return adoptPtr(new DestroyOnContextThreadTask(impl));
+ }
+
+ virtual void performTask(ScriptExecutionContext*)
+ {
+ destroyOnContextThread(m_impl.release());
+ }
+
+private:
+ DestroyOnContextThreadTask(PassOwnPtr<ActiveDOMObjectCallbackImpl> impl)
+ : m_impl(impl)
+ {
+ }
+
+ OwnPtr<ActiveDOMObjectCallbackImpl> m_impl;
+};
+
+// Instances of this class are accessed only on the context thread, so we don't need to use locks.
+class ActiveDOMObjectCallbackImpl : public ActiveDOMObject {
+public:
+ ActiveDOMObjectCallbackImpl(ScriptExecutionContext* context)
+ : ActiveDOMObject(context, this)
+ , m_suspended(false)
+ , m_stopped(false)
+ {
+ }
+
+ virtual void contextDestroyed()
+ {
+ MutexLocker locker(m_mutex);
+ ActiveDOMObject::contextDestroyed();
+ }
+ virtual bool canSuspend() const { return false; }
+ virtual void suspend()
+ {
+ MutexLocker locker(m_mutex);
+ m_suspended = true;
+ }
+ virtual void resume()
+ {
+ MutexLocker locker(m_mutex);
+ m_suspended = false;
+ }
+ virtual void stop()
+ {
+ MutexLocker locker(m_mutex);
+ m_stopped = true;
+ }
+ bool canInvokeCallback()
+ {
+ MutexLocker locker(m_mutex);
+ return (!m_suspended && !m_stopped);
+ }
+ ScriptExecutionContext* scriptExecutionContext()
+ {
+ MutexLocker locker(m_mutex);
+ return ActiveDOMObject::scriptExecutionContext();
+ }
+ Mutex& mutex() { return m_mutex; }
+
+private:
+ Mutex m_mutex;
+ bool m_suspended;
+ bool m_stopped;
+};
+
+static void destroyOnContextThread(PassOwnPtr<ActiveDOMObjectCallbackImpl> impl)
+{
+ OwnPtr<ActiveDOMObjectCallbackImpl> implOwnPtr = impl;
+
+ ScriptExecutionContext* context = implOwnPtr->scriptExecutionContext();
+ MutexLocker locker(implOwnPtr->mutex());
+ if (context && !context->isContextThread())
+ context->postTask(DestroyOnContextThreadTask::create(implOwnPtr.release()));
+}
+
+ActiveDOMCallback::ActiveDOMCallback(ScriptExecutionContext* context)
+ : m_impl(new ActiveDOMObjectCallbackImpl(context))
+{
+ ASSERT(context->isContextThread());
+}
+
+ActiveDOMCallback::~ActiveDOMCallback()
+{
+ destroyOnContextThread(m_impl.release());
+}
+
+bool ActiveDOMCallback::canInvokeCallback() const
+{
+ return m_impl->canInvokeCallback();
+}
+
+ScriptExecutionContext* ActiveDOMCallback::scriptExecutionContext() const
+{
+ return m_impl->scriptExecutionContext();
+}
+
+} // namespace WebCore
diff --git a/WebKit/chromium/src/ProfilerAgentImpl.h b/WebCore/bindings/generic/ActiveDOMCallback.h
index d38f57c..2fe99ab 100644
--- a/WebKit/chromium/src/ProfilerAgentImpl.h
+++ b/WebCore/bindings/generic/ActiveDOMCallback.h
@@ -28,30 +28,31 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef ProfilerAgentImpl_h
-#define ProfilerAgentImpl_h
+#ifndef ActiveDOMCallback_h
+#define ActiveDOMCallback_h
-#include "ProfilerAgent.h"
+#include <wtf/OwnPtr.h>
-namespace WebKit {
+namespace WebCore {
-class ProfilerAgentImpl : public ProfilerAgent {
-public:
- ProfilerAgentImpl(ProfilerAgentDelegate* delegate) : m_delegate(delegate) { }
- virtual ~ProfilerAgentImpl() { }
-
- // ProfilerAgent implementation.
+class ActiveDOMObjectCallbackImpl;
+class ScriptExecutionContext;
- // This method is called on IO thread.
- virtual void getActiveProfilerModules();
+// A class that allows callbacks to behave like ActiveDOMObjects, and also
+// be destroyed on the context thread or any other thread.
+class ActiveDOMCallback {
+public:
+ ActiveDOMCallback(ScriptExecutionContext* context);
+ ~ActiveDOMCallback();
- // This method is called on IO thread.
- virtual void getLogLines(int position);
+ bool canInvokeCallback() const;
+ ScriptExecutionContext* scriptExecutionContext() const;
private:
- ProfilerAgentDelegate* m_delegate;
+ // The ActiveDOMObject part of the callback.
+ OwnPtr<ActiveDOMObjectCallbackImpl> m_impl;
};
-} // namespace WebKit
+} // namespace WebCore
-#endif
+#endif // ActiveDOMCallback_h
diff --git a/WebCore/bindings/generic/BindingDOMWindow.h b/WebCore/bindings/generic/BindingDOMWindow.h
index f883d11..dda5644 100644
--- a/WebCore/bindings/generic/BindingDOMWindow.h
+++ b/WebCore/bindings/generic/BindingDOMWindow.h
@@ -1,10 +1,10 @@
/*
* Copyright (C) 2010 Google Inc. All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
- *
+ *
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
@@ -14,7 +14,7 @@
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -31,11 +31,17 @@
#ifndef BindingDOMWindow_h
#define BindingDOMWindow_h
+#include "DOMWindow.h"
#include "Frame.h"
#include "FrameLoadRequest.h"
+#include "FrameLoader.h"
+#include "FrameView.h"
#include "GenericBinding.h"
#include "Page.h"
+#include "PlatformScreen.h"
+#include "ScriptController.h"
#include "SecurityOrigin.h"
+#include "WindowFeatures.h"
namespace WebCore {
@@ -52,6 +58,20 @@ public:
const String& frameName,
const WindowFeatures& windowFeatures,
BindingValue dialogArgs);
+
+ static WebCore::DOMWindow* open(State<Binding>*,
+ WebCore::DOMWindow* parent,
+ const String& url,
+ const String& frameName,
+ const WindowFeatures& rawFeatures);
+
+ // FIXME: There should be a place for generic binding utilities.
+ static KURL completeURL(State<Binding>*, const String& relativeURL);
+
+private:
+ // Horizontal and vertical offset, from the parent content area,
+ // around newly opened popups that don't specify a location.
+ static const int popupTilePixels = 10;
};
// Implementations of templated methods must be in this file.
@@ -103,8 +123,8 @@ Frame* BindingDOMWindow<Binding>::createWindow(State<Binding>* state,
if (!protocolIsJavaScript(url) || BindingSecurity<Binding>::canAccessFrame(state, newFrame, true)) {
KURL completedUrl =
- url.isEmpty() ? KURL(ParsedURLString, "") : completeURL(url);
- bool userGesture = processingUserGesture();
+ url.isEmpty() ? KURL(ParsedURLString, "") : completeURL(state, url);
+ bool userGesture = state->processingUserGesture();
if (created)
newFrame->loader()->changeLocation(completedUrl, referrer, false, false, userGesture);
@@ -115,6 +135,153 @@ Frame* BindingDOMWindow<Binding>::createWindow(State<Binding>* state,
return newFrame;
}
+template<class Binding>
+WebCore::DOMWindow* BindingDOMWindow<Binding>::open(State<Binding>* state,
+ WebCore::DOMWindow* parent,
+ const String& urlString,
+ const String& frameName,
+ const WindowFeatures& rawFeatures)
+{
+ Frame* frame = parent->frame();
+
+ if (!BindingSecurity<Binding>::canAccessFrame(state, frame, true))
+ return 0;
+
+ Frame* firstFrame = state->getFirstFrame();
+ if (!firstFrame)
+ return 0;
+
+ Frame* activeFrame = state->getActiveFrame();
+ // We may not have a calling context if we are invoked by a plugin
+ // via NPAPI.
+ if (!activeFrame)
+ activeFrame = firstFrame;
+
+ Page* page = frame->page();
+ if (!page)
+ return 0;
+
+ // Because FrameTree::find() returns true for empty strings, we must check
+ // for empty framenames. Otherwise, illegitimate window.open() calls with
+ // no name will pass right through the popup blocker.
+ if (!BindingSecurity<Binding>::allowPopUp(state)
+ && (frameName.isEmpty() || !frame->tree()->find(frameName))) {
+ return 0;
+ }
+
+ // Get the target frame for the special cases of _top and _parent.
+ // In those cases, we can schedule a location change right now and
+ // return early.
+ bool topOrParent = false;
+ if (frameName == "_top") {
+ frame = frame->tree()->top();
+ topOrParent = true;
+ } else if (frameName == "_parent") {
+ if (Frame* parent = frame->tree()->parent())
+ frame = parent;
+ topOrParent = true;
+ }
+ if (topOrParent) {
+ if (!BindingSecurity<Binding>::shouldAllowNavigation(state, frame))
+ return 0;
+
+ String completedUrl;
+ if (!urlString.isEmpty())
+ completedUrl = completeURL(state, urlString);
+
+ if (!completedUrl.isEmpty()
+ && (!protocolIsJavaScript(completedUrl)
+ || BindingSecurity<Binding>::canAccessFrame(state, frame, true))) {
+ bool userGesture = state->processingUserGesture();
+
+ // For whatever reason, Firefox uses the first frame to determine
+ // the outgoingReferrer. We replicate that behavior here.
+ String referrer = firstFrame->loader()->outgoingReferrer();
+
+ frame->redirectScheduler()->scheduleLocationChange(completedUrl, referrer, false, false, userGesture);
+ }
+ return frame->domWindow();
+ }
+
+ // In the case of a named frame or a new window, we'll use the
+ // createWindow() helper.
+
+ // Work with a copy of the parsed values so we can restore the
+ // values we may not want to overwrite after we do the multiple
+ // monitor fixes.
+ WindowFeatures windowFeatures(rawFeatures);
+ FloatRect screenRect = screenAvailableRect(page->mainFrame()->view());
+
+ // Set default size and location near parent window if none were specified.
+ // These may be further modified by adjustWindowRect, below.
+ if (!windowFeatures.xSet) {
+ windowFeatures.x = parent->screenX() - screenRect.x() + popupTilePixels;
+ windowFeatures.xSet = true;
+ }
+ if (!windowFeatures.ySet) {
+ windowFeatures.y = parent->screenY() - screenRect.y() + popupTilePixels;
+ windowFeatures.ySet = true;
+ }
+ if (!windowFeatures.widthSet) {
+ windowFeatures.width = parent->innerWidth();
+ windowFeatures.widthSet = true;
+ }
+ if (!windowFeatures.heightSet) {
+ windowFeatures.height = parent->innerHeight();
+ windowFeatures.heightSet = true;
+ }
+
+ FloatRect windowRect(windowFeatures.x, windowFeatures.y, windowFeatures.width, windowFeatures.height);
+
+ // The new window's location is relative to its current screen, so shift
+ // it in case it's on a secondary monitor. See http://b/viewIssue?id=967905.
+ windowRect.move(screenRect.x(), screenRect.y());
+ WebCore::DOMWindow::adjustWindowRect(screenRect, windowRect, windowRect);
+
+ windowFeatures.x = windowRect.x();
+ windowFeatures.y = windowRect.y();
+ windowFeatures.height = windowRect.height();
+ windowFeatures.width = windowRect.width();
+
+ // If either of the origin coordinates or dimensions weren't set
+ // in the original string, make sure they aren't set now.
+ if (!rawFeatures.xSet) {
+ windowFeatures.x = 0;
+ windowFeatures.xSet = false;
+ }
+ if (!rawFeatures.ySet) {
+ windowFeatures.y = 0;
+ windowFeatures.ySet = false;
+ }
+ if (!rawFeatures.widthSet) {
+ windowFeatures.width = 0;
+ windowFeatures.widthSet = false;
+ }
+ if (!rawFeatures.heightSet) {
+ windowFeatures.height = 0;
+ windowFeatures.heightSet = false;
+ }
+
+ frame = createWindow(state, activeFrame, firstFrame, frame, urlString, frameName, windowFeatures, Binding::emptyScriptValue());
+
+ if (!frame)
+ return 0;
+
+ return frame->domWindow();
+}
+
+template <class Binding>
+KURL BindingDOMWindow<Binding>::completeURL(State<Binding>* state,
+ const String& relativeURL)
+{
+ // For historical reasons, we need to complete the URL using the
+ // dynamic frame.
+ Frame* frame = state->getFirstFrame();
+ if (!frame)
+ return KURL();
+ return frame->loader()->completeURL(relativeURL);
+}
+
} // namespace WebCore
#endif // BindingDOMWindow_h
diff --git a/WebCore/bindings/generic/BindingSecurity.h b/WebCore/bindings/generic/BindingSecurity.h
index d7c9dfe..1124f7e 100644
--- a/WebCore/bindings/generic/BindingSecurity.h
+++ b/WebCore/bindings/generic/BindingSecurity.h
@@ -34,14 +34,15 @@
#include "BindingSecurityBase.h"
#include "CSSHelper.h"
#include "Element.h"
+#include "Frame.h"
#include "GenericBinding.h"
#include "HTMLFrameElementBase.h"
#include "HTMLNames.h"
+#include "Settings.h"
namespace WebCore {
class DOMWindow;
-class Frame;
class Node;
// Security functions shared by various language bindings.
@@ -55,9 +56,12 @@ public:
// current security context.
static bool checkNodeSecurity(State<Binding>*, Node* target);
+ static bool allowPopUp(State<Binding>*);
static bool allowSettingFrameSrcToJavascriptUrl(State<Binding>*, HTMLFrameElementBase*, String value);
static bool allowSettingSrcToJavascriptURL(State<Binding>*, Element*, String name, String value);
+ static bool shouldAllowNavigation(State<Binding>*, Frame*);
+
private:
explicit BindingSecurity() {}
~BindingSecurity();
@@ -110,6 +114,18 @@ bool BindingSecurity<Binding>::checkNodeSecurity(State<Binding>* state, Node* no
}
template <class Binding>
+bool BindingSecurity<Binding>::allowPopUp(State<Binding>* state)
+{
+ if (state->processingUserGesture())
+ return true;
+
+ Frame* frame = state->getFirstFrame();
+ ASSERT(frame);
+ Settings* settings = frame->settings();
+ return settings && settings->javaScriptCanOpenWindowsAutomatically();
+}
+
+template <class Binding>
bool BindingSecurity<Binding>::allowSettingFrameSrcToJavascriptUrl(State<Binding>* state, HTMLFrameElementBase* frame, String value)
{
if (protocolIsJavaScript(deprecatedParseURL(value))) {
@@ -128,6 +144,13 @@ bool BindingSecurity<Binding>::allowSettingSrcToJavascriptURL(State<Binding>* st
return true;
}
+template <class Binding>
+bool BindingSecurity<Binding>::shouldAllowNavigation(State<Binding>* state, Frame* frame)
+{
+ Frame* activeFrame = state->getActiveFrame();
+ return activeFrame && activeFrame->loader()->shouldAllowNavigation(frame);
+}
+
}
#endif // BindingSecurity_h
diff --git a/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp b/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp
index eb027c3..94e984f 100644
--- a/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp
+++ b/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp
@@ -47,6 +47,7 @@ bool RuntimeEnabledFeatures::isIndexedDBEnabled = false;
bool RuntimeEnabledFeatures::isWebGLEnabled = false;
bool RuntimeEnabledFeatures::isPushStateEnabled = false;
bool RuntimeEnabledFeatures::isTouchEnabled = true;
+bool RuntimeEnabledFeatures::isDeviceMotionEnabled = true;
bool RuntimeEnabledFeatures::isDeviceOrientationEnabled = true;
bool RuntimeEnabledFeatures::isSpeechInputEnabled = true;
diff --git a/WebCore/bindings/generic/RuntimeEnabledFeatures.h b/WebCore/bindings/generic/RuntimeEnabledFeatures.h
index c9eb21f..fd7308e 100644
--- a/WebCore/bindings/generic/RuntimeEnabledFeatures.h
+++ b/WebCore/bindings/generic/RuntimeEnabledFeatures.h
@@ -114,6 +114,11 @@ public:
static bool ontouchcancelEnabled() { return isTouchEnabled; }
#endif
+ static void setDeviceMotionEnabled(bool isEnabled) { isDeviceMotionEnabled = isEnabled; }
+ static bool deviceMotionEnabled() { return isDeviceMotionEnabled; }
+ static bool deviceMotionEventEnabled() { return isDeviceMotionEnabled; }
+ static bool ondevicemotionEnabled() { return isDeviceMotionEnabled; }
+
static void setDeviceOrientationEnabled(bool isEnabled) { isDeviceOrientationEnabled = isEnabled; }
static bool deviceOrientationEnabled() { return isDeviceOrientationEnabled; }
static bool deviceOrientationEventEnabled() { return isDeviceOrientationEnabled; }
@@ -136,6 +141,7 @@ private:
static bool isWebGLEnabled;
static bool isPushStateEnabled;
static bool isTouchEnabled;
+ static bool isDeviceMotionEnabled;
static bool isDeviceOrientationEnabled;
static bool isSpeechInputEnabled;
};
diff --git a/WebCore/bindings/gobject/ConvertToUTF8String.cpp b/WebCore/bindings/gobject/ConvertToUTF8String.cpp
index 57010fa..67375e4 100644
--- a/WebCore/bindings/gobject/ConvertToUTF8String.cpp
+++ b/WebCore/bindings/gobject/ConvertToUTF8String.cpp
@@ -27,7 +27,7 @@
#include <glib.h>
-gchar* convertToUTF8String(WebCore::String const& s)
+gchar* convertToUTF8String(WTF::String const& s)
{
return g_strdup(s.utf8().data());
}
diff --git a/WebCore/bindings/gobject/ConvertToUTF8String.h b/WebCore/bindings/gobject/ConvertToUTF8String.h
index 02b6416..bc234cf 100644
--- a/WebCore/bindings/gobject/ConvertToUTF8String.h
+++ b/WebCore/bindings/gobject/ConvertToUTF8String.h
@@ -21,14 +21,15 @@
#ifndef ConvertToUTF8String_h
#define ConvertToUTF8String_h
+#include <wtf/Forward.h>
+
namespace WebCore {
-class String;
class KURL;
}
typedef char gchar;
-gchar* convertToUTF8String(WebCore::String const& s);
+gchar* convertToUTF8String(WTF::String const& s);
gchar* convertToUTF8String(WebCore::KURL const& s);
#endif /* ConvertToUTF8String_h */
diff --git a/WebCore/bindings/gobject/WebKitDOMBinding.cpp b/WebCore/bindings/gobject/WebKitDOMBinding.cpp
index aa4610b..1154d6c 100644
--- a/WebCore/bindings/gobject/WebKitDOMBinding.cpp
+++ b/WebCore/bindings/gobject/WebKitDOMBinding.cpp
@@ -24,14 +24,19 @@
#include "config.h"
#include "WebKitDOMBinding.h"
+#include "Element.h"
#include "Event.h"
#include "EventException.h"
#include "HTMLNames.h"
+#include "MouseEvent.h"
+#include "UIEvent.h"
#include "WebKitDOMDOMWindowPrivate.h"
#include "WebKitDOMElementPrivate.h"
#include "WebKitDOMNode.h"
#include "WebKitDOMNodePrivate.h"
#include "WebKitHTMLElementWrapperFactory.h"
+#include "webkit/WebKitDOMMouseEventPrivate.h"
+#include "webkit/WebKitDOMUIEventPrivate.h"
namespace WebKit {
@@ -78,7 +83,7 @@ static gpointer createWrapper(Node* node)
if (node->isHTMLElement())
wrappedNode = createHTMLElementWrapper(static_cast<HTMLElement*>(node));
else
- wrappedNode = wrapNode(node);
+ wrappedNode = wrapElement(static_cast<Element*>(node));
break;
default:
wrappedNode = wrapNode(node);
@@ -119,6 +124,27 @@ gpointer kit(Element* element)
return DOMObjectCache::put(element, wrappedElement);
}
+gpointer kit(Event* event)
+{
+ if (!event)
+ return 0;
+
+ gpointer kitEvent = DOMObjectCache::get(event);
+ if (kitEvent)
+ return kitEvent;
+
+ gpointer wrappedEvent;
+
+ if (event->isMouseEvent())
+ wrappedEvent = wrapMouseEvent(static_cast<MouseEvent*>(event));
+ else if (event->isUIEvent())
+ wrappedEvent = wrapUIEvent(static_cast<UIEvent*>(event));
+ else
+ wrappedEvent = 0;
+
+ return DOMObjectCache::put(event, wrappedEvent);
+}
+
static gpointer wrapEventTarget(EventTarget* target)
{
ASSERT(target);
diff --git a/WebCore/bindings/gobject/WebKitDOMBinding.h b/WebCore/bindings/gobject/WebKitDOMBinding.h
index 236c450..2248f78 100644
--- a/WebCore/bindings/gobject/WebKitDOMBinding.h
+++ b/WebCore/bindings/gobject/WebKitDOMBinding.h
@@ -29,12 +29,14 @@
namespace WebCore {
class Node;
class Element;
+class Event;
class EventTarget;
} // namespace WebCore
namespace WebKit {
gpointer kit(WebCore::Node* node);
gpointer kit(WebCore::Element* element);
+gpointer kit(WebCore::Event* event);
gpointer kit(WebCore::EventTarget* target);
class DOMObjectCache {
diff --git a/WebCore/bindings/gobject/WebKitDOMEventTarget.cpp b/WebCore/bindings/gobject/WebKitDOMEventTarget.cpp
index 2d2a31a..f2b1a94 100644
--- a/WebCore/bindings/gobject/WebKitDOMEventTarget.cpp
+++ b/WebCore/bindings/gobject/WebKitDOMEventTarget.cpp
@@ -31,6 +31,7 @@
#include "config.h"
#include "WebKitDOMEventTarget.h"
+#include "EventTarget.h"
#include "WebKitDOMEvent.h"
typedef WebKitDOMEventTargetIface WebKitDOMEventTargetInterface;
@@ -75,3 +76,18 @@ void webkit_dom_event_target_dispatch_event(WebKitDOMEventTarget* target, WebKit
if (iface->dispatch_event)
iface->dispatch_event(target, event, error);
}
+
+namespace WebKit {
+
+WebCore::EventTarget* core(WebKitDOMEventTarget* request)
+{
+ g_return_val_if_fail(request, 0);
+
+ WebCore::EventTarget* coreObject = static_cast<WebCore::EventTarget*>(WEBKIT_DOM_OBJECT(request)->coreObject);
+ g_return_val_if_fail(coreObject, 0);
+
+ return coreObject;
+}
+
+} // namespace WebKit
+
diff --git a/WebCore/bindings/gobject/WebKitDOMEventTargetPrivate.h b/WebCore/bindings/gobject/WebKitDOMEventTargetPrivate.h
new file mode 100644
index 0000000..4741409
--- /dev/null
+++ b/WebCore/bindings/gobject/WebKitDOMEventTargetPrivate.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2010 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef WebKitDOMEventTargetPrivate_h
+#define WebKitDOMEventTargetPrivate_h
+
+#include "EventTarget.h"
+#include <glib-object.h>
+#include <webkit/WebKitDOMEventTarget.h>
+
+namespace WebKit {
+WebCore::EventTarget*
+core(WebKitDOMEventTarget *request);
+} // namespace WebKit
+
+#endif /* WebKitDOMEventTargetPrivate_h */
diff --git a/WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.cpp b/WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.cpp
index 44928eb..4c57946 100644
--- a/WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.cpp
+++ b/WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.cpp
@@ -449,7 +449,7 @@ static gpointer createUListWrapper(PassRefPtr<HTMLElement> element)
gpointer createHTMLElementWrapper(PassRefPtr<WebCore::HTMLElement> element)
{
- static HashMap<WebCore::AtomicStringImpl*, CreateHTMLElementWrapperFunction> map;
+ static HashMap<WTF::AtomicStringImpl*, CreateHTMLElementWrapperFunction> map;
if (map.isEmpty()) {
map.set(aTag.localName().impl(), createAnchorWrapper);
map.set(appletTag.localName().impl(), createAppletWrapper);
diff --git a/WebCore/bindings/js/DOMWrapperWorld.h b/WebCore/bindings/js/DOMWrapperWorld.h
index 832c5e0..35b68fc 100644
--- a/WebCore/bindings/js/DOMWrapperWorld.h
+++ b/WebCore/bindings/js/DOMWrapperWorld.h
@@ -26,11 +26,11 @@
#include "JSDOMGlobalObject.h"
#include "JSDOMWrapper.h"
#include <runtime/WeakGCMap.h>
+#include <wtf/Forward.h>
namespace WebCore {
class ScriptController;
-class StringImpl;
typedef JSC::WeakGCMap<void*, DOMObject*> DOMObjectWrapperMap;
typedef JSC::WeakGCMap<StringImpl*, JSC::JSString*> JSStringCache;
diff --git a/WebCore/bindings/js/IDBBindingUtilities.h b/WebCore/bindings/js/IDBBindingUtilities.h
index f410344..7e72152 100644
--- a/WebCore/bindings/js/IDBBindingUtilities.h
+++ b/WebCore/bindings/js/IDBBindingUtilities.h
@@ -28,7 +28,7 @@
#if ENABLE(INDEXED_DATABASE)
-#include "ScriptValue.h"
+#include "ScriptValue.h"
#include <wtf/Forward.h>
namespace WebCore {
diff --git a/WebCore/bindings/js/JSBindingsAllInOne.cpp b/WebCore/bindings/js/JSBindingsAllInOne.cpp
index b517496..922e449 100644
--- a/WebCore/bindings/js/JSBindingsAllInOne.cpp
+++ b/WebCore/bindings/js/JSBindingsAllInOne.cpp
@@ -57,8 +57,6 @@
#include "JSDOMWrapper.cpp"
#include "JSDataGridColumnListCustom.cpp"
#include "JSDataGridDataSource.cpp"
-#include "JSDatabaseCustom.cpp"
-#include "JSDatabaseSyncCustom.cpp"
#include "JSDebugWrapperSet.cpp"
#include "JSDedicatedWorkerContextCustom.cpp"
#include "JSDesktopNotificationsCustom.cpp"
@@ -139,7 +137,6 @@
#include "JavaScriptCallFrame.cpp"
#include "MemoryInfo.cpp"
#include "ScheduledAction.cpp"
-#include "ScriptArray.cpp"
#include "ScriptCachedFrameData.cpp"
#include "ScriptCallFrame.cpp"
#include "ScriptCallStack.cpp"
diff --git a/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp b/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
index 3026a33..69c8865 100644
--- a/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
+++ b/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
@@ -31,7 +31,6 @@
#if ENABLE(DATABASE)
-#include "Frame.h"
#include "JSSQLError.h"
#include "JSSQLTransaction.h"
#include "ScriptExecutionContext.h"
@@ -41,22 +40,19 @@ namespace WebCore {
using namespace JSC;
-bool JSSQLStatementErrorCallback::handleEvent(ScriptExecutionContext* context, SQLTransaction* transaction, SQLError* error)
+bool JSSQLStatementErrorCallback::handleEvent(SQLTransaction* transaction, SQLError* error)
{
- ASSERT(m_data);
- ASSERT(context);
+ if (!m_data || !m_data->globalObject() || !canInvokeCallback())
+ return true;
RefPtr<JSSQLStatementErrorCallback> protect(this);
JSC::JSLock lock(SilenceAssertionsOnly);
- JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(context, m_isolatedWorld.get());
- if (!globalObject)
- return true; // if we cannot invoke the callback, roll back the transaction
- ExecState* exec = globalObject->globalExec();
+ ExecState* exec = m_data->globalObject()->globalExec();
MarkedArgumentBuffer args;
- args.append(toJS(exec, deprecatedGlobalObjectForPrototype(exec), transaction));
- args.append(toJS(exec, deprecatedGlobalObjectForPrototype(exec), error));
+ args.append(toJS(exec, transaction));
+ args.append(toJS(exec, error));
bool raisedException = false;
JSValue result = m_data->invokeCallback(args, &raisedException);
diff --git a/WebCore/bindings/js/JSDOMBinding.h b/WebCore/bindings/js/JSDOMBinding.h
index 3f2502d..7086a89 100644
--- a/WebCore/bindings/js/JSDOMBinding.h
+++ b/WebCore/bindings/js/JSDOMBinding.h
@@ -30,6 +30,7 @@
#include <runtime/Completion.h>
#include <runtime/Lookup.h>
#include <runtime/WeakGCMap.h>
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
namespace JSC {
@@ -44,7 +45,6 @@ namespace WebCore {
class JSNode;
class KURL;
class Node;
- class String;
class ScriptController;
class ScriptCachedFrameData;
diff --git a/WebCore/bindings/js/JSDOMWindowBase.h b/WebCore/bindings/js/JSDOMWindowBase.h
index 2726996..f4f1ef9 100644
--- a/WebCore/bindings/js/JSDOMWindowBase.h
+++ b/WebCore/bindings/js/JSDOMWindowBase.h
@@ -23,12 +23,12 @@
#include "PlatformString.h"
#include "JSDOMBinding.h"
#include <runtime/Protect.h>
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/OwnPtr.h>
namespace WebCore {
- class AtomicString;
class DOMWindow;
class Event;
class Frame;
diff --git a/WebCore/bindings/js/JSDOMWindowCustom.cpp b/WebCore/bindings/js/JSDOMWindowCustom.cpp
index 30d79b3..252ea93 100644
--- a/WebCore/bindings/js/JSDOMWindowCustom.cpp
+++ b/WebCore/bindings/js/JSDOMWindowCustom.cpp
@@ -22,7 +22,6 @@
#include "AtomicString.h"
#include "Chrome.h"
-#include "Database.h"
#include "DOMWindow.h"
#include "Document.h"
#include "ExceptionCode.h"
@@ -36,10 +35,6 @@
#include "HTMLDocument.h"
#include "History.h"
#include "JSAudioConstructor.h"
-#if ENABLE(DATABASE)
-#include "JSDatabase.h"
-#include "JSDatabaseCallback.h"
-#endif
#include "JSDOMWindowShell.h"
#include "JSEvent.h"
#include "JSEventListener.h"
@@ -1006,49 +1001,6 @@ JSValue JSDOMWindow::removeEventListener(ExecState* exec)
return jsUndefined();
}
-#if ENABLE(DATABASE)
-JSValue JSDOMWindow::openDatabase(ExecState* exec)
-{
- if (!allowsAccessFrom(exec) || (exec->argumentCount() < 4)) {
- setDOMException(exec, SYNTAX_ERR);
- return jsUndefined();
- }
-
- String name = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- String version = ustringToString(exec->argument(1).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- String displayName = ustringToString(exec->argument(2).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- // exec->argument(3) = estimated size
- unsigned long estimatedSize = exec->argument(3).toUInt32(exec);
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<DatabaseCallback> creationCallback;
- if (exec->argumentCount() >= 5) {
- if (!exec->argument(4).isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- creationCallback = JSDatabaseCallback::create(asObject(exec->argument(4)), globalObject());
- }
-
- ExceptionCode ec = 0;
- JSValue result = toJS(exec, globalObject(), WTF::getPtr(impl()->openDatabase(name, version, displayName, estimatedSize, creationCallback.release(), ec)));
-
- setDOMException(exec, ec);
- return result;
-}
-#endif
-
DOMWindow* toDOMWindow(JSValue value)
{
if (!value.isObject())
diff --git a/WebCore/bindings/js/JSDatabaseCustom.cpp b/WebCore/bindings/js/JSDatabaseCustom.cpp
deleted file mode 100644
index 6733320..0000000
--- a/WebCore/bindings/js/JSDatabaseCustom.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDatabase.h"
-
-#if ENABLE(DATABASE)
-
-#include "DOMWindow.h"
-#include "Database.h"
-#include "Document.h"
-#include "ExceptionCode.h"
-#include "JSSQLTransactionCallback.h"
-#include "JSSQLTransactionErrorCallback.h"
-#include "JSCustomVoidCallback.h"
-#include "JSDOMWindowCustom.h"
-#include "PlatformString.h"
-#include "SQLValue.h"
-#include <runtime/JSArray.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-JSValue JSDatabase::changeVersion(ExecState* exec)
-{
- String oldVersion = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- String newVersion = ustringToString(exec->argument(1).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<SQLTransactionCallback> callback;
- if (exec->argumentCount() > 2 && !exec->argument(2).isNull()) {
- JSObject* object = exec->argument(2).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- callback = JSSQLTransactionCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
- }
-
- RefPtr<SQLTransactionErrorCallback> errorCallback;
- if (exec->argumentCount() > 3 && !exec->argument(3).isNull()) {
- JSObject* object = exec->argument(3).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- errorCallback = JSSQLTransactionErrorCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
- }
-
- RefPtr<VoidCallback> successCallback;
- if (exec->argumentCount() > 4 && !exec->argument(4).isNull()) {
- JSObject* object = exec->argument(4).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- successCallback = JSCustomVoidCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
- }
-
- m_impl->changeVersion(oldVersion, newVersion, callback.release(), errorCallback.release(), successCallback.release());
-
- return jsUndefined();
-}
-
-static JSValue createTransaction(ExecState* exec, Database* database, JSDOMGlobalObject* globalObject, bool readOnly)
-{
- JSObject* object = exec->argument(0).getObject();
-
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- RefPtr<SQLTransactionCallback> callback(JSSQLTransactionCallback::create(object, globalObject));
- RefPtr<SQLTransactionErrorCallback> errorCallback;
- if (exec->argumentCount() > 1 && !exec->argument(1).isNull()) {
- object = exec->argument(1).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- errorCallback = JSSQLTransactionErrorCallback::create(object, globalObject);
- }
-
- RefPtr<VoidCallback> successCallback;
- if (exec->argumentCount() > 2 && !exec->argument(2).isNull()) {
- object = exec->argument(2).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- successCallback = JSCustomVoidCallback::create(object, globalObject);
- }
-
- database->transaction(callback.release(), errorCallback.release(), successCallback.release(), readOnly);
- return jsUndefined();
-}
-
-JSValue JSDatabase::transaction(ExecState* exec)
-{
- return createTransaction(exec, m_impl.get(), static_cast<JSDOMGlobalObject*>(globalObject()), false);
-}
-
-JSValue JSDatabase::readTransaction(ExecState* exec)
-{
- return createTransaction(exec, m_impl.get(), static_cast<JSDOMGlobalObject*>(globalObject()), true);
-}
-
-}
-
-#endif // ENABLE(DATABASE)
diff --git a/WebCore/bindings/js/JSDatabaseSyncCustom.cpp b/WebCore/bindings/js/JSDatabaseSyncCustom.cpp
deleted file mode 100644
index f929658..0000000
--- a/WebCore/bindings/js/JSDatabaseSyncCustom.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "JSDatabaseSync.h"
-
-#if ENABLE(DATABASE)
-
-#include "DatabaseSync.h"
-#include "ExceptionCode.h"
-#include "JSSQLTransactionSyncCallback.h"
-#include "PlatformString.h"
-#include "SQLValue.h"
-#include <runtime/JSArray.h>
-
-namespace WebCore {
-
-using namespace JSC;
-
-JSValue JSDatabaseSync::changeVersion(ExecState* exec)
-{
- String oldVersion = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- String newVersion = ustringToString(exec->argument(1).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<SQLTransactionSyncCallback> callback;
- if (exec->argumentCount() > 2 && !exec->argument(2).isNull()) {
- JSObject* object = exec->argument(2).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- callback = JSSQLTransactionSyncCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
- }
-
- ExceptionCode ec = 0;
- m_impl->changeVersion(oldVersion, newVersion, callback.release(), ec);
- setDOMException(exec, ec);
-
- return jsUndefined();
-}
-
-static JSValue createTransaction(ExecState* exec, DatabaseSync* database, JSDOMGlobalObject* globalObject, bool readOnly)
-{
- JSObject* object = exec->argument(0).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- RefPtr<SQLTransactionSyncCallback> callback(JSSQLTransactionSyncCallback::create(object, globalObject));
-
- ExceptionCode ec = 0;
- database->transaction(callback.release(), readOnly, ec);
- setDOMException(exec, ec);
-
- return jsUndefined();
-}
-
-JSValue JSDatabaseSync::transaction(ExecState* exec)
-{
- return createTransaction(exec, m_impl.get(), static_cast<JSDOMGlobalObject*>(globalObject()), false);
-}
-
-JSValue JSDatabaseSync::readTransaction(ExecState* exec)
-{
- return createTransaction(exec, m_impl.get(), static_cast<JSDOMGlobalObject*>(globalObject()), true);
-}
-
-}
-
-#endif // ENABLE(DATABASE)
diff --git a/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp b/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp
index 6c4dfb4..38334b9 100644
--- a/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp
+++ b/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp
@@ -47,8 +47,15 @@ namespace WebCore {
JSValue JSNotificationCenter::requestPermission(ExecState* exec)
{
- // Permission request is only valid from page context.
ScriptExecutionContext* context = impl()->context();
+
+ // Make sure that script execution context is valid.
+ if (!context) {
+ setDOMException(exec, INVALID_STATE_ERR);
+ return jsUndefined();
+ }
+
+ // Permission request is only valid from page context.
if (context->isWorkerContext())
return throwSyntaxError(exec);
diff --git a/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp b/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp
new file mode 100644
index 0000000..225a626
--- /dev/null
+++ b/WebCore/bindings/js/JSDeviceMotionEventCustom.cpp
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "JSDeviceMotionEvent.h"
+
+#if ENABLE(DEVICE_ORIENTATION)
+
+#include "DeviceMotionData.h"
+#include "DeviceMotionEvent.h"
+
+using namespace JSC;
+
+namespace WebCore {
+
+JSValue JSDeviceMotionEvent::xAcceleration(ExecState* exec) const
+{
+ DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
+ if (!imp->deviceMotionData()->canProvideXAcceleration())
+ return jsNull();
+ return jsNumber(exec, imp->deviceMotionData()->xAcceleration());
+}
+
+JSValue JSDeviceMotionEvent::yAcceleration(ExecState* exec) const
+{
+ DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
+ if (!imp->deviceMotionData()->canProvideYAcceleration())
+ return jsNull();
+ return jsNumber(exec, imp->deviceMotionData()->yAcceleration());
+}
+
+JSValue JSDeviceMotionEvent::zAcceleration(ExecState* exec) const
+{
+ DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
+ if (!imp->deviceMotionData()->canProvideZAcceleration())
+ return jsNull();
+ return jsNumber(exec, imp->deviceMotionData()->zAcceleration());
+}
+
+JSValue JSDeviceMotionEvent::xRotationRate(ExecState* exec) const
+{
+ DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
+ if (!imp->deviceMotionData()->canProvideXRotationRate())
+ return jsNull();
+ return jsNumber(exec, imp->deviceMotionData()->xRotationRate());
+}
+
+JSValue JSDeviceMotionEvent::yRotationRate(ExecState* exec) const
+{
+ DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
+ if (!imp->deviceMotionData()->canProvideYRotationRate())
+ return jsNull();
+ return jsNumber(exec, imp->deviceMotionData()->yRotationRate());
+}
+
+JSValue JSDeviceMotionEvent::zRotationRate(ExecState* exec) const
+{
+ DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
+ if (!imp->deviceMotionData()->canProvideZRotationRate())
+ return jsNull();
+ return jsNumber(exec, imp->deviceMotionData()->zRotationRate());
+}
+
+JSValue JSDeviceMotionEvent::interval(ExecState* exec) const
+{
+ DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
+ if (!imp->deviceMotionData()->canProvideInterval())
+ return jsNull();
+ return jsNumber(exec, imp->deviceMotionData()->interval());
+}
+
+JSValue JSDeviceMotionEvent::initDeviceMotionEvent(ExecState* exec)
+{
+ const String& type = ustringToString(exec->argument(0).toString(exec));
+ bool bubbles = exec->argument(1).toBoolean(exec);
+ bool cancelable = exec->argument(2).toBoolean(exec);
+ // If any of the parameters are null or undefined, mark them as not provided.
+ // Otherwise, use the standard JavaScript conversion.
+ bool xAccelerationProvided = !exec->argument(3).isUndefinedOrNull();
+ double xAcceleration = exec->argument(3).toNumber(exec);
+ bool yAccelerationProvided = !exec->argument(4).isUndefinedOrNull();
+ double yAcceleration = exec->argument(4).toNumber(exec);
+ bool zAccelerationProvided = !exec->argument(5).isUndefinedOrNull();
+ double zAcceleration = exec->argument(5).toNumber(exec);
+ bool xRotationRateProvided = !exec->argument(6).isUndefinedOrNull();
+ double xRotationRate = exec->argument(6).toNumber(exec);
+ bool yRotationRateProvided = !exec->argument(7).isUndefinedOrNull();
+ double yRotationRate = exec->argument(7).toNumber(exec);
+ bool zRotationRateProvided = !exec->argument(8).isUndefinedOrNull();
+ double zRotationRate = exec->argument(8).toNumber(exec);
+ bool intervalProvided = !exec->argument(9).isUndefinedOrNull();
+ double interval = exec->argument(9).toNumber(exec);
+ RefPtr<DeviceMotionData> deviceMotionData = DeviceMotionData::create(xAccelerationProvided, xAcceleration,
+ yAccelerationProvided, yAcceleration,
+ zAccelerationProvided, zAcceleration,
+ xRotationRateProvided, xRotationRate,
+ yRotationRateProvided, yRotationRate,
+ zRotationRateProvided, zRotationRate,
+ intervalProvided, interval);
+ DeviceMotionEvent* imp = static_cast<DeviceMotionEvent*>(impl());
+ imp->initDeviceMotionEvent(type, bubbles, cancelable, deviceMotionData.get());
+ return jsUndefined();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(DEVICE_ORIENTATION)
diff --git a/WebCore/bindings/js/JSEventCustom.cpp b/WebCore/bindings/js/JSEventCustom.cpp
index b6190ff..7479020 100644
--- a/WebCore/bindings/js/JSEventCustom.cpp
+++ b/WebCore/bindings/js/JSEventCustom.cpp
@@ -32,12 +32,14 @@
#include "Clipboard.h"
#include "CompositionEvent.h"
#include "CustomEvent.h"
+#include "DeviceMotionEvent.h"
#include "DeviceOrientationEvent.h"
#include "Event.h"
#include "JSBeforeLoadEvent.h"
#include "JSClipboard.h"
#include "JSCustomEvent.h"
#include "JSCompositionEvent.h"
+#include "JSDeviceMotionEvent.h"
#include "JSDeviceOrientationEvent.h"
#include "JSErrorEvent.h"
#include "JSKeyboardEvent.h"
@@ -173,6 +175,8 @@ JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, Event* event)
else if (event->isCustomEvent())
wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, CustomEvent, event);
#if ENABLE(DEVICE_ORIENTATION)
+ else if (event->isDeviceMotionEvent())
+ wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, DeviceMotionEvent, event);
else if (event->isDeviceOrientationEvent())
wrapper = CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, DeviceOrientationEvent, event);
#endif
diff --git a/WebCore/bindings/js/JSEventTarget.cpp b/WebCore/bindings/js/JSEventTarget.cpp
index c5fce64..c86845d 100644
--- a/WebCore/bindings/js/JSEventTarget.cpp
+++ b/WebCore/bindings/js/JSEventTarget.cpp
@@ -88,7 +88,7 @@
#include "WebSocket.h"
#endif
-#if ENABLE(FILE_READER)
+#if ENABLE(BLOB)
#include "JSFileReader.h"
#include "FileReader.h"
#endif
@@ -164,7 +164,7 @@ JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, EventTarget* targ
return toJS(exec, webSocket);
#endif
-#if ENABLE(FILE_READER)
+#if ENABLE(BLOB)
if (FileReader* fileReader = target->toFileReader())
return toJS(exec, globalObject, fileReader);
#endif
diff --git a/WebCore/bindings/js/JSHTMLDocumentCustom.cpp b/WebCore/bindings/js/JSHTMLDocumentCustom.cpp
index a0e189e..0b40ef0 100644
--- a/WebCore/bindings/js/JSHTMLDocumentCustom.cpp
+++ b/WebCore/bindings/js/JSHTMLDocumentCustom.cpp
@@ -150,7 +150,7 @@ static inline void documentWrite(ExecState* exec, HTMLDocument* document, Newlin
}
}
if (addNewline)
- segmentedString.append(SegmentedString(&newlineCharacter, 1));
+ segmentedString.append(SegmentedString(String(&newlineCharacter, 1)));
Document* activeDocument = asJSDOMWindow(exec->lexicalGlobalObject())->impl()->document();
document->write(segmentedString, activeDocument);
diff --git a/WebCore/bindings/js/JSIDBAnyCustom.cpp b/WebCore/bindings/js/JSIDBAnyCustom.cpp
index 92f725a..e428bf6 100644
--- a/WebCore/bindings/js/JSIDBAnyCustom.cpp
+++ b/WebCore/bindings/js/JSIDBAnyCustom.cpp
@@ -32,16 +32,18 @@
#include "JSIDBAny.h"
#include "IDBAny.h"
-#include "IDBDatabaseRequest.h"
+#include "IDBCursor.h"
+#include "IDBDatabase.h"
#include "IDBFactory.h"
#include "IDBIndex.h"
#include "IDBKey.h"
-#include "IDBObjectStoreRequest.h"
-#include "JSIDBDatabaseRequest.h"
+#include "IDBObjectStore.h"
+#include "JSIDBCursor.h"
+#include "JSIDBDatabase.h"
#include "JSIDBFactory.h"
#include "JSIDBIndex.h"
#include "JSIDBKey.h"
-#include "JSIDBObjectStoreRequest.h"
+#include "JSIDBObjectStore.h"
#include "SerializedScriptValue.h"
using namespace JSC;
@@ -58,14 +60,16 @@ JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, IDBAny* idbAny)
return jsUndefined();
case IDBAny::NullType:
return jsNull();
- case IDBAny::IDBDatabaseRequestType:
- return toJS(exec, globalObject, idbAny->idbDatabaseRequest());
+ case IDBAny::IDBCursorType:
+ return toJS(exec, globalObject, idbAny->idbCursor());
+ case IDBAny::IDBDatabaseType:
+ return toJS(exec, globalObject, idbAny->idbDatabase());
case IDBAny::IDBIndexType:
return toJS(exec, globalObject, idbAny->idbIndex());
case IDBAny::IDBKeyType:
return toJS(exec, globalObject, idbAny->idbKey());
- case IDBAny::IDBObjectStoreRequestType:
- return toJS(exec, globalObject, idbAny->idbObjectStoreRequest());
+ case IDBAny::IDBObjectStoreType:
+ return toJS(exec, globalObject, idbAny->idbObjectStore());
case IDBAny::IDBFactoryType:
return toJS(exec, globalObject, idbAny->idbFactory());
case IDBAny::SerializedScriptValueType:
diff --git a/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp b/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
index a0d75f8..0c891a3 100644
--- a/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
+++ b/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
@@ -48,6 +48,7 @@
#include "InjectedScriptHost.h"
#include "InspectorController.h"
#include "InspectorResource.h"
+#include "InspectorValues.h"
#include "JSDOMWindow.h"
#include "JSDOMWindowCustom.h"
#include "JSNode.h"
@@ -55,7 +56,6 @@
#include "Node.h"
#include "Page.h"
#if ENABLE(DOM_STORAGE)
-#include "SerializedScriptValue.h"
#include "Storage.h"
#include "JSStorage.h"
#endif
@@ -103,23 +103,6 @@ ScriptObject InjectedScriptHost::createInjectedScript(const String& source, Scri
return ScriptObject();
}
-#if ENABLE(DATABASE)
-JSValue JSInjectedScriptHost::databaseForId(ExecState* exec)
-{
- if (exec->argumentCount() < 1)
- return jsUndefined();
-
- InspectorController* ic = impl()->inspectorController();
- if (!ic)
- return jsUndefined();
-
- Database* database = impl()->databaseForId(exec->argument(0).toInt32(exec));
- if (!database)
- return jsUndefined();
- return toJS(exec, database);
-}
-#endif
-
#if ENABLE(JAVASCRIPT_DEBUGGER)
JSValue JSInjectedScriptHost::currentCallFrame(ExecState* exec)
{
@@ -192,24 +175,6 @@ JSValue JSInjectedScriptHost::selectDOMStorage(ExecState* exec)
}
#endif
-JSValue JSInjectedScriptHost::reportDidDispatchOnInjectedScript(ExecState* exec)
-{
- if (exec->argumentCount() < 3)
- return jsUndefined();
-
- if (!exec->argument(0).isInt32())
- return jsUndefined();
- int callId = exec->argument(0).asInt32();
-
- RefPtr<SerializedScriptValue> result(SerializedScriptValue::create(exec, exec->argument(1)));
-
- bool isException;
- if (!exec->argument(2).getBoolean(isException))
- return jsUndefined();
- impl()->reportDidDispatchOnInjectedScript(callId, result.get(), isException);
- return jsUndefined();
-}
-
InjectedScript InjectedScriptHost::injectedScriptFor(ScriptState* scriptState)
{
JSLock lock(SilenceAssertionsOnly);
diff --git a/WebCore/bindings/js/JSMessagePortCustom.h b/WebCore/bindings/js/JSMessagePortCustom.h
index 62ebef1..8396ae1 100644
--- a/WebCore/bindings/js/JSMessagePortCustom.h
+++ b/WebCore/bindings/js/JSMessagePortCustom.h
@@ -33,13 +33,12 @@
#include "MessagePort.h"
#include <runtime/JSValue.h>
+#include <wtf/Forward.h>
namespace WebCore {
typedef int ExceptionCode;
- class String;
-
// Helper function which pulls the values out of a JS sequence and into a MessagePortArray.
// Also validates the elements per sections 4.1.13 and 4.1.15 of the WebIDL spec and section 8.3.3 of the HTML5 spec.
// May generate an exception via the passed ExecState.
diff --git a/WebCore/bindings/js/JSSQLTransactionCustom.cpp b/WebCore/bindings/js/JSSQLTransactionCustom.cpp
index 44ebb02..e32ea55 100644
--- a/WebCore/bindings/js/JSSQLTransactionCustom.cpp
+++ b/WebCore/bindings/js/JSSQLTransactionCustom.cpp
@@ -95,7 +95,7 @@ JSValue JSSQLTransaction::executeSql(ExecState* exec)
return jsUndefined();
}
- callback = JSSQLStatementCallback::create(object, static_cast<JSDOMGlobalObject*>(exec->dynamicGlobalObject()));
+ callback = JSSQLStatementCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
}
RefPtr<SQLStatementErrorCallback> errorCallback;
@@ -106,7 +106,7 @@ JSValue JSSQLTransaction::executeSql(ExecState* exec)
return jsUndefined();
}
- errorCallback = JSSQLStatementErrorCallback::create(object, static_cast<JSDOMGlobalObject*>(exec->dynamicGlobalObject()));
+ errorCallback = JSSQLStatementErrorCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
}
ExceptionCode ec = 0;
diff --git a/WebCore/bindings/js/JSWorkerContextCustom.cpp b/WebCore/bindings/js/JSWorkerContextCustom.cpp
index b443f90..b8885cf 100644
--- a/WebCore/bindings/js/JSWorkerContextCustom.cpp
+++ b/WebCore/bindings/js/JSWorkerContextCustom.cpp
@@ -29,13 +29,6 @@
#include "JSWorkerContext.h"
-#if ENABLE(DATABASE)
-#include "Database.h"
-#include "DatabaseSync.h"
-#include "JSDatabase.h"
-#include "JSDatabaseCallback.h"
-#include "JSDatabaseSync.h"
-#endif
#include "ExceptionCode.h"
#include "JSDOMBinding.h"
#include "JSDOMGlobalObject.h"
@@ -153,89 +146,6 @@ JSValue JSWorkerContext::messageChannel(ExecState* exec) const
}
#endif
-#if ENABLE(DATABASE)
-JSValue JSWorkerContext::openDatabase(ExecState* exec)
-{
- if (exec->argumentCount() < 4) {
- setDOMException(exec, SYNTAX_ERR);
- return jsUndefined();
- }
-
- String name = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- String version = ustringToString(exec->argument(1).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- String displayName = ustringToString(exec->argument(2).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- // exec->argument(3) = estimated size
- unsigned long estimatedSize = exec->argument(3).toUInt32(exec);
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<DatabaseCallback> creationCallback;
- if (exec->argumentCount() >= 5) {
- if (!exec->argument(4).isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- creationCallback = JSDatabaseCallback::create(asObject(exec->argument(4)), globalObject());
- }
-
- ExceptionCode ec = 0;
- JSValue result = toJS(exec, globalObject(), WTF::getPtr(impl()->openDatabase(name, version, displayName, estimatedSize, creationCallback.release(), ec)));
- setDOMException(exec, ec);
- return result;
-}
-
-JSValue JSWorkerContext::openDatabaseSync(ExecState* exec)
-{
- if (exec->argumentCount() < 4) {
- setDOMException(exec, SYNTAX_ERR);
- return jsUndefined();
- }
-
- String name = ustringToString(exec->argument(0).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- String version = ustringToString(exec->argument(1).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- String displayName = ustringToString(exec->argument(2).toString(exec));
- if (exec->hadException())
- return jsUndefined();
-
- // exec->argument(3) = estimated size
- unsigned long estimatedSize = exec->argument(3).toUInt32(exec);
- if (exec->hadException())
- return jsUndefined();
-
- RefPtr<DatabaseCallback> creationCallback;
- if (exec->argumentCount() >= 5) {
- if (!exec->argument(4).isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
-
- creationCallback = JSDatabaseCallback::create(asObject(exec->argument(4)), globalObject());
- }
-
- ExceptionCode ec = 0;
- JSValue result = toJS(exec, globalObject(), WTF::getPtr(impl()->openDatabaseSync(name, version, displayName, estimatedSize, creationCallback.release(), ec)));
-
- setDOMException(exec, ec);
- return result;
-}
-#endif
-
} // namespace WebCore
#endif // ENABLE(WORKERS)
diff --git a/WebCore/bindings/js/JavaScriptCallFrame.h b/WebCore/bindings/js/JavaScriptCallFrame.h
index 574c782..c23a43d 100644
--- a/WebCore/bindings/js/JavaScriptCallFrame.h
+++ b/WebCore/bindings/js/JavaScriptCallFrame.h
@@ -30,13 +30,12 @@
#include <debugger/DebuggerCallFrame.h>
#include <interpreter/CallFrame.h>
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
-class String;
-
class JavaScriptCallFrame : public RefCounted<JavaScriptCallFrame> {
public:
static PassRefPtr<JavaScriptCallFrame> create(const JSC::DebuggerCallFrame& debuggerCallFrame, PassRefPtr<JavaScriptCallFrame> caller, intptr_t sourceID, int line)
diff --git a/WebCore/bindings/js/ScheduledAction.cpp b/WebCore/bindings/js/ScheduledAction.cpp
index f69f8bd..a9dc6a8 100644
--- a/WebCore/bindings/js/ScheduledAction.cpp
+++ b/WebCore/bindings/js/ScheduledAction.cpp
@@ -34,7 +34,6 @@
#include "ScriptController.h"
#include "ScriptExecutionContext.h"
#include "ScriptSourceCode.h"
-#include "ScriptValue.h"
#include <runtime/JSLock.h>
#if ENABLE(WORKERS)
diff --git a/WebCore/bindings/js/ScriptArray.cpp b/WebCore/bindings/js/ScriptArray.cpp
deleted file mode 100644
index 119d303..0000000
--- a/WebCore/bindings/js/ScriptArray.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptArray.h"
-
-#include "SerializedScriptValue.h"
-
-#include <runtime/JSLock.h>
-
-using namespace JSC;
-
-namespace WebCore {
-
-ScriptArray::ScriptArray(ScriptState* scriptState, JSArray* object)
- : ScriptObject(scriptState, object)
-{
-}
-
-static bool handleException(ScriptState* scriptState)
-{
- if (!scriptState->hadException())
- return true;
-
- reportException(scriptState, scriptState->exception());
- return false;
-}
-
-bool ScriptArray::set(unsigned index, const ScriptObject& value)
-{
- if (value.scriptState() != m_scriptState) {
- ASSERT_NOT_REACHED();
- return false;
- }
- JSLock lock(SilenceAssertionsOnly);
- jsArray()->put(m_scriptState, index, value.jsObject());
- return handleException(m_scriptState);
-}
-
-bool ScriptArray::set(unsigned index, SerializedScriptValue* value)
-{
- ScriptValue scriptValue = ScriptValue::deserialize(m_scriptState, value);
- if (scriptValue.hasNoValue()) {
- ASSERT_NOT_REACHED();
- return false;
- }
-
- JSLock lock(SilenceAssertionsOnly);
- jsArray()->put(m_scriptState, index, scriptValue.jsValue());
- return handleException(m_scriptState);
-}
-
-bool ScriptArray::set(unsigned index, const String& value)
-{
- JSLock lock(SilenceAssertionsOnly);
- jsArray()->put(m_scriptState, index, jsString(m_scriptState, value));
- return handleException(m_scriptState);
-}
-
-bool ScriptArray::set(unsigned index, double value)
-{
- JSLock lock(SilenceAssertionsOnly);
- jsArray()->put(m_scriptState, index, jsNumber(m_scriptState, value));
- return handleException(m_scriptState);
-}
-
-bool ScriptArray::set(unsigned index, long long value)
-{
- JSLock lock(SilenceAssertionsOnly);
- jsArray()->put(m_scriptState, index, jsNumber(m_scriptState, value));
- return handleException(m_scriptState);
-}
-
-bool ScriptArray::set(unsigned index, int value)
-{
- JSLock lock(SilenceAssertionsOnly);
- jsArray()->put(m_scriptState, index, jsNumber(m_scriptState, value));
- return handleException(m_scriptState);
-}
-
-bool ScriptArray::set(unsigned index, bool value)
-{
- JSLock lock(SilenceAssertionsOnly);
- jsArray()->put(m_scriptState, index, jsBoolean(value));
- return handleException(m_scriptState);
-}
-
-unsigned ScriptArray::length()
-{
- JSLock lock(SilenceAssertionsOnly);
- return jsArray()->length();
-}
-
-ScriptArray ScriptArray::createNew(ScriptState* scriptState)
-{
- JSLock lock(SilenceAssertionsOnly);
- return ScriptArray(scriptState, constructEmptyArray(scriptState));
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptArray.h b/WebCore/bindings/js/ScriptArray.h
deleted file mode 100644
index 2badd09..0000000
--- a/WebCore/bindings/js/ScriptArray.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptArray_h
-#define ScriptArray_h
-
-#include "ScriptObject.h"
-#include "ScriptState.h"
-
-#include <runtime/JSArray.h>
-
-namespace WebCore {
-class SerializedScriptValue;
-
-class ScriptArray : public ScriptObject {
-public:
- ScriptArray(ScriptState*, JSC::JSArray*);
- ScriptArray() {}
- JSC::JSArray* jsArray() const { return asArray(jsValue()); }
-
- bool set(unsigned index, const ScriptObject&);
- bool set(unsigned index, SerializedScriptValue*);
- bool set(unsigned index, const String&);
- bool set(unsigned index, double);
- bool set(unsigned index, long long);
- bool set(unsigned index, int);
- bool set(unsigned index, bool);
- unsigned length();
-
- static ScriptArray createNew(ScriptState*);
-};
-}
-
-#endif // ScriptArray_h
diff --git a/WebCore/bindings/js/ScriptCallStack.h b/WebCore/bindings/js/ScriptCallStack.h
index e461ac3..a45e65a 100644
--- a/WebCore/bindings/js/ScriptCallStack.h
+++ b/WebCore/bindings/js/ScriptCallStack.h
@@ -31,7 +31,6 @@
#ifndef ScriptCallStack_h
#define ScriptCallStack_h
-#include "ScriptArray.h"
#include "ScriptCallFrame.h"
#include "ScriptState.h"
#include "ScriptString.h"
diff --git a/WebCore/bindings/js/ScriptController.h b/WebCore/bindings/js/ScriptController.h
index 80155e4..8dae637 100644
--- a/WebCore/bindings/js/ScriptController.h
+++ b/WebCore/bindings/js/ScriptController.h
@@ -26,6 +26,7 @@
#include "ScriptControllerBase.h"
#include "ScriptInstance.h"
#include <runtime/Protect.h>
+#include <wtf/Forward.h>
#include <wtf/RefPtr.h>
#if PLATFORM(MAC)
@@ -57,7 +58,6 @@ class Frame;
class Node;
class ScriptSourceCode;
class ScriptValue;
-class String;
class Widget;
class XSSAuditor;
diff --git a/WebCore/bindings/js/ScriptControllerEfl.cpp b/WebCore/bindings/js/ScriptControllerEfl.cpp
index 950c11e..fea172e 100644
--- a/WebCore/bindings/js/ScriptControllerEfl.cpp
+++ b/WebCore/bindings/js/ScriptControllerEfl.cpp
@@ -39,14 +39,10 @@ namespace WebCore {
PassRefPtr<JSC::Bindings::Instance> ScriptController::createScriptInstanceForWidget(Widget* widget)
{
- return 0;
-
-#if 0 // FIXME: disabled until we have Plugin system done.
if (!widget->isPluginView())
return 0;
return static_cast<PluginView*>(widget)->bindingInstance();
-#endif
}
}
diff --git a/WebCore/bindings/js/ScriptObject.cpp b/WebCore/bindings/js/ScriptObject.cpp
index de397f7..e06eccb 100644
--- a/WebCore/bindings/js/ScriptObject.cpp
+++ b/WebCore/bindings/js/ScriptObject.cpp
@@ -59,96 +59,6 @@ static bool handleException(ScriptState* scriptState)
return false;
}
-bool ScriptObject::set(const String& name, const String& value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, stringToUString(name)), jsString(m_scriptState, stringToUString(value)), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, const ScriptObject& value)
-{
- if (value.scriptState() != m_scriptState) {
- ASSERT_NOT_REACHED();
- return false;
- }
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), value.jsObject(), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, const String& value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsString(m_scriptState, value), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, double value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsNumber(m_scriptState, value), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, long value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsNumber(m_scriptState, value), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, long long value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsNumber(m_scriptState, value), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, int value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsNumber(m_scriptState, value), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, unsigned value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsNumber(m_scriptState, value), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, unsigned long value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsNumber(m_scriptState, value), slot);
- return handleException(m_scriptState);
-}
-
-bool ScriptObject::set(const char* name, bool value)
-{
- JSLock lock(SilenceAssertionsOnly);
- PutPropertySlot slot;
- jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsBoolean(value), slot);
- return handleException(m_scriptState);
-}
-
-ScriptObject ScriptObject::createNew(ScriptState* scriptState)
-{
- JSLock lock(SilenceAssertionsOnly);
- return ScriptObject(scriptState, constructEmptyObject(scriptState));
-}
-
bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, const ScriptObject& value)
{
JSLock lock(SilenceAssertionsOnly);
diff --git a/WebCore/bindings/js/ScriptObject.h b/WebCore/bindings/js/ScriptObject.h
index 9880976..f085e8b 100644
--- a/WebCore/bindings/js/ScriptObject.h
+++ b/WebCore/bindings/js/ScriptObject.h
@@ -48,19 +48,6 @@ namespace WebCore {
JSC::JSObject* jsObject() const { return asObject(jsValue()); }
ScriptState* scriptState() const { return m_scriptState; }
- bool set(const String& name, const String&);
- bool set(const char* name, const ScriptObject&);
- bool set(const char* name, const String&);
- bool set(const char* name, double);
- bool set(const char* name, long);
- bool set(const char* name, long long);
- bool set(const char* name, int);
- bool set(const char* name, unsigned);
- bool set(const char* name, unsigned long);
- bool set(const char* name, bool);
-
- static ScriptObject createNew(ScriptState*);
-
protected:
ScriptState* m_scriptState;
};
diff --git a/WebCore/bindings/js/ScriptProfile.cpp b/WebCore/bindings/js/ScriptProfile.cpp
new file mode 100644
index 0000000..1fbd040
--- /dev/null
+++ b/WebCore/bindings/js/ScriptProfile.cpp
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ScriptProfile.h"
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+#include "InspectorValues.h"
+#include "JSDOMBinding.h"
+#include <profiler/Profile.h>
+#include <profiler/ProfileNode.h>
+
+namespace WebCore {
+
+PassRefPtr<ScriptProfile> ScriptProfile::create(PassRefPtr<JSC::Profile> profile)
+{
+ if (!profile)
+ return 0;
+ return adoptRef(new ScriptProfile(profile));
+}
+
+ScriptProfile::ScriptProfile(PassRefPtr<JSC::Profile> profile)
+ : m_profile(profile)
+{
+}
+
+ScriptProfile::~ScriptProfile()
+{
+}
+
+String ScriptProfile::title() const
+{
+ return ustringToString(m_profile->title());
+}
+
+unsigned int ScriptProfile::uid() const
+{
+ return m_profile->uid();
+}
+
+ScriptProfileNode* ScriptProfile::head() const
+{
+ return m_profile->head();
+}
+
+static PassRefPtr<InspectorObject> buildInspectorObjectFor(const JSC::ProfileNode* node)
+{
+ RefPtr<InspectorObject> result = InspectorObject::create();
+
+ result->setString("functionName", ustringToString(node->functionName()));
+ result->setString("url", ustringToString(node->url()));
+ result->setNumber("lineNumber", node->lineNumber());
+ result->setNumber("totalTime", node->totalTime());
+ result->setNumber("selfTime", node->selfTime());
+ result->setNumber("numberOfCalls", node->numberOfCalls());
+ result->setBool("visible", node->visible());
+ result->setNumber("callUID", node->callIdentifier().hash());
+
+ RefPtr<InspectorArray> childrenArray = InspectorArray::create();
+ typedef Vector<RefPtr<JSC::ProfileNode> > ProfileNodesList;
+ const ProfileNodesList& children = node->children();
+ ProfileNodesList::const_iterator end = children.end();
+ for (ProfileNodesList::const_iterator iter = children.begin(); iter != end; ++iter)
+ childrenArray->push(buildInspectorObjectFor(iter->get()));
+ result->set("children", childrenArray);
+
+ return result;
+}
+
+PassRefPtr<InspectorObject> ScriptProfile::buildInspectorObjectForHead() const
+{
+ return buildInspectorObjectFor(m_profile->head());
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(JAVASCRIPT_DEBUGGER)
diff --git a/WebCore/bindings/js/ScriptProfile.h b/WebCore/bindings/js/ScriptProfile.h
index 32095e3..b39d2c9 100644
--- a/WebCore/bindings/js/ScriptProfile.h
+++ b/WebCore/bindings/js/ScriptProfile.h
@@ -28,11 +28,37 @@
#define ScriptProfile_h
#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include <profiler/Profile.h>
+#include "ScriptProfileNode.h"
+#include <wtf/Forward.h>
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+#include <wtf/RefPtr.h>
+
+namespace JSC {
+class Profile;
+}
namespace WebCore {
-typedef JSC::Profile ScriptProfile;
+class InspectorObject;
+
+class ScriptProfile : public RefCounted<ScriptProfile> {
+public:
+ static PassRefPtr<ScriptProfile> create(PassRefPtr<JSC::Profile> profile);
+ virtual ~ScriptProfile();
+
+ String title() const;
+ unsigned int uid() const;
+ ScriptProfileNode* head() const;
+
+ PassRefPtr<InspectorObject> buildInspectorObjectForHead() const;
+
+private:
+ ScriptProfile(PassRefPtr<JSC::Profile> profile);
+
+ RefPtr<JSC::Profile> m_profile;
+};
+
} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptProfiler.cpp b/WebCore/bindings/js/ScriptProfiler.cpp
index 5121232..f372c3c 100644
--- a/WebCore/bindings/js/ScriptProfiler.cpp
+++ b/WebCore/bindings/js/ScriptProfiler.cpp
@@ -42,7 +42,8 @@ void ScriptProfiler::start(ScriptState* state, const String& title)
PassRefPtr<ScriptProfile> ScriptProfiler::stop(ScriptState* state, const String& title)
{
- return JSC::Profiler::profiler()->stopProfiling(state, stringToUString(title));
+ RefPtr<JSC::Profile> profile = JSC::Profiler::profiler()->stopProfiling(state, stringToUString(title));
+ return ScriptProfile::create(profile);
}
} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptProfiler.h b/WebCore/bindings/js/ScriptProfiler.h
index 16195a3..4fa331c 100644
--- a/WebCore/bindings/js/ScriptProfiler.h
+++ b/WebCore/bindings/js/ScriptProfiler.h
@@ -40,6 +40,7 @@ public:
static void start(ScriptState* state, const String& title);
static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
static void takeHeapSnapshot() { }
+ static long getProfilerLogLines(long, String*) { return 0; }
};
} // namespace WebCore
diff --git a/WebCore/bindings/js/ScriptSourceProvider.h b/WebCore/bindings/js/ScriptSourceProvider.h
index 2144169..de4e307 100644
--- a/WebCore/bindings/js/ScriptSourceProvider.h
+++ b/WebCore/bindings/js/ScriptSourceProvider.h
@@ -28,11 +28,10 @@
#define ScriptSourceProvider_h
#include <parser/SourceProvider.h>
+#include <wtf/Forward.h>
namespace WebCore {
- class String;
-
class ScriptSourceProvider : public JSC::SourceProvider {
public:
ScriptSourceProvider(const JSC::UString& url)
diff --git a/WebCore/bindings/js/ScriptString.h b/WebCore/bindings/js/ScriptString.h
index ad0ae95..558ad33 100644
--- a/WebCore/bindings/js/ScriptString.h
+++ b/WebCore/bindings/js/ScriptString.h
@@ -35,11 +35,10 @@
#include "PlatformString.h"
#include <runtime/UString.h>
#include <runtime/StringBuilder.h>
+#include <wtf/Forward.h>
namespace WebCore {
-class String;
-
class ScriptString {
public:
ScriptString() {}
diff --git a/WebCore/bindings/js/ScriptValue.cpp b/WebCore/bindings/js/ScriptValue.cpp
index abc31e2..23934cd 100644
--- a/WebCore/bindings/js/ScriptValue.cpp
+++ b/WebCore/bindings/js/ScriptValue.cpp
@@ -143,6 +143,7 @@ static PassRefPtr<InspectorValue> jsToInspectorValue(ScriptState* scriptState, J
}
return inspectorObject;
}
+ ASSERT_NOT_REACHED();
return 0;
}
diff --git a/WebCore/bindings/js/WorkerScriptController.h b/WebCore/bindings/js/WorkerScriptController.h
index 60c3b04..be7da4d 100644
--- a/WebCore/bindings/js/WorkerScriptController.h
+++ b/WebCore/bindings/js/WorkerScriptController.h
@@ -30,6 +30,7 @@
#if ENABLE(WORKERS)
#include <runtime/Protect.h>
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/Threading.h>
@@ -42,7 +43,6 @@ namespace WebCore {
class JSWorkerContext;
class ScriptSourceCode;
class ScriptValue;
- class String;
class WorkerContext;
class WorkerScriptController : public Noncopyable {
diff --git a/WebCore/bindings/objc/DOMHTML.mm b/WebCore/bindings/objc/DOMHTML.mm
index 3488b35..db64afe 100644
--- a/WebCore/bindings/objc/DOMHTML.mm
+++ b/WebCore/bindings/objc/DOMHTML.mm
@@ -124,7 +124,7 @@
{
WebCore::HTMLInputElement* inputElement = core(self);
if (inputElement) {
- WebCore::String newValue = inputElement->value();
+ WTF::String newValue = inputElement->value();
newValue.replace(targetRange.location, targetRange.length, replacementString);
inputElement->setValue(newValue);
inputElement->setSelectionRange(index, newValue.length());
diff --git a/WebCore/bindings/objc/DOMImplementationFront.h b/WebCore/bindings/objc/DOMImplementationFront.h
index 877a3b6..dabe90c 100644
--- a/WebCore/bindings/objc/DOMImplementationFront.h
+++ b/WebCore/bindings/objc/DOMImplementationFront.h
@@ -37,7 +37,6 @@ class Document;
class DocumentType;
class HTMLDocument;
class JSDOMImplementation;
-class String;
typedef int ExceptionCode;
diff --git a/WebCore/bindings/scripts/CodeGeneratorCPP.pm b/WebCore/bindings/scripts/CodeGeneratorCPP.pm
index 27cf854..ff63615 100644
--- a/WebCore/bindings/scripts/CodeGeneratorCPP.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorCPP.pm
@@ -261,7 +261,7 @@ sub GetCPPTypeGetter
return $argName if $codeGenerator->IsPrimitiveType($type) or $codeGenerator->IsStringType($type);
return "static_cast<WebCore::Range::CompareHow>($argName)" if $type eq "CompareHow";
- return "WebCore::SerializedScriptValue::create(WebCore::String($argName))" if $type eq "SerializedScriptValue";
+ return "WebCore::SerializedScriptValue::create(WTF::String($argName))" if $type eq "SerializedScriptValue";
return "toWebCore($argName)";
}
@@ -421,10 +421,14 @@ sub GenerateHeader
foreach my $attribute (@{$dataNode->attributes}) {
next if ShouldSkipTypeInHeader($attribute);
+ my $attributeConditionalString = GenerateConditionalString($attribute->signature);
my $attributeName = $attribute->signature->name;
my $attributeType = GetCPPType($attribute->signature->type, 0);
my $attributeIsReadonly = ($attribute->type =~ /^readonly/);
- my $property = " " . $attributeType . ($attributeType =~ /\*$/ ? "" : " ") . $attributeName . "() const";
+ my $property = "";
+
+ $property .= "#if ${attributeConditionalString}\n" if $attributeConditionalString;
+ $property .= " " . $attributeType . ($attributeType =~ /\*$/ ? "" : " ") . $attributeName . "() const";
my $availabilityMacro = "";
my $declarationSuffix = ";\n";
@@ -439,10 +443,11 @@ sub GenerateHeader
if (!$attributeIsReadonly and !$attribute->signature->extendedAttributes->{"Replaceable"}) {
$property = " void $setterName($attributeType)";
$property .= $declarationSuffix;
- push(@headerAttributes, $property);
+ push(@headerAttributes, $property);
}
- }
+ push(@headerAttributes, "#endif\n") if $attributeConditionalString;
+ }
push(@headerContent, @headerAttributes) if @headerAttributes > 0;
}
@@ -554,7 +559,7 @@ sub AddReturnStatement
# Used to invoke KURLs "const String&" operator
if ($codeGenerator->IsStringType($typeInfo->signature->type)) {
- return " return static_cast<const WebCore::String&>($returnValue);\n";
+ return " return static_cast<const WTF::String&>($returnValue);\n";
}
return " return $returnValue;\n";
@@ -677,7 +682,7 @@ sub GenerateImplementation
# Special cases
my @customGetterContent = ();
if ($attribute->signature->extendedAttributes->{"ConvertToString"}) {
- $getterContentHead = "WebCore::String::number(" . $getterContentHead;
+ $getterContentHead = "WTF::String::number(" . $getterContentHead;
$getterContentTail .= ")";
} elsif ($attribute->signature->type eq "SerializedScriptValue") {
$getterContentHead = "$getterContentHead";
@@ -731,7 +736,7 @@ sub GenerateImplementation
# The definition of ConvertToString is flipped for the setter
if ($attribute->signature->extendedAttributes->{"ConvertToString"}) {
- $arg = "WebCore::String($arg).toInt()";
+ $arg = "WTF::String($arg).toInt()";
}
my $attributeType = GetCPPType($attribute->signature->type, 1);
diff --git a/WebCore/bindings/scripts/CodeGeneratorGObject.pm b/WebCore/bindings/scripts/CodeGeneratorGObject.pm
index bc5aace..5700ff7 100644
--- a/WebCore/bindings/scripts/CodeGeneratorGObject.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorGObject.pm
@@ -126,6 +126,7 @@ sub ClassNameToGObjectType {
$CLASS_NAME =~ s/DOMCDATA/DOM_CDATA/;
$CLASS_NAME =~ s/DOMX_PATH/DOM_XPATH/;
$CLASS_NAME =~ s/DOM_WEB_KIT/DOM_WEBKIT/;
+ $CLASS_NAME =~ s/DOMUI/DOM_UI/;
return $CLASS_NAME;
}
@@ -207,6 +208,14 @@ sub SkipFunction {
return 1;
}
+ # Skip functions that have ["Callback"] parameters, because this
+ # code generator doesn't know how to auto-generate callbacks.
+ foreach my $param (@{$function->parameters}) {
+ if ($param->extendedAttributes->{"Callback"}) {
+ return 1;
+ }
+ }
+
return 0;
}
@@ -239,7 +248,7 @@ sub GetGlibTypeName {
my $type = shift;
my $name = GetClassName($type);
- my %types = ("DOMString", "gchar* ",
+ my %types = ("DOMString", "gchar*",
"DOMTimeStamp", "guint32",
"CompareHow", "gushort",
"float", "gfloat",
@@ -258,7 +267,7 @@ sub GetGlibTypeName {
"unsigned short", "gushort",
"void", "void");
- return $types{$type} ? $types{$type} : "$name* ";
+ return $types{$type} ? $types{$type} : "$name*";
}
sub IsGDOMClassType {
@@ -360,7 +369,7 @@ sub GenerateProperty {
my $convertFunction = "";
if ($gtype eq "string") {
- $convertFunction = "WebCore::String::fromUTF8";
+ $convertFunction = "WTF::String::fromUTF8";
}
my $getterExpressionPrefix = $codeGenerator->GetterExpressionPrefix(\%implIncludes, $interfaceName, $attribute);
@@ -802,9 +811,10 @@ sub GenerateFunction {
}
addIncludeInBody($paramIDLType);
my $paramType = GetGlibTypeName($paramIDLType);
+ my $const = $paramType eq "gchar*" ? "const " : "";
my $paramName = decamelize($param->name);
- $functionSig .= ", $paramType $paramName";
+ $functionSig .= ", ${const}$paramType $paramName";
my $paramIsGDOMType = IsGDOMClassType($paramIDLType);
if ($paramIsGDOMType) {
@@ -892,7 +902,7 @@ sub GenerateFunction {
my $paramIsGDOMType = IsGDOMClassType($paramIDLType);
if ($paramIDLType eq "DOMString") {
- push(@cBody, " WebCore::String converted_${paramName} = WebCore::String::fromUTF8($paramName);\n");
+ push(@cBody, " WTF::String converted_${paramName} = WTF::String::fromUTF8($paramName);\n");
} elsif ($paramIDLType eq "CompareHow") {
push(@cBody, " WebCore::Range::CompareHow converted_${paramName} = static_cast<WebCore::Range::CompareHow>($paramName);\n");
} elsif ($paramIsGDOMType) {
@@ -1222,7 +1232,7 @@ EOF
sub UsesManualKitImplementation {
my $type = shift;
- return 1 if $type eq "Node" or $type eq "Element";
+ return 1 if $type eq "Node" or $type eq "Element" or $type eq "Event";
return 0;
}
diff --git a/WebCore/bindings/scripts/CodeGeneratorJS.pm b/WebCore/bindings/scripts/CodeGeneratorJS.pm
index 247430f..200a95d 100644
--- a/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -299,7 +299,7 @@ sub AddIncludesForSVGAnimatedType
sub IsScriptProfileType
{
my $type = shift;
- return 1 if ($type eq "ScriptProfile" or $type eq "ScriptProfileNode");
+ return 1 if ($type eq "ScriptProfileNode");
return 0;
}
@@ -1853,12 +1853,20 @@ sub GenerateImplementation
my $requiresAllArguments = $function->signature->extendedAttributes->{"RequiresAllArguments"};
if ($requiresAllArguments) {
- push(@implContent, " if (exec->argumentCount() < $numParameters)\n");
- if ($requiresAllArguments eq "Raise") {
- push(@implContent, " return throwVMError(exec, createSyntaxError(exec, \"Not enough arguments\"));\n");
+ my $numMandatoryParams = @{$function->parameters};
+ foreach my $param (reverse(@{$function->parameters})) {
+ if ($param->extendedAttributes->{"Optional"}) {
+ $numMandatoryParams--;
} else {
- push(@implContent, " return JSValue::encode(jsUndefined());\n");
+ last;
}
+ }
+ push(@implContent, " if (exec->argumentCount() < $numMandatoryParams)\n");
+ if ($requiresAllArguments eq "Raise") {
+ push(@implContent, " return throwVMError(exec, createSyntaxError(exec, \"Not enough arguments\"));\n");
+ } else {
+ push(@implContent, " return JSValue::encode(jsUndefined());\n");
+ }
}
if (@{$function->raisesExceptions}) {
@@ -1908,14 +1916,18 @@ sub GenerateImplementation
$paramIndex++;
}
+ $implIncludes{"ExceptionCode.h"} = 1;
+ $implIncludes{"JSDOMBinding.h"} = 1;
foreach my $parameter (@{$function->parameters}) {
- if ($parameter->extendedAttributes->{"Optional"}) {
+ # Optional callbacks should be treated differently, because they always have a default value (0),
+ # and we can reduce the number of overloaded functions that take a different number of parameters.
+ if ($parameter->extendedAttributes->{"Optional"} && !$parameter->extendedAttributes->{"Callback"}) {
# Generate early call if there are enough parameters.
if (!$hasOptionalArguments) {
push(@implContent, "\n int argsCount = exec->argumentCount();\n");
$hasOptionalArguments = 1;
}
- push(@implContent, " if (argsCount < " . ($argsIndex + 1) . ") {\n");
+ push(@implContent, " if (argsCount <= $argsIndex) {\n");
GenerateImplementationFunctionCall($function, $functionString, $paramIndex, " " x 2, $podType, $implClassName);
push(@implContent, " }\n\n");
}
@@ -1934,12 +1946,22 @@ sub GenerateImplementation
} elsif ($parameter->extendedAttributes->{"Callback"}) {
my $callbackClassName = GetCallbackClassName($parameter->type);
$implIncludes{"$callbackClassName.h"} = 1;
- $implIncludes{"ExceptionCode.h"} = 1;
- push(@implContent, " if (exec->argumentCount() <= $argsIndex || !exec->argument($argsIndex).isObject()) {\n");
- push(@implContent, " setDOMException(exec, TYPE_MISMATCH_ERR);\n");
- push(@implContent, " return jsUndefined();\n");
- push(@implContent, " }\n");
- push(@implContent, " RefPtr<" . $parameter->type . "> $name = " . $callbackClassName . "::create(asObject(exec->argument($argsIndex)), castedThis->globalObject());\n");
+ if ($parameter->extendedAttributes->{"Optional"}) {
+ push(@implContent, " RefPtr<" . $parameter->type. "> $name;\n");
+ push(@implContent, " if (exec->argumentCount() > $argsIndex && !exec->argument($argsIndex).isNull() && !exec->argument($argsIndex).isUndefined()) {\n");
+ push(@implContent, " if (!exec->argument($argsIndex).isObject()) {\n");
+ push(@implContent, " setDOMException(exec, TYPE_MISMATCH_ERR);\n");
+ push(@implContent, " return JSValue::encode(jsUndefined());\n");
+ push(@implContent, " }\n");
+ push(@implContent, " $name = ${callbackClassName}::create(asObject(exec->argument($argsIndex)), castedThis->globalObject());\n");
+ push(@implContent, " }\n");
+ } else {
+ push(@implContent, " if (exec->argumentCount() <= $argsIndex || !exec->argument($argsIndex).isObject()) {\n");
+ push(@implContent, " setDOMException(exec, TYPE_MISMATCH_ERR);\n");
+ push(@implContent, " return JSValue::encode(jsUndefined());\n");
+ push(@implContent, " }\n");
+ push(@implContent, " RefPtr<" . $parameter->type . "> $name = ${callbackClassName}::create(asObject(exec->argument($argsIndex)), castedThis->globalObject());\n");
+ }
} else {
push(@implContent, " " . GetNativeTypeFromSignature($parameter) . " $name = " . JSValueToNative($parameter, "exec->argument($argsIndex)") . ";\n");
@@ -1947,12 +1969,15 @@ sub GenerateImplementation
# But this needs to be done in the bindings, because the type is unsigned and the fact that it
# was negative will be lost by the time we're inside the DOM.
if ($parameter->extendedAttributes->{"IsIndex"}) {
- $implIncludes{"ExceptionCode.h"} = 1;
push(@implContent, " if ($name < 0) {\n");
push(@implContent, " setDOMException(exec, INDEX_SIZE_ERR);\n");
push(@implContent, " return JSValue::encode(jsUndefined());\n");
push(@implContent, " }\n");
}
+
+ # Check if the type conversion succeeded.
+ push(@implContent, " if (exec->hadException())\n");
+ push(@implContent, " return JSValue::encode(jsUndefined());\n");
}
$functionString .= ", " if $paramIndex;
@@ -2084,12 +2109,13 @@ sub GenerateCallbackHeader
# - Add default header template and header protection
push(@headerContentHeader, GenerateHeaderContentHeader($dataNode));
+ $headerIncludes{"ActiveDOMCallback.h"} = 1;
$headerIncludes{"$interfaceName.h"} = 1;
$headerIncludes{"JSCallbackData.h"} = 1;
$headerIncludes{"<wtf/Forward.h>"} = 1;
push(@headerContent, "\nnamespace WebCore {\n\n");
- push(@headerContent, "class $className : public $interfaceName {\n");
+ push(@headerContent, "class $className : public $interfaceName, public ActiveDOMCallback {\n");
push(@headerContent, "public:\n");
# The static create() method.
@@ -2112,10 +2138,13 @@ sub GenerateCallbackHeader
push(@headerContent, " COMPILE_ASSERT(false)");
}
- push(@headerContent, " virtual " . GetNativeType($function->signature->type) . " " . $function->signature->name . "(ScriptExecutionContext*");
+ push(@headerContent, " virtual " . GetNativeType($function->signature->type) . " " . $function->signature->name . "(");
+
+ my @args = ();
foreach my $param (@params) {
- push(@headerContent, ", " . GetNativeType($param->type) . " " . $param->name);
+ push(@args, GetNativeType($param->type) . " " . $param->name);
}
+ push(@headerContent, join(", ", @args));
push(@headerContent, ");\n");
}
@@ -2128,8 +2157,6 @@ sub GenerateCallbackHeader
# Private members
push(@headerContent, " JSCallbackData* m_data;\n");
- push(@headerContent, " RefPtr<DOMWrapperWorld> m_isolatedWorld;\n");
- push(@headerContent, " ScriptExecutionContext* m_scriptExecutionContext;\n");
push(@headerContent, "};\n\n");
push(@headerContent, "} // namespace WebCore\n\n");
@@ -2159,19 +2186,21 @@ sub GenerateCallbackImplementation
# Constructor
push(@implContent, "${className}::${className}(JSObject* callback, JSDOMGlobalObject* globalObject)\n");
- push(@implContent, " : m_data(new JSCallbackData(callback, globalObject))\n");
- push(@implContent, " , m_isolatedWorld(globalObject->world())\n");
- push(@implContent, " , m_scriptExecutionContext(globalObject->scriptExecutionContext())\n");
+ push(@implContent, " : ActiveDOMCallback(globalObject->scriptExecutionContext())\n");
+ push(@implContent, " , m_data(new JSCallbackData(callback, globalObject))\n");
push(@implContent, "{\n");
push(@implContent, "}\n\n");
# Destructor
push(@implContent, "${className}::~${className}()\n");
push(@implContent, "{\n");
- push(@implContent, " if (m_scriptExecutionContext->isContextThread())\n");
+ push(@implContent, " ScriptExecutionContext* context = scriptExecutionContext();\n");
+ push(@implContent, " // When the context is destroyed, all tasks with a reference to a callback\n");
+ push(@implContent, " // should be deleted. So if the context is 0, we are on the context thread.\n");
+ push(@implContent, " if (!context || context->isContextThread())\n");
push(@implContent, " delete m_data;\n");
push(@implContent, " else\n");
- push(@implContent, " m_scriptExecutionContext->postTask(DeleteCallbackDataTask::create(m_data));\n");
+ push(@implContent, " context->postTask(DeleteCallbackDataTask::create(m_data));\n");
push(@implContent, "#ifndef NDEBUG\n");
push(@implContent, " m_data = 0;\n");
push(@implContent, "#endif\n");
@@ -2189,24 +2218,22 @@ sub GenerateCallbackImplementation
}
AddIncludesForType($function->signature->type);
- push(@implContent, "\n" . GetNativeType($function->signature->type) . " ${className}::" . $function->signature->name . "(ScriptExecutionContext* context");
+ push(@implContent, "\n" . GetNativeType($function->signature->type) . " ${className}::" . $function->signature->name . "(");
+ my @args = ();
foreach my $param (@params) {
AddIncludesForType($param->type, 1);
- push(@implContent, ", " . GetNativeType($param->type) . " " . $param->name);
+ push(@args, GetNativeType($param->type) . " " . $param->name);
}
-
+ push(@implContent, join(", ", @args));
push(@implContent, ")\n");
push(@implContent, "{\n");
- push(@implContent, " ASSERT(m_data);\n");
- push(@implContent, " ASSERT(context);\n\n");
+ push(@implContent, " if (!canInvokeCallback())\n");
+ push(@implContent, " return true;\n\n");
push(@implContent, " RefPtr<$className> protect(this);\n\n");
push(@implContent, " JSLock lock(SilenceAssertionsOnly);\n\n");
- push(@implContent, " JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(context, m_isolatedWorld.get());\n");
- push(@implContent, " if (!globalObject)\n");
- push(@implContent, " return true;\n\n");
- push(@implContent, " ExecState* exec = globalObject->globalExec();\n");
+ push(@implContent, " ExecState* exec = m_data->globalObject()->globalExec();\n");
push(@implContent, " MarkedArgumentBuffer args;\n");
foreach my $param (@params) {
@@ -2341,7 +2368,8 @@ sub JSValueToNative
return "$value.toBoolean(exec)" if $type eq "boolean";
return "$value.toNumber(exec)" if $type eq "double";
return "$value.toFloat(exec)" if $type eq "float" or $type eq "SVGNumber";
- return "$value.toInt32(exec)" if $type eq "unsigned long" or $type eq "long" or $type eq "unsigned short";
+ return "$value.toInt32(exec)" if $type eq "long";
+ return "$value.toUInt32(exec)" if $type eq "unsigned long" or $type eq "unsigned short";
return "static_cast<$type>($value.toInteger(exec))" if $type eq "long long" or $type eq "unsigned long long";
return "valueToDate(exec, $value)" if $type eq "Date";
diff --git a/WebCore/bindings/scripts/CodeGeneratorObjC.pm b/WebCore/bindings/scripts/CodeGeneratorObjC.pm
index 91cbd0b..7e17008 100644
--- a/WebCore/bindings/scripts/CodeGeneratorObjC.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorObjC.pm
@@ -524,7 +524,7 @@ sub GetObjCTypeGetter
if ($type eq "SerializedScriptValue") {
$implIncludes{"SerializedScriptValue.h"} = 1;
- return "WebCore::SerializedScriptValue::create(WebCore::String($argName))";
+ return "WebCore::SerializedScriptValue::create(WTF::String($argName))";
}
return "core($argName)";
}
@@ -1242,7 +1242,7 @@ sub GenerateImplementation
}
$implIncludes{"DOMPrivate.h"} = 1;
} elsif ($attribute->signature->extendedAttributes->{"ConvertToString"}) {
- $getterContentHead = "WebCore::String::number(" . $getterContentHead;
+ $getterContentHead = "WTF::String::number(" . $getterContentHead;
$getterContentTail .= ")";
} elsif ($codeGenerator->IsPodType($idlType) or $idlType eq "Date") {
$getterContentHead = "kit($getterContentHead";
@@ -1304,7 +1304,7 @@ sub GenerateImplementation
# The definition of ConvertToString is flipped for the setter
if ($attribute->signature->extendedAttributes->{"ConvertToString"}) {
- $arg = "WebCore::String($arg).toInt()";
+ $arg = "WTF::String($arg).toInt()";
}
my $setterSig = "- (void)$setterName:($attributeType)$argName\n";
diff --git a/WebCore/bindings/scripts/CodeGeneratorV8.pm b/WebCore/bindings/scripts/CodeGeneratorV8.pm
index c852f7b..f803c87 100644
--- a/WebCore/bindings/scripts/CodeGeneratorV8.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorV8.pm
@@ -1106,7 +1106,15 @@ END
my $requiresAllArguments = $function->signature->extendedAttributes->{"RequiresAllArguments"};
if ($requiresAllArguments) {
- push(@implContentDecls, " if (args.Length() < $numParameters)\n");
+ my $numMandatoryParams = @{$function->parameters};
+ foreach my $param (reverse(@{$function->parameters})) {
+ if ($param->extendedAttributes->{"Optional"}) {
+ $numMandatoryParams--;
+ } else {
+ last;
+ }
+ }
+ push(@implContentDecls, " if (args.Length() < $numMandatoryParams)\n");
if ($requiresAllArguments eq "Raise") {
push(@implContentDecls, " return throwError(\"Not enough arguments\", V8Proxy::SyntaxError);\n");
} else {
@@ -1175,7 +1183,9 @@ END
my $parameterName = $parameter->name;
- if ($parameter->extendedAttributes->{"Optional"}) {
+ # Optional callbacks should be treated differently, because they always have a default value (0),
+ # and we can reduce the number of overloaded functions that take a different number of parameters.
+ if ($parameter->extendedAttributes->{"Optional"} && !$parameter->extendedAttributes->{"Callback"}) {
# Generate early call if there are not enough parameters.
push(@implContentDecls, " if (args.Length() <= $paramIndex) {\n");
my $functionCall = GenerateFunctionCallString($function, $paramIndex, " " x 2, $implClassName);
@@ -1183,55 +1193,59 @@ END
push(@implContentDecls, " }\n");
}
+ if (BasicTypeCanFailConversion($parameter)) {
+ push(@implContentDecls, " bool ${parameterName}Ok;\n");
+ }
+
+ $implIncludes{"ExceptionCode.h"} = 1;
+ my $nativeType = GetNativeTypeFromSignature($parameter, $paramIndex);
if ($parameter->extendedAttributes->{"Callback"}) {
my $className = GetCallbackClassName($parameter->type);
$implIncludes{"$className.h"} = 1;
- $implIncludes{"ExceptionCode.h"} = 1;
- push(@implContentDecls, " if (args.Length() <= $paramIndex || !args[$paramIndex]->IsObject())\n");
- push(@implContentDecls, " return throwError(TYPE_MISMATCH_ERR);\n");
- if ($parameter->type eq "VoidCallback") {
- push(@implContentDecls, " RefPtr<" . $parameter->type . "> $parameterName = " . $className . "::create(args[$paramIndex], getScriptExecutionContext());\n");
+ if ($parameter->extendedAttributes->{"Optional"}) {
+ push(@implContentDecls, " RefPtr<" . $parameter->type . "> $parameterName;\n");
+ push(@implContentDecls, " if (args.Length() > $paramIndex && !args[$paramIndex]->IsNull() && !args[$paramIndex]->IsUndefined()) {\n");
+ push(@implContentDecls, " if (!args[$paramIndex]->IsObject())\n");
+ push(@implContentDecls, " return throwError(TYPE_MISMATCH_ERR);\n");
+ push(@implContentDecls, " $parameterName = ${className}::create(args[$paramIndex], getScriptExecutionContext());\n");
+ push(@implContentDecls, " }\n");
} else {
- push(@implContentDecls, " RefPtr<" . $parameter->type . "> $parameterName = " . $className . "::create(args[$paramIndex]);\n");
+ push(@implContentDecls, " if (args.Length() <= $paramIndex || !args[$paramIndex]->IsObject())\n");
+ push(@implContentDecls, " return throwError(TYPE_MISMATCH_ERR);\n");
+ push(@implContentDecls, " RefPtr<" . $parameter->type . "> $parameterName = ${className}::create(args[$paramIndex], getScriptExecutionContext());\n");
}
- $paramIndex++;
- next;
- }
-
- if ($parameter->type eq "SerializedScriptValue") {
+ } elsif ($parameter->type eq "SerializedScriptValue") {
$implIncludes{"SerializedScriptValue.h"} = 1;
push(@implContentDecls, " bool ${parameterName}DidThrow = false;\n");
- } elsif (BasicTypeCanFailConversion($parameter)) {
- push(@implContentDecls, " bool ${parameterName}Ok;\n");
- }
-
- push(@implContentDecls, " " . GetNativeTypeFromSignature($parameter, $paramIndex) . " $parameterName = ");
-
- if ($parameter->type eq "SerializedScriptValue") {
- push(@implContentDecls, "SerializedScriptValue::create(args[$paramIndex], ${parameterName}DidThrow);\n");
+ push(@implContentDecls, " $nativeType $parameterName = SerializedScriptValue::create(args[$paramIndex], ${parameterName}DidThrow);\n");
push(@implContentDecls, " if (${parameterName}DidThrow)\n");
push(@implContentDecls, " return v8::Undefined();\n");
+ } elsif (TypeCanFailConversion($parameter)) {
+ push(@implContentDecls, " $nativeType $parameterName = " .
+ JSValueToNative($parameter, "args[$paramIndex]", BasicTypeCanFailConversion($parameter) ? "${parameterName}Ok" : undef) . ";\n");
+ push(@implContentDecls, " if (UNLIKELY(!$parameterName" . (BasicTypeCanFailConversion($parameter) ? "Ok" : "") . ")) {\n");
+ push(@implContentDecls, " ec = TYPE_MISMATCH_ERR;\n");
+ push(@implContentDecls, " goto fail;\n");
+ push(@implContentDecls, " }\n");
+ } elsif ($nativeType =~ /^V8Parameter/) {
+ my $value = JSValueToNative($parameter, "args[$paramIndex]", BasicTypeCanFailConversion($parameter) ? "${parameterName}Ok" : undef);
+ if ($parameter->type eq "DOMString") {
+ push(@implContentDecls, " STRING_TO_V8PARAMETER_EXCEPTION_BLOCK($nativeType, $parameterName, $value);\n");
+ } else {
+ # Don't know how to properly check for conversion exceptions when $parameter->type is "DOMUserData"
+ push(@implContentDecls, " $nativeType $parameterName = $value;\n");
+ }
} else {
- push(@implContentDecls, JSValueToNative($parameter, "args[$paramIndex]",
- BasicTypeCanFailConversion($parameter) ? "${parameterName}Ok" : undef) . ";\n");
- }
-
- if (TypeCanFailConversion($parameter)) {
- $implIncludes{"ExceptionCode.h"} = 1;
- push(@implContentDecls,
-" if (UNLIKELY(!$parameterName" . (BasicTypeCanFailConversion($parameter) ? "Ok" : "") . ")) {\n" .
-" ec = TYPE_MISMATCH_ERR;\n" .
-" goto fail;\n" .
-" }\n");
+ $implIncludes{"V8BindingMacros.h"} = 1;
+ push(@implContentDecls, " EXCEPTION_BLOCK($nativeType, $parameterName, " .
+ JSValueToNative($parameter, "args[$paramIndex]", BasicTypeCanFailConversion($parameter) ? "${parameterName}Ok" : undef) . ");\n");
}
if ($parameter->extendedAttributes->{"IsIndex"}) {
- $implIncludes{"ExceptionCode.h"} = 1;
- push(@implContentDecls,
-" if (UNLIKELY($parameterName < 0)) {\n" .
-" ec = INDEX_SIZE_ERR;\n" .
-" goto fail;\n" .
-" }\n");
+ push(@implContentDecls, " if (UNLIKELY($parameterName < 0)) {\n");
+ push(@implContentDecls, " ec = INDEX_SIZE_ERR;\n");
+ push(@implContentDecls, " goto fail;\n");
+ push(@implContentDecls, " }\n");
}
$paramIndex++;
@@ -2129,25 +2143,25 @@ sub GenerateCallbackHeader
# - Add default header template
push(@headerContent, GenerateHeaderContentHeader($dataNode));
- if ("$interfaceName.h" lt "WorldContextHandle.h") {
- push(@headerContent, "#include \"$interfaceName.h\"\n");
- push(@headerContent, "#include \"WorldContextHandle.h\"\n");
- } else {
- push(@headerContent, "#include \"WorldContextHandle.h\"\n");
- push(@headerContent, "#include \"$interfaceName.h\"\n");
- }
- push(@headerContent, "#include <v8.h>\n");
- push(@headerContent, "#include <wtf/Forward.h>\n");
+ my @unsortedIncludes = ();
+ push(@unsortedIncludes, "#include \"ActiveDOMCallback.h\"");
+ push(@unsortedIncludes, "#include \"$interfaceName.h\"");
+ push(@unsortedIncludes, "#include \"WorldContextHandle.h\"");
+ push(@unsortedIncludes, "#include <v8.h>");
+ push(@unsortedIncludes, "#include <wtf/Forward.h>");
+ push(@headerContent, join("\n", sort @unsortedIncludes));
- push(@headerContent, "\nnamespace WebCore {\n\n");
- push(@headerContent, "class $className : public $interfaceName {\n");
+ push(@headerContent, "\n\nnamespace WebCore {\n\n");
+ push(@headerContent, "class ScriptExecutionContext;\n\n");
+ push(@headerContent, "class $className : public $interfaceName, public ActiveDOMCallback {\n");
push(@headerContent, <<END);
public:
- static PassRefPtr<${className}> create(v8::Local<v8::Value> value)
+ static PassRefPtr<${className}> create(v8::Local<v8::Value> value, ScriptExecutionContext* context)
{
ASSERT(value->IsObject());
- return adoptRef(new ${className}(value->ToObject()));
+ ASSERT(context);
+ return adoptRef(new ${className}(value->ToObject(), context));
}
virtual ~${className}();
@@ -2165,11 +2179,13 @@ END
push(@headerContent, " COMPILE_ASSERT(false)");
}
- push(@headerContent, " virtual " . GetNativeTypeForCallbacks($function->signature->type) . " " . $function->signature->name . "(ScriptExecutionContext*");
+ push(@headerContent, " virtual " . GetNativeTypeForCallbacks($function->signature->type) . " " . $function->signature->name . "(");
+
+ my @args = ();
foreach my $param (@params) {
- push(@headerContent, ", " . GetNativeTypeForCallbacks($param->type) . " " . $param->name);
+ push(@args, GetNativeTypeForCallbacks($param->type) . " " . $param->name);
}
-
+ push(@headerContent, join(", ", @args));
push(@headerContent, ");\n");
}
}
@@ -2177,7 +2193,7 @@ END
push(@headerContent, <<END);
private:
- ${className}(v8::Local<v8::Object>);
+ ${className}(v8::Local<v8::Object>, ScriptExecutionContext*);
v8::Persistent<v8::Object> m_callback;
WorldContextHandle m_worldContext;
@@ -2209,8 +2225,9 @@ sub GenerateCallbackImplementation
push(@implContent, "#include <wtf/Assertions.h>\n\n");
push(@implContent, "namespace WebCore {\n\n");
push(@implContent, <<END);
-${className}::${className}(v8::Local<v8::Object> callback)
- : m_callback(v8::Persistent<v8::Object>::New(callback))
+${className}::${className}(v8::Local<v8::Object> callback, ScriptExecutionContext* context)
+ : ActiveDOMCallback(context)
+ , m_callback(v8::Persistent<v8::Object>::New(callback))
, m_worldContext(UseCurrentWorld)
{
}
@@ -2234,22 +2251,26 @@ END
}
AddIncludesForType($function->signature->type);
- push(@implContent, "\n" . GetNativeTypeForCallbacks($function->signature->type) . " ${className}::" . $function->signature->name . "(ScriptExecutionContext* context");
+ push(@implContent, "\n" . GetNativeTypeForCallbacks($function->signature->type) . " ${className}::" . $function->signature->name . "(");
+ my @args = ();
foreach my $param (@params) {
AddIncludesForType($param->type);
- push(@implContent, ", " . GetNativeTypeForCallbacks($param->type) . " " . $param->name);
+ push(@args, GetNativeTypeForCallbacks($param->type) . " " . $param->name);
}
+ push(@implContent, join(", ", @args));
push(@implContent, ")\n");
push(@implContent, "{\n");
+ push(@implContent, " if (!canInvokeCallback())\n");
+ push(@implContent, " return true;\n\n");
push(@implContent, " v8::HandleScope handleScope;\n\n");
- push(@implContent, " v8::Handle<v8::Context> v8Context = toV8Context(context, m_worldContext);\n");
+ push(@implContent, " v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);\n");
push(@implContent, " if (v8Context.IsEmpty())\n");
push(@implContent, " return true;\n\n");
push(@implContent, " v8::Context::Scope scope(v8Context);\n\n");
- my @argvs = ();
+ @args = ();
foreach my $param (@params) {
my $paramName = $param->name;
push(@implContent, " v8::Handle<v8::Value> ${paramName}Handle = toV8(${paramName});\n");
@@ -2257,14 +2278,14 @@ END
push(@implContent, " CRASH();\n");
push(@implContent, " return true;\n");
push(@implContent, " }\n");
- push(@argvs, " ${paramName}Handle");
+ push(@args, " ${paramName}Handle");
}
push(@implContent, "\n v8::Handle<v8::Value> argv[] = {\n");
- push(@implContent, join(",\n", @argvs));
+ push(@implContent, join(",\n", @args));
push(@implContent, "\n };\n\n");
push(@implContent, " bool callbackReturnValue = false;\n");
- push(@implContent, " return !invokeCallback(m_callback, " . scalar(@params) . ", argv, callbackReturnValue, context);\n");
+ push(@implContent, " return !invokeCallback(m_callback, " . scalar(@params) . ", argv, callbackReturnValue, scriptExecutionContext());\n");
push(@implContent, "}\n");
}
}
@@ -2822,7 +2843,8 @@ sub JSValueToNative
return "static_cast<$type>($value->NumberValue())" if $type eq "float" or $type eq "double";
return "$value->NumberValue()" if $type eq "SVGNumber";
- return "toInt32($value${maybeOkParam})" if $type eq "unsigned long" or $type eq "unsigned short" or $type eq "long";
+ return "toInt32($value${maybeOkParam})" if $type eq "long";
+ return "toUInt32($value${maybeOkParam})" if $type eq "unsigned long" or $type eq "unsigned short";
return "toInt64($value)" if $type eq "unsigned long long" or $type eq "long long";
return "static_cast<Range::CompareHow>($value->Int32Value())" if $type eq "CompareHow";
return "static_cast<SVGPaint::SVGPaintType>($value->ToInt32()->Int32Value())" if $type eq "SVGPaintType";
@@ -2952,7 +2974,7 @@ sub RequiresCustomSignature
}
foreach my $parameter (@{$function->parameters}) {
- if ($parameter->extendedAttributes->{"Optional"}) {
+ if ($parameter->extendedAttributes->{"Optional"} || $parameter->extendedAttributes->{"Callback"}) {
return 0;
}
}
diff --git a/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.cpp b/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.cpp
index b8c551e..20de4fc 100644
--- a/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.cpp
+++ b/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.cpp
@@ -85,7 +85,7 @@ WebDOMString WebDOMTestObj::readOnlyStringAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->readOnlyStringAttr());
+ return static_cast<const WTF::String&>(impl()->readOnlyStringAttr());
}
WebDOMTestObj WebDOMTestObj::readOnlyTestObjAttr() const
@@ -149,7 +149,7 @@ WebDOMString WebDOMTestObj::stringAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->stringAttr());
+ return static_cast<const WTF::String&>(impl()->stringAttr());
}
void WebDOMTestObj::setStringAttr(const WebDOMString& newStringAttr)
@@ -213,7 +213,7 @@ WebDOMString WebDOMTestObj::reflectedStringAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->getAttribute(WebCore::HTMLNames::reflectedstringattrAttr));
+ return static_cast<const WTF::String&>(impl()->getAttribute(WebCore::HTMLNames::reflectedstringattrAttr));
}
void WebDOMTestObj::setReflectedStringAttr(const WebDOMString& newReflectedStringAttr)
@@ -261,7 +261,7 @@ WebDOMString WebDOMTestObj::reflectedURLAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->getURLAttribute(WebCore::HTMLNames::reflectedurlattrAttr));
+ return static_cast<const WTF::String&>(impl()->getURLAttribute(WebCore::HTMLNames::reflectedurlattrAttr));
}
void WebDOMTestObj::setReflectedURLAttr(const WebDOMString& newReflectedURLAttr)
@@ -277,7 +277,7 @@ WebDOMString WebDOMTestObj::reflectedNonEmptyURLAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->getNonEmptyURLAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr));
+ return static_cast<const WTF::String&>(impl()->getNonEmptyURLAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr));
}
void WebDOMTestObj::setReflectedNonEmptyURLAttr(const WebDOMString& newReflectedNonEmptyURLAttr)
@@ -293,7 +293,7 @@ WebDOMString WebDOMTestObj::reflectedStringAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->getAttribute(WebCore::HTMLNames::customContentStringAttrAttr));
+ return static_cast<const WTF::String&>(impl()->getAttribute(WebCore::HTMLNames::customContentStringAttrAttr));
}
void WebDOMTestObj::setReflectedStringAttr(const WebDOMString& newReflectedStringAttr)
@@ -341,7 +341,7 @@ WebDOMString WebDOMTestObj::reflectedCustomURLAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->getURLAttribute(WebCore::HTMLNames::customContentURLAttrAttr));
+ return static_cast<const WTF::String&>(impl()->getURLAttribute(WebCore::HTMLNames::customContentURLAttrAttr));
}
void WebDOMTestObj::setReflectedCustomURLAttr(const WebDOMString& newReflectedCustomURLAttr)
@@ -357,7 +357,7 @@ WebDOMString WebDOMTestObj::reflectedCustomNonEmptyURLAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->getNonEmptyURLAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr));
+ return static_cast<const WTF::String&>(impl()->getNonEmptyURLAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr));
}
void WebDOMTestObj::setReflectedCustomNonEmptyURLAttr(const WebDOMString& newReflectedCustomNonEmptyURLAttr)
@@ -415,7 +415,7 @@ WebDOMString WebDOMTestObj::stringAttrWithGetterException() const
WebCore::ExceptionCode ec = 0;
WebDOMString result = impl()->stringAttrWithGetterException(ec);
webDOMRaiseError(static_cast<WebDOMExceptionCode>(ec));
- return static_cast<const WebCore::String&>(result);
+ return static_cast<const WTF::String&>(result);
}
void WebDOMTestObj::setStringAttrWithGetterException(const WebDOMString& newStringAttrWithGetterException)
@@ -433,7 +433,7 @@ WebDOMString WebDOMTestObj::stringAttrWithSetterException() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->stringAttrWithSetterException());
+ return static_cast<const WTF::String&>(impl()->stringAttrWithSetterException());
}
void WebDOMTestObj::setStringAttrWithSetterException(const WebDOMString& newStringAttrWithSetterException)
@@ -451,7 +451,7 @@ WebDOMString WebDOMTestObj::scriptStringAttr() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->scriptStringAttr());
+ return static_cast<const WTF::String&>(impl()->scriptStringAttr());
}
#if ENABLE(Condition1)
@@ -537,7 +537,7 @@ WebDOMString WebDOMTestObj::hash() const
if (!impl())
return WebDOMString();
- return static_cast<const WebCore::String&>(impl()->hash());
+ return static_cast<const WTF::String&>(impl()->hash());
}
void WebDOMTestObj::voidMethod()
@@ -612,7 +612,7 @@ void WebDOMTestObj::serializedValue(const WebDOMString& serializedArg)
if (!impl())
return;
- impl()->serializedValue(WebCore::SerializedScriptValue::create(WebCore::String(serializedArg)));
+ impl()->serializedValue(WebCore::SerializedScriptValue::create(WTF::String(serializedArg)));
}
void WebDOMTestObj::idbKey(const WebDOMIDBKey& key)
diff --git a/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp b/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp
index 6581b1f..8f69a9f 100644
--- a/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp
+++ b/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp
@@ -78,7 +78,7 @@ webkit_dom_test_callback_callback_with_class2param(WebKitDOMTestCallback* self,
g_return_val_if_fail(str_arg, 0);
WebCore::Class2 * converted_class2param = WebKit::core(class2param);
g_return_val_if_fail(converted_class2param, 0);
- WebCore::String converted_str_arg = WebCore::String::fromUTF8(str_arg);
+ WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
gboolean res = item->callbackWithClass2Param(converted_class2param, converted_str_arg);
return res;
}
diff --git a/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp b/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
index 6a8399e..8cad49d 100644
--- a/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
+++ b/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
@@ -69,7 +69,7 @@ webkit_dom_test_obj_void_method_with_args(WebKitDOMTestObj* self, glong int_arg,
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(str_arg);
g_return_if_fail(obj_arg);
- WebCore::String converted_str_arg = WebCore::String::fromUTF8(str_arg);
+ WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
g_return_if_fail(converted_obj_arg);
item->voidMethodWithArgs(int_arg, converted_str_arg, converted_obj_arg);
@@ -93,7 +93,7 @@ webkit_dom_test_obj_int_method_with_args(WebKitDOMTestObj* self, glong int_arg,
WebCore::TestObj * item = WebKit::core(self);
g_return_val_if_fail(str_arg, 0);
g_return_val_if_fail(obj_arg, 0);
- WebCore::String converted_str_arg = WebCore::String::fromUTF8(str_arg);
+ WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
g_return_val_if_fail(converted_obj_arg, 0);
glong res = item->intMethodWithArgs(int_arg, converted_str_arg, converted_obj_arg);
@@ -119,7 +119,7 @@ webkit_dom_test_obj_obj_method_with_args(WebKitDOMTestObj* self, glong int_arg,
WebCore::TestObj * item = WebKit::core(self);
g_return_val_if_fail(str_arg, 0);
g_return_val_if_fail(obj_arg, 0);
- WebCore::String converted_str_arg = WebCore::String::fromUTF8(str_arg);
+ WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
g_return_val_if_fail(converted_obj_arg, 0);
PassRefPtr<WebCore::TestObj> g_res = WTF::getPtr(item->objMethodWithArgs(int_arg, converted_str_arg, converted_obj_arg));
@@ -135,7 +135,7 @@ webkit_dom_test_obj_method_that_requires_all_args(WebKitDOMTestObj* self, gchar*
WebCore::TestObj * item = WebKit::core(self);
g_return_val_if_fail(str_arg, 0);
g_return_val_if_fail(obj_arg, 0);
- WebCore::String converted_str_arg = WebCore::String::fromUTF8(str_arg);
+ WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
g_return_val_if_fail(converted_obj_arg, 0);
PassRefPtr<WebCore::TestObj> g_res = WTF::getPtr(item->methodThatRequiresAllArgs(converted_str_arg, converted_obj_arg));
@@ -151,7 +151,7 @@ webkit_dom_test_obj_method_that_requires_all_args_and_throws(WebKitDOMTestObj* s
WebCore::TestObj * item = WebKit::core(self);
g_return_val_if_fail(str_arg, 0);
g_return_val_if_fail(obj_arg, 0);
- WebCore::String converted_str_arg = WebCore::String::fromUTF8(str_arg);
+ WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
g_return_val_if_fail(converted_obj_arg, 0);
WebCore::ExceptionCode ec = 0;
@@ -448,7 +448,7 @@ webkit_dom_test_obj_set_string_attr(WebKitDOMTestObj* self, gchar* value)
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
item->setStringAttr(converted_value);
}
@@ -534,7 +534,7 @@ webkit_dom_test_obj_set_reflected_string_attr(WebKitDOMTestObj* self, gchar* va
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
item->setAttribute(WebCore::HTMLNames::reflectedstringattrAttr, converted_value);
}
@@ -593,7 +593,7 @@ webkit_dom_test_obj_set_reflected_url_attr(WebKitDOMTestObj* self, gchar* value
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
item->setAttribute(WebCore::HTMLNames::reflectedurlattrAttr, converted_value);
}
@@ -614,7 +614,7 @@ webkit_dom_test_obj_set_reflected_non_empty_url_attr(WebKitDOMTestObj* self, gch
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
item->setAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr, converted_value);
}
@@ -635,7 +635,7 @@ webkit_dom_test_obj_set_reflected_string_attr(WebKitDOMTestObj* self, gchar* va
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
item->setAttribute(WebCore::HTMLNames::customContentStringAttrAttr, converted_value);
}
@@ -694,7 +694,7 @@ webkit_dom_test_obj_set_reflected_custom_url_attr(WebKitDOMTestObj* self, gchar*
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
item->setAttribute(WebCore::HTMLNames::customContentURLAttrAttr, converted_value);
}
@@ -715,7 +715,7 @@ webkit_dom_test_obj_set_reflected_custom_non_empty_url_attr(WebKitDOMTestObj* se
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
item->setAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr, converted_value);
}
@@ -793,7 +793,7 @@ webkit_dom_test_obj_set_string_attr_with_getter_exception(WebKitDOMTestObj* self
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
WebCore::ExceptionCode ec = 0;
item->setStringAttrWithGetterException(converted_value, ec);
if (ec) {
@@ -820,7 +820,7 @@ webkit_dom_test_obj_set_string_attr_with_setter_exception(WebKitDOMTestObj* self
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::String converted_value = WebCore::String::fromUTF8(value);
+ WTF::String converted_value = WTF::String::fromUTF8(value);
WebCore::ExceptionCode ec = 0;
item->setStringAttrWithSetterException(converted_value, ec);
if (ec) {
@@ -1041,7 +1041,7 @@ static void webkit_dom_test_obj_set_property(GObject* object, guint prop_id, con
}
case PROP_STRING_ATTR:
{
- coreSelf->setStringAttr(WebCore::String::fromUTF8(g_value_get_string(value)));
+ coreSelf->setStringAttr(WTF::String::fromUTF8(g_value_get_string(value)));
break;
}
case PROP_CREATE:
@@ -1051,7 +1051,7 @@ static void webkit_dom_test_obj_set_property(GObject* object, guint prop_id, con
}
case PROP_REFLECTED_STRING_ATTR:
{
- coreSelf->setAttribute(WebCore::HTMLNames::reflectedstringattrAttr, WebCore::String::fromUTF8(g_value_get_string(value)));
+ coreSelf->setAttribute(WebCore::HTMLNames::reflectedstringattrAttr, WTF::String::fromUTF8(g_value_get_string(value)));
break;
}
case PROP_REFLECTED_INTEGRAL_ATTR:
@@ -1066,17 +1066,17 @@ static void webkit_dom_test_obj_set_property(GObject* object, guint prop_id, con
}
case PROP_REFLECTED_URL_ATTR:
{
- coreSelf->setAttribute(WebCore::HTMLNames::reflectedurlattrAttr, WebCore::String::fromUTF8(g_value_get_string(value)));
+ coreSelf->setAttribute(WebCore::HTMLNames::reflectedurlattrAttr, WTF::String::fromUTF8(g_value_get_string(value)));
break;
}
case PROP_REFLECTED_NON_EMPTY_URL_ATTR:
{
- coreSelf->setAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr, WebCore::String::fromUTF8(g_value_get_string(value)));
+ coreSelf->setAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr, WTF::String::fromUTF8(g_value_get_string(value)));
break;
}
case PROP_REFLECTED_STRING_ATTR:
{
- coreSelf->setAttribute(WebCore::HTMLNames::customContentStringAttrAttr, WebCore::String::fromUTF8(g_value_get_string(value)));
+ coreSelf->setAttribute(WebCore::HTMLNames::customContentStringAttrAttr, WTF::String::fromUTF8(g_value_get_string(value)));
break;
}
case PROP_REFLECTED_CUSTOM_INTEGRAL_ATTR:
@@ -1091,12 +1091,12 @@ static void webkit_dom_test_obj_set_property(GObject* object, guint prop_id, con
}
case PROP_REFLECTED_CUSTOM_URL_ATTR:
{
- coreSelf->setAttribute(WebCore::HTMLNames::customContentURLAttrAttr, WebCore::String::fromUTF8(g_value_get_string(value)));
+ coreSelf->setAttribute(WebCore::HTMLNames::customContentURLAttrAttr, WTF::String::fromUTF8(g_value_get_string(value)));
break;
}
case PROP_REFLECTED_CUSTOM_NON_EMPTY_URL_ATTR:
{
- coreSelf->setAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr, WebCore::String::fromUTF8(g_value_get_string(value)));
+ coreSelf->setAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr, WTF::String::fromUTF8(g_value_get_string(value)));
break;
}
case PROP_ATTR_WITH_GETTER_EXCEPTION:
@@ -1114,13 +1114,13 @@ static void webkit_dom_test_obj_set_property(GObject* object, guint prop_id, con
case PROP_STRING_ATTR_WITH_GETTER_EXCEPTION:
{
WebCore::ExceptionCode ec = 0;
- coreSelf->setStringAttrWithGetterException(WebCore::String::fromUTF8(g_value_get_string(value)), ec);
+ coreSelf->setStringAttrWithGetterException(WTF::String::fromUTF8(g_value_get_string(value)), ec);
break;
}
case PROP_STRING_ATTR_WITH_SETTER_EXCEPTION:
{
WebCore::ExceptionCode ec = 0;
- coreSelf->setStringAttrWithSetterException(WebCore::String::fromUTF8(g_value_get_string(value)), ec);
+ coreSelf->setStringAttrWithSetterException(WTF::String::fromUTF8(g_value_get_string(value)), ec);
break;
}
#if ENABLE(Condition1)
diff --git a/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp b/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp
index 6f6b568..069b8ae 100644
--- a/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp
+++ b/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp
@@ -35,18 +35,20 @@ using namespace JSC;
namespace WebCore {
JSTestCallback::JSTestCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
- : m_data(new JSCallbackData(callback, globalObject))
- , m_isolatedWorld(globalObject->world())
- , m_scriptExecutionContext(globalObject->scriptExecutionContext())
+ : ActiveDOMCallback(globalObject->scriptExecutionContext())
+ , m_data(new JSCallbackData(callback, globalObject))
{
}
JSTestCallback::~JSTestCallback()
{
- if (m_scriptExecutionContext->isContextThread())
+ ScriptExecutionContext* context = scriptExecutionContext();
+ // When the context is destroyed, all tasks with a reference to a callback
+ // should be deleted. So if the context is 0, we are on the context thread.
+ if (!context || context->isContextThread())
delete m_data;
else
- m_scriptExecutionContext->postTask(DeleteCallbackDataTask::create(m_data));
+ context->postTask(DeleteCallbackDataTask::create(m_data));
#ifndef NDEBUG
m_data = 0;
#endif
@@ -54,20 +56,16 @@ JSTestCallback::~JSTestCallback()
// Functions
-bool JSTestCallback::callbackWithClass1Param(ScriptExecutionContext* context, Class1* class1Param)
+bool JSTestCallback::callbackWithClass1Param(Class1* class1Param)
{
- ASSERT(m_data);
- ASSERT(context);
+ if (!canInvokeCallback())
+ return true;
RefPtr<JSTestCallback> protect(this);
JSLock lock(SilenceAssertionsOnly);
- JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(context, m_isolatedWorld.get());
- if (!globalObject)
- return true;
-
- ExecState* exec = globalObject->globalExec();
+ ExecState* exec = m_data->globalObject()->globalExec();
MarkedArgumentBuffer args;
args.append(toJS(exec, class1Param));
@@ -76,20 +74,16 @@ bool JSTestCallback::callbackWithClass1Param(ScriptExecutionContext* context, Cl
return !raisedException;
}
-bool JSTestCallback::callbackWithClass2Param(ScriptExecutionContext* context, Class2* class2Param, const String& strArg)
+bool JSTestCallback::callbackWithClass2Param(Class2* class2Param, const String& strArg)
{
- ASSERT(m_data);
- ASSERT(context);
+ if (!canInvokeCallback())
+ return true;
RefPtr<JSTestCallback> protect(this);
JSLock lock(SilenceAssertionsOnly);
- JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(context, m_isolatedWorld.get());
- if (!globalObject)
- return true;
-
- ExecState* exec = globalObject->globalExec();
+ ExecState* exec = m_data->globalObject()->globalExec();
MarkedArgumentBuffer args;
args.append(toJS(exec, class2Param));
args.append(jsString(exec, strArg));
diff --git a/WebCore/bindings/scripts/test/JS/JSTestCallback.h b/WebCore/bindings/scripts/test/JS/JSTestCallback.h
index 47a5e95..ae91a6c 100644
--- a/WebCore/bindings/scripts/test/JS/JSTestCallback.h
+++ b/WebCore/bindings/scripts/test/JS/JSTestCallback.h
@@ -23,13 +23,14 @@
#if ENABLE(DATABASE)
+#include "ActiveDOMCallback.h"
#include "JSCallbackData.h"
#include "TestCallback.h"
#include <wtf/Forward.h>
namespace WebCore {
-class JSTestCallback : public TestCallback {
+class JSTestCallback : public TestCallback, public ActiveDOMCallback {
public:
static PassRefPtr<JSTestCallback> create(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
{
@@ -39,17 +40,15 @@ public:
virtual ~JSTestCallback();
// Functions
- virtual bool callbackWithClass1Param(ScriptExecutionContext*, Class1* class1Param);
- virtual bool callbackWithClass2Param(ScriptExecutionContext*, Class2* class2Param, const String& strArg);
- COMPILE_ASSERT(false) virtual int callbackWithNonBoolReturnType(ScriptExecutionContext*, Class3* class3Param);
- virtual int customCallback(ScriptExecutionContext*, Class5* class5Param, Class6* class6Param);
+ virtual bool callbackWithClass1Param(Class1* class1Param);
+ virtual bool callbackWithClass2Param(Class2* class2Param, const String& strArg);
+ COMPILE_ASSERT(false) virtual int callbackWithNonBoolReturnType(Class3* class3Param);
+ virtual int customCallback(Class5* class5Param, Class6* class6Param);
private:
JSTestCallback(JSC::JSObject* callback, JSDOMGlobalObject*);
JSCallbackData* m_data;
- RefPtr<DOMWrapperWorld> m_isolatedWorld;
- ScriptExecutionContext* m_scriptExecutionContext;
};
} // namespace WebCore
diff --git a/WebCore/bindings/scripts/test/JS/JSTestObj.cpp b/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
index 9c11bde..01a860c 100644
--- a/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
+++ b/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
@@ -25,6 +25,7 @@
#include "HTMLNames.h"
#include "IDBBindingUtilities.h"
#include "IDBKey.h"
+#include "JSDOMBinding.h"
#include "JSEventListener.h"
#include "JSTestCallback.h"
#include "JSTestObj.h"
@@ -794,8 +795,14 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVoidMethodWithArgs(ExecSt
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
int intArg = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
const String& strArg = ustringToString(exec->argument(1).toString(exec));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
TestObj* objArg = toTestObj(exec->argument(2));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->voidMethodWithArgs(intArg, strArg, objArg);
return JSValue::encode(jsUndefined());
@@ -822,8 +829,14 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionIntMethodWithArgs(ExecSta
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
int intArg = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
const String& strArg = ustringToString(exec->argument(1).toString(exec));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
TestObj* objArg = toTestObj(exec->argument(2));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
JSC::JSValue result = jsNumber(exec, imp->intMethodWithArgs(intArg, strArg, objArg));
@@ -851,8 +864,14 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionObjMethodWithArgs(ExecSta
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
int intArg = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
const String& strArg = ustringToString(exec->argument(1).toString(exec));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
TestObj* objArg = toTestObj(exec->argument(2));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->objMethodWithArgs(intArg, strArg, objArg)));
@@ -869,7 +888,11 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodThatRequiresAllArgs
if (exec->argumentCount() < 2)
return JSValue::encode(jsUndefined());
const String& strArg = ustringToString(exec->argument(0).toString(exec));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
TestObj* objArg = toTestObj(exec->argument(1));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->methodThatRequiresAllArgs(strArg, objArg)));
@@ -887,7 +910,11 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodThatRequiresAllArgs
return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
ExceptionCode ec = 0;
const String& strArg = ustringToString(exec->argument(0).toString(exec));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
TestObj* objArg = toTestObj(exec->argument(1));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->methodThatRequiresAllArgsAndThrows(strArg, objArg, ec)));
@@ -903,6 +930,8 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionSerializedValue(ExecState
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
RefPtr<SerializedScriptValue> serializedArg = SerializedScriptValue::create(exec, exec->argument(0));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->serializedValue(serializedArg);
return JSValue::encode(jsUndefined());
@@ -916,6 +945,8 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionIdbKey(ExecState* exec)
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
RefPtr<IDBKey> key = createIDBKeyFromValue(exec, exec->argument(0));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->idbKey(key);
return JSValue::encode(jsUndefined());
@@ -963,6 +994,8 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomArgsAndException(Ex
ExceptionCode ec = 0;
ScriptCallStack callStack(exec, 1);
log* intArg = tolog(exec->argument(0));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->customArgsAndException(intArg, &callStack, ec);
setDOMException(exec, ec);
@@ -1023,6 +1056,8 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndArg(Ex
if (!dynamicFrame)
return JSValue::encode(jsUndefined());
int intArg = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->withDynamicFrameAndArg(dynamicFrame, intArg);
return JSValue::encode(jsUndefined());
@@ -1039,14 +1074,18 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndOption
if (!dynamicFrame)
return JSValue::encode(jsUndefined());
int intArg = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
int argsCount = exec->argumentCount();
- if (argsCount < 2) {
+ if (argsCount <= 1) {
imp->withDynamicFrameAndOptionalArg(dynamicFrame, intArg);
return JSValue::encode(jsUndefined());
}
int optionalArg = exec->argument(1).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->withDynamicFrameAndOptionalArg(dynamicFrame, intArg, optionalArg);
return JSValue::encode(jsUndefined());
@@ -1063,6 +1102,8 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndUserGe
if (!dynamicFrame)
return JSValue::encode(jsUndefined());
int intArg = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->withDynamicFrameAndUserGesture(dynamicFrame, intArg, processingUserGesture(exec));
return JSValue::encode(jsUndefined());
@@ -1079,14 +1120,18 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndUserGe
if (!dynamicFrame)
return JSValue::encode(jsUndefined());
int intArg = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
int argsCount = exec->argumentCount();
- if (argsCount < 2) {
+ if (argsCount <= 1) {
imp->withDynamicFrameAndUserGestureASAD(dynamicFrame, intArg);
return JSValue::encode(jsUndefined());
}
int optionalArg = exec->argument(1).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->withDynamicFrameAndUserGestureASAD(dynamicFrame, intArg, optionalArg, processingUserGesture(exec));
return JSValue::encode(jsUndefined());
@@ -1174,12 +1219,14 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithOptionalArg(Exe
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
int argsCount = exec->argumentCount();
- if (argsCount < 1) {
+ if (argsCount <= 0) {
imp->methodWithOptionalArg();
return JSValue::encode(jsUndefined());
}
int opt = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->methodWithOptionalArg(opt);
return JSValue::encode(jsUndefined());
@@ -1193,14 +1240,18 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonOptionalArgA
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
int nonOpt = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
int argsCount = exec->argumentCount();
- if (argsCount < 2) {
+ if (argsCount <= 1) {
imp->methodWithNonOptionalArgAndOptionalArg(nonOpt);
return JSValue::encode(jsUndefined());
}
int opt = exec->argument(1).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->methodWithNonOptionalArgAndOptionalArg(nonOpt, opt);
return JSValue::encode(jsUndefined());
@@ -1214,15 +1265,21 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonOptionalArgA
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
int nonOpt = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
int argsCount = exec->argumentCount();
- if (argsCount < 2) {
+ if (argsCount <= 1) {
imp->methodWithNonOptionalArgAndTwoOptionalArgs(nonOpt);
return JSValue::encode(jsUndefined());
}
int opt1 = exec->argument(1).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
int opt2 = exec->argument(2).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->methodWithNonOptionalArgAndTwoOptionalArgs(nonOpt, opt1, opt2);
return JSValue::encode(jsUndefined());
@@ -1237,7 +1294,7 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithCallbackArg(Exe
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
if (exec->argumentCount() <= 0 || !exec->argument(0).isObject()) {
setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
+ return JSValue::encode(jsUndefined());
}
RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject());
@@ -1253,9 +1310,11 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonCallbackArgA
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
int nonCallback = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
if (exec->argumentCount() <= 1 || !exec->argument(1).isObject()) {
setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
+ return JSValue::encode(jsUndefined());
}
RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(1)), castedThis->globalObject());
@@ -1270,18 +1329,14 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithCallbackAndOpti
return throwVMTypeError(exec);
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
-
- int argsCount = exec->argumentCount();
- if (argsCount < 1) {
- imp->methodWithCallbackAndOptionalArg();
- return JSValue::encode(jsUndefined());
- }
-
- if (exec->argumentCount() <= 0 || !exec->argument(0).isObject()) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
+ RefPtr<TestCallback> callback;
+ if (exec->argumentCount() > 0 && !exec->argument(0).isNull() && !exec->argument(0).isUndefined()) {
+ if (!exec->argument(0).isObject()) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return JSValue::encode(jsUndefined());
+ }
+ callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject());
}
- RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject());
imp->methodWithCallbackAndOptionalArg(callback);
return JSValue::encode(jsUndefined());
@@ -1295,7 +1350,11 @@ static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod1(
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
TestObj* objArg = toTestObj(exec->argument(0));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
const String& strArg = ustringToString(exec->argument(1).toString(exec));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->overloadedMethod(objArg, strArg);
return JSValue::encode(jsUndefined());
@@ -1309,14 +1368,18 @@ static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod2(
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
TestObj* objArg = toTestObj(exec->argument(0));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
int argsCount = exec->argumentCount();
- if (argsCount < 2) {
+ if (argsCount <= 1) {
imp->overloadedMethod(objArg);
return JSValue::encode(jsUndefined());
}
int intArg = exec->argument(1).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->overloadedMethod(objArg, intArg);
return JSValue::encode(jsUndefined());
@@ -1330,6 +1393,8 @@ static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod3(
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
const String& strArg = ustringToString(exec->argument(0).toString(exec));
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->overloadedMethod(strArg);
return JSValue::encode(jsUndefined());
@@ -1343,6 +1408,8 @@ static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod4(
JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
TestObj* imp = static_cast<TestObj*>(castedThis->impl());
int intArg = exec->argument(0).toInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
imp->overloadedMethod(intArg);
return JSValue::encode(jsUndefined());
diff --git a/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm b/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm
index 71d3508..01fcf34 100644
--- a/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm
+++ b/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm
@@ -500,7 +500,7 @@
- (void)serializedValue:(NSString *)serializedArg
{
WebCore::JSMainThreadNullState state;
- IMPL->serializedValue(WebCore::SerializedScriptValue::create(WebCore::String(serializedArg)));
+ IMPL->serializedValue(WebCore::SerializedScriptValue::create(WTF::String(serializedArg)));
}
- (void)idbKey:(DOMIDBKey *)key
diff --git a/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp b/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp
index eff4ebd..c286c24 100644
--- a/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp
+++ b/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp
@@ -34,8 +34,9 @@
namespace WebCore {
-V8TestCallback::V8TestCallback(v8::Local<v8::Object> callback)
- : m_callback(v8::Persistent<v8::Object>::New(callback))
+V8TestCallback::V8TestCallback(v8::Local<v8::Object> callback, ScriptExecutionContext* context)
+ : ActiveDOMCallback(context)
+ , m_callback(v8::Persistent<v8::Object>::New(callback))
, m_worldContext(UseCurrentWorld)
{
}
@@ -47,11 +48,14 @@ V8TestCallback::~V8TestCallback()
// Functions
-bool V8TestCallback::callbackWithClass1Param(ScriptExecutionContext* context, Class1* class1Param)
+bool V8TestCallback::callbackWithClass1Param(Class1* class1Param)
{
+ if (!canInvokeCallback())
+ return true;
+
v8::HandleScope handleScope;
- v8::Handle<v8::Context> v8Context = toV8Context(context, m_worldContext);
+ v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
if (v8Context.IsEmpty())
return true;
@@ -68,14 +72,17 @@ bool V8TestCallback::callbackWithClass1Param(ScriptExecutionContext* context, Cl
};
bool callbackReturnValue = false;
- return !invokeCallback(m_callback, 1, argv, callbackReturnValue, context);
+ return !invokeCallback(m_callback, 1, argv, callbackReturnValue, scriptExecutionContext());
}
-bool V8TestCallback::callbackWithClass2Param(ScriptExecutionContext* context, Class2* class2Param, const String& strArg)
+bool V8TestCallback::callbackWithClass2Param(Class2* class2Param, const String& strArg)
{
+ if (!canInvokeCallback())
+ return true;
+
v8::HandleScope handleScope;
- v8::Handle<v8::Context> v8Context = toV8Context(context, m_worldContext);
+ v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
if (v8Context.IsEmpty())
return true;
@@ -98,7 +105,7 @@ bool V8TestCallback::callbackWithClass2Param(ScriptExecutionContext* context, Cl
};
bool callbackReturnValue = false;
- return !invokeCallback(m_callback, 2, argv, callbackReturnValue, context);
+ return !invokeCallback(m_callback, 2, argv, callbackReturnValue, scriptExecutionContext());
}
} // namespace WebCore
diff --git a/WebCore/bindings/scripts/test/V8/V8TestCallback.h b/WebCore/bindings/scripts/test/V8/V8TestCallback.h
index aed6b22..a105d75 100644
--- a/WebCore/bindings/scripts/test/V8/V8TestCallback.h
+++ b/WebCore/bindings/scripts/test/V8/V8TestCallback.h
@@ -23,6 +23,7 @@
#ifndef V8TestCallback_h
#define V8TestCallback_h
+#include "ActiveDOMCallback.h"
#include "TestCallback.h"
#include "WorldContextHandle.h"
#include <v8.h>
@@ -30,24 +31,27 @@
namespace WebCore {
-class V8TestCallback : public TestCallback {
+class ScriptExecutionContext;
+
+class V8TestCallback : public TestCallback, public ActiveDOMCallback {
public:
- static PassRefPtr<V8TestCallback> create(v8::Local<v8::Value> value)
+ static PassRefPtr<V8TestCallback> create(v8::Local<v8::Value> value, ScriptExecutionContext* context)
{
ASSERT(value->IsObject());
- return adoptRef(new V8TestCallback(value->ToObject()));
+ ASSERT(context);
+ return adoptRef(new V8TestCallback(value->ToObject(), context));
}
virtual ~V8TestCallback();
// Functions
- virtual bool callbackWithClass1Param(ScriptExecutionContext*, Class1* class1Param);
- virtual bool callbackWithClass2Param(ScriptExecutionContext*, Class2* class2Param, const String& strArg);
- COMPILE_ASSERT(false) virtual int callbackWithNonBoolReturnType(ScriptExecutionContext*, Class3* class3Param);
- virtual int customCallback(ScriptExecutionContext*, Class5* class5Param, Class6* class6Param);
+ virtual bool callbackWithClass1Param(Class1* class1Param);
+ virtual bool callbackWithClass2Param(Class2* class2Param, const String& strArg);
+ COMPILE_ASSERT(false) virtual int callbackWithNonBoolReturnType(Class3* class3Param);
+ virtual int customCallback(Class5* class5Param, Class6* class6Param);
private:
- V8TestCallback(v8::Local<v8::Object>);
+ V8TestCallback(v8::Local<v8::Object>, ScriptExecutionContext*);
v8::Persistent<v8::Object> m_callback;
WorldContextHandle m_worldContext;
diff --git a/WebCore/bindings/scripts/test/V8/V8TestObj.cpp b/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
index 5584eaf..7428c93 100644
--- a/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
+++ b/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
@@ -29,6 +29,7 @@
#include "ScriptCallStack.h"
#include "SerializedScriptValue.h"
#include "V8Binding.h"
+#include "V8BindingMacros.h"
#include "V8BindingState.h"
#include "V8DOMWrapper.h"
#include "V8IsolatedContext.h"
@@ -556,9 +557,9 @@ static v8::Handle<v8::Value> voidMethodWithArgsCallback(const v8::Arguments& arg
{
INC_STATS("DOM.TestObj.voidMethodWithArgs");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int intArg = toInt32(args[0]);
- V8Parameter<> strArg = args[1];
- TestObj* objArg = V8TestObj::HasInstance(args[2]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[2])) : 0;
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[0]));
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, args[1]);
+ EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(args[2]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[2])) : 0);
imp->voidMethodWithArgs(intArg, strArg, objArg);
return v8::Handle<v8::Value>();
}
@@ -574,9 +575,9 @@ static v8::Handle<v8::Value> intMethodWithArgsCallback(const v8::Arguments& args
{
INC_STATS("DOM.TestObj.intMethodWithArgs");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int intArg = toInt32(args[0]);
- V8Parameter<> strArg = args[1];
- TestObj* objArg = V8TestObj::HasInstance(args[2]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[2])) : 0;
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[0]));
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, args[1]);
+ EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(args[2]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[2])) : 0);
return v8::Integer::New(imp->intMethodWithArgs(intArg, strArg, objArg));
}
@@ -591,9 +592,9 @@ static v8::Handle<v8::Value> objMethodWithArgsCallback(const v8::Arguments& args
{
INC_STATS("DOM.TestObj.objMethodWithArgs");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int intArg = toInt32(args[0]);
- V8Parameter<> strArg = args[1];
- TestObj* objArg = V8TestObj::HasInstance(args[2]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[2])) : 0;
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[0]));
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, args[1]);
+ EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(args[2]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[2])) : 0);
return toV8(imp->objMethodWithArgs(intArg, strArg, objArg));
}
@@ -603,8 +604,8 @@ static v8::Handle<v8::Value> methodThatRequiresAllArgsCallback(const v8::Argumen
if (args.Length() < 2)
return v8::Handle<v8::Value>();
TestObj* imp = V8TestObj::toNative(args.Holder());
- V8Parameter<> strArg = args[0];
- TestObj* objArg = V8TestObj::HasInstance(args[1]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[1])) : 0;
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, args[0]);
+ EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(args[1]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[1])) : 0);
return toV8(imp->methodThatRequiresAllArgs(strArg, objArg));
}
@@ -616,8 +617,8 @@ static v8::Handle<v8::Value> methodThatRequiresAllArgsAndThrowsCallback(const v8
TestObj* imp = V8TestObj::toNative(args.Holder());
ExceptionCode ec = 0;
{
- V8Parameter<> strArg = args[0];
- TestObj* objArg = V8TestObj::HasInstance(args[1]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[1])) : 0;
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, args[0]);
+ EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(args[1]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[1])) : 0);
RefPtr<TestObj> result = imp->methodThatRequiresAllArgsAndThrows(strArg, objArg, ec);
if (UNLIKELY(ec))
goto fail;
@@ -644,7 +645,7 @@ static v8::Handle<v8::Value> idbKeyCallback(const v8::Arguments& args)
{
INC_STATS("DOM.TestObj.idbKey");
TestObj* imp = V8TestObj::toNative(args.Holder());
- RefPtr<IDBKey> key = createIDBKeyFromValue(args[0]);
+ EXCEPTION_BLOCK(RefPtr<IDBKey>, key, createIDBKeyFromValue(args[0]));
imp->idbKey(key);
return v8::Handle<v8::Value>();
}
@@ -674,7 +675,7 @@ static v8::Handle<v8::Value> customArgsAndExceptionCallback(const v8::Arguments&
OwnPtr<ScriptCallStack> callStack(ScriptCallStack::create(args, 1));
if (!callStack)
return v8::Undefined();
- log* intArg = V8log::HasInstance(args[0]) ? V8log::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0;
+ EXCEPTION_BLOCK(log*, intArg, V8log::HasInstance(args[0]) ? V8log::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0);
imp->customArgsAndException(intArg, callStack.get(), ec);
if (UNLIKELY(ec))
goto fail;
@@ -722,7 +723,7 @@ static v8::Handle<v8::Value> withDynamicFrameAndArgCallback(const v8::Arguments&
{
INC_STATS("DOM.TestObj.withDynamicFrameAndArg");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int intArg = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[0]));
Frame* enteredFrame = V8Proxy::retrieveFrameForEnteredContext();
if (!enteredFrame)
return v8::Undefined();
@@ -734,7 +735,7 @@ static v8::Handle<v8::Value> withDynamicFrameAndOptionalArgCallback(const v8::Ar
{
INC_STATS("DOM.TestObj.withDynamicFrameAndOptionalArg");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int intArg = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[0]));
if (args.Length() <= 1) {
Frame* enteredFrame = V8Proxy::retrieveFrameForEnteredContext();
if (!enteredFrame)
@@ -742,7 +743,7 @@ static v8::Handle<v8::Value> withDynamicFrameAndOptionalArgCallback(const v8::Ar
imp->withDynamicFrameAndOptionalArg(enteredFrame, intArg);
return v8::Handle<v8::Value>();
}
- int optionalArg = toInt32(args[1]);
+ EXCEPTION_BLOCK(int, optionalArg, toInt32(args[1]));
Frame* enteredFrame = V8Proxy::retrieveFrameForEnteredContext();
if (!enteredFrame)
return v8::Undefined();
@@ -754,7 +755,7 @@ static v8::Handle<v8::Value> withDynamicFrameAndUserGestureCallback(const v8::Ar
{
INC_STATS("DOM.TestObj.withDynamicFrameAndUserGesture");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int intArg = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[0]));
Frame* enteredFrame = V8Proxy::retrieveFrameForEnteredContext();
if (!enteredFrame)
return v8::Undefined();
@@ -766,7 +767,7 @@ static v8::Handle<v8::Value> withDynamicFrameAndUserGestureASADCallback(const v8
{
INC_STATS("DOM.TestObj.withDynamicFrameAndUserGestureASAD");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int intArg = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[0]));
if (args.Length() <= 1) {
Frame* enteredFrame = V8Proxy::retrieveFrameForEnteredContext();
if (!enteredFrame)
@@ -774,7 +775,7 @@ static v8::Handle<v8::Value> withDynamicFrameAndUserGestureASADCallback(const v8
imp->withDynamicFrameAndUserGestureASAD(enteredFrame, intArg, processingUserGesture());
return v8::Handle<v8::Value>();
}
- int optionalArg = toInt32(args[1]);
+ EXCEPTION_BLOCK(int, optionalArg, toInt32(args[1]));
Frame* enteredFrame = V8Proxy::retrieveFrameForEnteredContext();
if (!enteredFrame)
return v8::Undefined();
@@ -861,7 +862,7 @@ static v8::Handle<v8::Value> methodWithOptionalArgCallback(const v8::Arguments&
imp->methodWithOptionalArg();
return v8::Handle<v8::Value>();
}
- int opt = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, opt, toInt32(args[0]));
imp->methodWithOptionalArg(opt);
return v8::Handle<v8::Value>();
}
@@ -870,12 +871,12 @@ static v8::Handle<v8::Value> methodWithNonOptionalArgAndOptionalArgCallback(cons
{
INC_STATS("DOM.TestObj.methodWithNonOptionalArgAndOptionalArg");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int nonOpt = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, nonOpt, toInt32(args[0]));
if (args.Length() <= 1) {
imp->methodWithNonOptionalArgAndOptionalArg(nonOpt);
return v8::Handle<v8::Value>();
}
- int opt = toInt32(args[1]);
+ EXCEPTION_BLOCK(int, opt, toInt32(args[1]));
imp->methodWithNonOptionalArgAndOptionalArg(nonOpt, opt);
return v8::Handle<v8::Value>();
}
@@ -884,13 +885,13 @@ static v8::Handle<v8::Value> methodWithNonOptionalArgAndTwoOptionalArgsCallback(
{
INC_STATS("DOM.TestObj.methodWithNonOptionalArgAndTwoOptionalArgs");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int nonOpt = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, nonOpt, toInt32(args[0]));
if (args.Length() <= 1) {
imp->methodWithNonOptionalArgAndTwoOptionalArgs(nonOpt);
return v8::Handle<v8::Value>();
}
- int opt1 = toInt32(args[1]);
- int opt2 = toInt32(args[2]);
+ EXCEPTION_BLOCK(int, opt1, toInt32(args[1]));
+ EXCEPTION_BLOCK(int, opt2, toInt32(args[2]));
imp->methodWithNonOptionalArgAndTwoOptionalArgs(nonOpt, opt1, opt2);
return v8::Handle<v8::Value>();
}
@@ -901,7 +902,7 @@ static v8::Handle<v8::Value> methodWithCallbackArgCallback(const v8::Arguments&
TestObj* imp = V8TestObj::toNative(args.Holder());
if (args.Length() <= 0 || !args[0]->IsObject())
return throwError(TYPE_MISMATCH_ERR);
- RefPtr<TestCallback> callback = V8TestCallback::create(args[0]);
+ RefPtr<TestCallback> callback = V8TestCallback::create(args[0], getScriptExecutionContext());
imp->methodWithCallbackArg(callback);
return v8::Handle<v8::Value>();
}
@@ -910,10 +911,10 @@ static v8::Handle<v8::Value> methodWithNonCallbackArgAndCallbackArgCallback(cons
{
INC_STATS("DOM.TestObj.methodWithNonCallbackArgAndCallbackArg");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int nonCallback = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, nonCallback, toInt32(args[0]));
if (args.Length() <= 1 || !args[1]->IsObject())
return throwError(TYPE_MISMATCH_ERR);
- RefPtr<TestCallback> callback = V8TestCallback::create(args[1]);
+ RefPtr<TestCallback> callback = V8TestCallback::create(args[1], getScriptExecutionContext());
imp->methodWithNonCallbackArgAndCallbackArg(nonCallback, callback);
return v8::Handle<v8::Value>();
}
@@ -922,13 +923,12 @@ static v8::Handle<v8::Value> methodWithCallbackAndOptionalArgCallback(const v8::
{
INC_STATS("DOM.TestObj.methodWithCallbackAndOptionalArg");
TestObj* imp = V8TestObj::toNative(args.Holder());
- if (args.Length() <= 0) {
- imp->methodWithCallbackAndOptionalArg();
- return v8::Handle<v8::Value>();
+ RefPtr<TestCallback> callback;
+ if (args.Length() > 0 && !args[0]->IsNull() && !args[0]->IsUndefined()) {
+ if (!args[0]->IsObject())
+ return throwError(TYPE_MISMATCH_ERR);
+ callback = V8TestCallback::create(args[0], getScriptExecutionContext());
}
- if (args.Length() <= 0 || !args[0]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
- RefPtr<TestCallback> callback = V8TestCallback::create(args[0]);
imp->methodWithCallbackAndOptionalArg(callback);
return v8::Handle<v8::Value>();
}
@@ -937,8 +937,8 @@ static v8::Handle<v8::Value> overloadedMethod1Callback(const v8::Arguments& args
{
INC_STATS("DOM.TestObj.overloadedMethod1");
TestObj* imp = V8TestObj::toNative(args.Holder());
- TestObj* objArg = V8TestObj::HasInstance(args[0]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0;
- V8Parameter<> strArg = args[1];
+ EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(args[0]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0);
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, args[1]);
imp->overloadedMethod(objArg, strArg);
return v8::Handle<v8::Value>();
}
@@ -947,12 +947,12 @@ static v8::Handle<v8::Value> overloadedMethod2Callback(const v8::Arguments& args
{
INC_STATS("DOM.TestObj.overloadedMethod2");
TestObj* imp = V8TestObj::toNative(args.Holder());
- TestObj* objArg = V8TestObj::HasInstance(args[0]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0;
+ EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(args[0]) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0);
if (args.Length() <= 1) {
imp->overloadedMethod(objArg);
return v8::Handle<v8::Value>();
}
- int intArg = toInt32(args[1]);
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[1]));
imp->overloadedMethod(objArg, intArg);
return v8::Handle<v8::Value>();
}
@@ -961,7 +961,7 @@ static v8::Handle<v8::Value> overloadedMethod3Callback(const v8::Arguments& args
{
INC_STATS("DOM.TestObj.overloadedMethod3");
TestObj* imp = V8TestObj::toNative(args.Holder());
- V8Parameter<> strArg = args[0];
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, args[0]);
imp->overloadedMethod(strArg);
return v8::Handle<v8::Value>();
}
@@ -970,7 +970,7 @@ static v8::Handle<v8::Value> overloadedMethod4Callback(const v8::Arguments& args
{
INC_STATS("DOM.TestObj.overloadedMethod4");
TestObj* imp = V8TestObj::toNative(args.Holder());
- int intArg = toInt32(args[0]);
+ EXCEPTION_BLOCK(int, intArg, toInt32(args[0]));
imp->overloadedMethod(intArg);
return v8::Handle<v8::Value>();
}
@@ -1088,6 +1088,8 @@ static const BatchedCallback TestObjCallbacks[] = {
{"methodWithOptionalArg", TestObjInternal::methodWithOptionalArgCallback},
{"methodWithNonOptionalArgAndOptionalArg", TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback},
{"methodWithNonOptionalArgAndTwoOptionalArgs", TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback},
+ {"methodWithCallbackArg", TestObjInternal::methodWithCallbackArgCallback},
+ {"methodWithNonCallbackArgAndCallbackArg", TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback},
{"methodWithCallbackAndOptionalArg", TestObjInternal::methodWithCallbackAndOptionalArgCallback},
{"overloadedMethod", TestObjInternal::overloadedMethodCallback},
};
@@ -1161,18 +1163,6 @@ static v8::Persistent<v8::FunctionTemplate> ConfigureV8TestObjTemplate(v8::Persi
v8::Handle<v8::FunctionTemplate> customArgsAndExceptionArgv[customArgsAndExceptionArgc] = { V8log::GetRawTemplate() };
v8::Handle<v8::Signature> customArgsAndExceptionSignature = v8::Signature::New(desc, customArgsAndExceptionArgc, customArgsAndExceptionArgv);
proto->Set(v8::String::New("customArgsAndException"), v8::FunctionTemplate::New(TestObjInternal::customArgsAndExceptionCallback, v8::Handle<v8::Value>(), customArgsAndExceptionSignature));
-
- // Custom Signature 'methodWithCallbackArg'
- const int methodWithCallbackArgArgc = 1;
- v8::Handle<v8::FunctionTemplate> methodWithCallbackArgArgv[methodWithCallbackArgArgc] = { V8TestCallback::GetRawTemplate() };
- v8::Handle<v8::Signature> methodWithCallbackArgSignature = v8::Signature::New(desc, methodWithCallbackArgArgc, methodWithCallbackArgArgv);
- proto->Set(v8::String::New("methodWithCallbackArg"), v8::FunctionTemplate::New(TestObjInternal::methodWithCallbackArgCallback, v8::Handle<v8::Value>(), methodWithCallbackArgSignature));
-
- // Custom Signature 'methodWithNonCallbackArgAndCallbackArg'
- const int methodWithNonCallbackArgAndCallbackArgArgc = 2;
- v8::Handle<v8::FunctionTemplate> methodWithNonCallbackArgAndCallbackArgArgv[methodWithNonCallbackArgAndCallbackArgArgc] = { v8::Handle<v8::FunctionTemplate>(), V8TestCallback::GetRawTemplate() };
- v8::Handle<v8::Signature> methodWithNonCallbackArgAndCallbackArgSignature = v8::Signature::New(desc, methodWithNonCallbackArgAndCallbackArgArgc, methodWithNonCallbackArgAndCallbackArgArgv);
- proto->Set(v8::String::New("methodWithNonCallbackArgAndCallbackArg"), v8::FunctionTemplate::New(TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback, v8::Handle<v8::Value>(), methodWithNonCallbackArgAndCallbackArgSignature));
batchConfigureConstants(desc, proto, TestObjConsts, sizeof(TestObjConsts) / sizeof(*TestObjConsts));
// Custom toString template
diff --git a/WebCore/bindings/v8/ScheduledAction.cpp b/WebCore/bindings/v8/ScheduledAction.cpp
index f511e2b..dcd0bb3 100644
--- a/WebCore/bindings/v8/ScheduledAction.cpp
+++ b/WebCore/bindings/v8/ScheduledAction.cpp
@@ -34,7 +34,6 @@
#include "Document.h"
#include "ScriptExecutionContext.h"
#include "ScriptSourceCode.h"
-#include "ScriptValue.h"
#include "V8Binding.h"
#include "V8Proxy.h"
diff --git a/WebCore/bindings/v8/ScheduledAction.h b/WebCore/bindings/v8/ScheduledAction.h
index 003885f..aefe7ef 100644
--- a/WebCore/bindings/v8/ScheduledAction.h
+++ b/WebCore/bindings/v8/ScheduledAction.h
@@ -34,12 +34,12 @@
#include "OwnHandle.h"
#include "ScriptSourceCode.h"
#include "V8GCController.h"
+#include <wtf/Forward.h>
#include <v8.h>
namespace WebCore {
- class String;
class ScriptExecutionContext;
class V8Proxy;
class WorkerContext;
@@ -47,7 +47,7 @@ namespace WebCore {
class ScheduledAction {
public:
ScheduledAction(v8::Handle<v8::Context>, v8::Handle<v8::Function>, int argc, v8::Handle<v8::Value> argv[]);
- explicit ScheduledAction(v8::Handle<v8::Context> context, const WebCore::String& code, const KURL& url = KURL())
+ explicit ScheduledAction(v8::Handle<v8::Context> context, const WTF::String& code, const KURL& url = KURL())
: m_context(context)
, m_argc(0)
, m_argv(0)
diff --git a/WebCore/bindings/v8/ScriptArray.cpp b/WebCore/bindings/v8/ScriptArray.cpp
deleted file mode 100644
index 7119b27..0000000
--- a/WebCore/bindings/v8/ScriptArray.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScriptArray.h"
-
-#include "Document.h"
-#include "Frame.h"
-#include "ScriptScope.h"
-#include "ScriptState.h"
-#include "SerializedScriptValue.h"
-#include "V8Binding.h"
-#include "V8Proxy.h"
-
-namespace WebCore {
-
-ScriptArray::ScriptArray(ScriptState* scriptState, v8::Handle<v8::Array> v8Array)
- : ScriptObject(scriptState, v8Array)
-{
-}
-
-bool ScriptArray::set(unsigned index, const ScriptObject& value)
-{
- if (value.scriptState() != m_scriptState) {
- ASSERT_NOT_REACHED();
- return false;
- }
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::Integer::New(index), value.v8Value());
- return scope.success();
-}
-
-bool ScriptArray::set(unsigned index, SerializedScriptValue* value)
-{
- ScriptValue scriptValue = ScriptValue::deserialize(m_scriptState, value);
- if (scriptValue.hasNoValue()) {
- ASSERT_NOT_REACHED();
- return false;
- }
-
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::Integer::New(index), scriptValue.v8Value());
- return scope.success();
-}
-
-bool ScriptArray::set(unsigned index, const String& value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::Integer::New(index), v8String(value));
- return scope.success();
-}
-
-bool ScriptArray::set(unsigned index, double value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::Integer::New(index), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptArray::set(unsigned index, long long value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::Integer::New(index), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptArray::set(unsigned index, int value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::Integer::New(index), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptArray::set(unsigned index, bool value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::Integer::New(index), v8Boolean(value));
- return scope.success();
-}
-
-unsigned ScriptArray::length()
-{
- ScriptScope scope(m_scriptState);
- return v8::Array::Cast(*v8Value())->Length();
-}
-
-ScriptArray ScriptArray::createNew(ScriptState* scriptState)
-{
- ScriptScope scope(scriptState);
- return ScriptArray(scriptState, v8::Array::New());
-}
-
-} // namespace WebCore
diff --git a/WebCore/bindings/v8/ScriptArray.h b/WebCore/bindings/v8/ScriptArray.h
deleted file mode 100644
index 9aa8764..0000000
--- a/WebCore/bindings/v8/ScriptArray.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ScriptArray_h
-#define ScriptArray_h
-
-#include "ScriptObject.h"
-
-#include <v8.h>
-
-namespace WebCore {
-class ScriptState;
-class SerializedScriptValue;
-
-class ScriptArray : public ScriptObject {
-public:
- ScriptArray(ScriptState* scriptState, v8::Handle<v8::Array>);
- ScriptArray() {};
- virtual ~ScriptArray() {}
-
- bool set(unsigned index, const ScriptObject&);
- bool set(unsigned index, SerializedScriptValue*);
- bool set(unsigned index, const String&);
- bool set(unsigned index, double);
- bool set(unsigned index, long long);
- bool set(unsigned index, int);
- bool set(unsigned index, bool);
- unsigned length();
-
- static ScriptArray createNew(ScriptState*);
-};
-}
-
-#endif // ScriptArray_h
diff --git a/WebCore/bindings/v8/ScriptCallStack.h b/WebCore/bindings/v8/ScriptCallStack.h
index b608563..215cdec 100644
--- a/WebCore/bindings/v8/ScriptCallStack.h
+++ b/WebCore/bindings/v8/ScriptCallStack.h
@@ -31,7 +31,6 @@
#ifndef ScriptCallStack_h
#define ScriptCallStack_h
-#include "ScriptArray.h"
#include "ScriptCallFrame.h"
#include "ScriptState.h"
#include "ScriptValue.h"
diff --git a/WebCore/bindings/v8/ScriptController.h b/WebCore/bindings/v8/ScriptController.h
index 04a15f6..cd20cda 100644
--- a/WebCore/bindings/v8/ScriptController.h
+++ b/WebCore/bindings/v8/ScriptController.h
@@ -39,6 +39,7 @@
#include <v8.h>
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
@@ -52,7 +53,6 @@ class Event;
class Frame;
class HTMLPlugInElement;
class ScriptSourceCode;
-class String;
class Widget;
class XSSAuditor;
diff --git a/WebCore/bindings/v8/ScriptObject.cpp b/WebCore/bindings/v8/ScriptObject.cpp
index 8f81537..3d38a9e 100644
--- a/WebCore/bindings/v8/ScriptObject.cpp
+++ b/WebCore/bindings/v8/ScriptObject.cpp
@@ -57,86 +57,6 @@ v8::Local<v8::Object> ScriptObject::v8Object() const
return v8::Local<v8::Object>(v8::Object::Cast(*v8Value()));
}
-bool ScriptObject::set(const String& name, const String& value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8String(name), v8String(value));
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, const ScriptObject& value)
-{
- if (value.scriptState() != m_scriptState) {
- ASSERT_NOT_REACHED();
- return false;
- }
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), value.v8Value());
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, const String& value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), v8String(value));
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, double value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, long value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, long long value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, int value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, unsigned value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, unsigned long value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), v8::Number::New(value));
- return scope.success();
-}
-
-bool ScriptObject::set(const char* name, bool value)
-{
- ScriptScope scope(m_scriptState);
- v8Object()->Set(v8::String::New(name), v8Boolean(value));
- return scope.success();
-}
-
-ScriptObject ScriptObject::createNew(ScriptState* scriptState)
-{
- ScriptScope scope(scriptState);
- return ScriptObject(scriptState, v8::Object::New());
-}
-
bool ScriptGlobalObject::set(ScriptState* scriptState, const char* name, const ScriptObject& value)
{
ScriptScope scope(scriptState);
diff --git a/WebCore/bindings/v8/ScriptObject.h b/WebCore/bindings/v8/ScriptObject.h
index bee079c..6b78cfc 100644
--- a/WebCore/bindings/v8/ScriptObject.h
+++ b/WebCore/bindings/v8/ScriptObject.h
@@ -48,19 +48,6 @@ namespace WebCore {
v8::Local<v8::Object> v8Object() const;
ScriptState* scriptState() const { return m_scriptState; }
-
- bool set(const String& name, const String&);
- bool set(const char* name, const ScriptObject&);
- bool set(const char* name, const String&);
- bool set(const char* name, double);
- bool set(const char* name, long);
- bool set(const char* name, long long);
- bool set(const char* name, int);
- bool set(const char* name, unsigned);
- bool set(const char* name, unsigned long);
- bool set(const char* name, bool);
-
- static ScriptObject createNew(ScriptState*);
protected:
ScriptState* m_scriptState;
};
diff --git a/WebCore/bindings/v8/ScriptProfile.cpp b/WebCore/bindings/v8/ScriptProfile.cpp
index 3b71d5f..32e0066 100644
--- a/WebCore/bindings/v8/ScriptProfile.cpp
+++ b/WebCore/bindings/v8/ScriptProfile.cpp
@@ -29,12 +29,13 @@
*/
#include "config.h"
-
#include "ScriptProfile.h"
+#include "InspectorValues.h"
#include "V8Binding.h"
-
#include <v8-profiler.h>
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefPtr.h>
namespace WebCore {
@@ -54,4 +55,32 @@ PassRefPtr<ScriptProfileNode> ScriptProfile::head() const
return ScriptProfileNode::create(m_profile->GetTopDownRoot());
}
+static PassRefPtr<InspectorObject> buildInspectorObjectFor(const v8::CpuProfileNode* node)
+{
+ v8::HandleScope handleScope;
+ RefPtr<InspectorObject> result = InspectorObject::create();
+ result->setString("functionName", toWebCoreString(node->GetFunctionName()));
+ result->setString("url", toWebCoreString(node->GetScriptResourceName()));
+ result->setNumber("lineNumber", node->GetLineNumber());
+ result->setNumber("totalTime", node->GetTotalTime());
+ result->setNumber("selfTime", node->GetSelfTime());
+ result->setNumber("numberOfCalls", 0);
+ result->setBool("visible", true);
+ result->setNumber("callUID", node->GetCallUid());
+
+ RefPtr<InspectorArray> children = InspectorArray::create();
+ const int childrenCount = node->GetChildrenCount();
+ for (int i = 0; i < childrenCount; i++) {
+ const v8::CpuProfileNode* child = node->GetChild(i);
+ children->push(buildInspectorObjectFor(child));
+ }
+ result->set("children", children);
+ return result;
+}
+
+PassRefPtr<InspectorObject> ScriptProfile::buildInspectorObjectForHead() const
+{
+ return buildInspectorObjectFor(m_profile->GetTopDownRoot());
+}
+
} // namespace WebCore
diff --git a/WebCore/bindings/v8/ScriptProfile.h b/WebCore/bindings/v8/ScriptProfile.h
index 2f42ad2..0182669 100644
--- a/WebCore/bindings/v8/ScriptProfile.h
+++ b/WebCore/bindings/v8/ScriptProfile.h
@@ -40,6 +40,8 @@ class CpuProfile;
namespace WebCore {
+class InspectorObject;
+
class ScriptProfile : public RefCounted<ScriptProfile> {
public:
static PassRefPtr<ScriptProfile> create(const v8::CpuProfile* profile)
@@ -52,12 +54,13 @@ public:
unsigned int uid() const;
PassRefPtr<ScriptProfileNode> head() const;
-protected:
+ PassRefPtr<InspectorObject> buildInspectorObjectForHead() const;
+
+private:
ScriptProfile(const v8::CpuProfile* profile)
: m_profile(profile)
{}
-private:
const v8::CpuProfile* m_profile;
};
diff --git a/WebCore/bindings/v8/ScriptProfiler.cpp b/WebCore/bindings/v8/ScriptProfiler.cpp
index 4891892..9213774 100644
--- a/WebCore/bindings/v8/ScriptProfiler.cpp
+++ b/WebCore/bindings/v8/ScriptProfiler.cpp
@@ -59,4 +59,14 @@ void ScriptProfiler::takeHeapSnapshot()
| v8::PROFILER_MODULE_JS_CONSTRUCTORS);
}
+long ScriptProfiler::getProfilerLogLines(long position, String* data)
+{
+ static char buffer[65536];
+ const int readSize = v8::V8::GetLogLines(position, buffer, sizeof(buffer) - 1);
+ buffer[readSize] = '\0';
+ position += readSize;
+ *data = buffer;
+ return position;
+}
+
} // namespace WebCore
diff --git a/WebCore/bindings/v8/ScriptProfiler.h b/WebCore/bindings/v8/ScriptProfiler.h
index aff3ce7..5c1054b 100644
--- a/WebCore/bindings/v8/ScriptProfiler.h
+++ b/WebCore/bindings/v8/ScriptProfiler.h
@@ -44,6 +44,7 @@ public:
static void start(ScriptState* state, const String& title);
static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
static void takeHeapSnapshot();
+ static long getProfilerLogLines(long position, String* data);
};
} // namespace WebCore
diff --git a/WebCore/bindings/v8/ScriptStringImpl.h b/WebCore/bindings/v8/ScriptStringImpl.h
index 8a47b4f..84a25c4 100644
--- a/WebCore/bindings/v8/ScriptStringImpl.h
+++ b/WebCore/bindings/v8/ScriptStringImpl.h
@@ -41,7 +41,7 @@ namespace WebCore {
// This class is used for strings that tend to be shared with JavaScript frequently. The JSC implementation uses wtf::UString - see bindings/js/ScriptString.h
// Currently XMLHttpRequest uses a ScriptString to build up the responseText attribute. As data arrives from the network, it is appended to the ScriptString
// via operator+= and a JavaScript readystatechange event is fired. JavaScript can access the responseText attribute of the XMLHttpRequest object. JavaScript
-// may also query the responseXML attribute of the XMLHttpRequest object which results in the responseText attribute being coerced into a WebCore::String and
+// may also query the responseXML attribute of the XMLHttpRequest object which results in the responseText attribute being coerced into a WTF::String and
// then parsed as an XML document.
// This implementation optimizes for the common case where the responseText is built up with many calls to operator+= before the actual text is queried.
class ScriptStringImpl : public RefCounted<ScriptStringImpl> {
diff --git a/WebCore/bindings/v8/ScriptValue.cpp b/WebCore/bindings/v8/ScriptValue.cpp
index 54f3860..6d3fe20 100755
--- a/WebCore/bindings/v8/ScriptValue.cpp
+++ b/WebCore/bindings/v8/ScriptValue.cpp
@@ -104,6 +104,9 @@ static PassRefPtr<InspectorValue> v8ToInspectorValue(v8::Handle<v8::Value> value
uint32_t length = propertyNames->Length();
for (uint32_t i = 0; i < length; i++) {
v8::Local<v8::Value> name = propertyNames->Get(v8::Int32::New(i));
+ // FIXME(yurys): v8::Object should support GetOwnPropertyNames
+ if (!object->HasRealNamedProperty(v8::Handle<v8::String>::Cast(name)))
+ continue;
RefPtr<InspectorValue> propertyValue = v8ToInspectorValue(object->Get(name));
if (!propertyValue) {
ASSERT_NOT_REACHED();
@@ -113,6 +116,7 @@ static PassRefPtr<InspectorValue> v8ToInspectorValue(v8::Handle<v8::Value> value
}
return inspectorObject;
}
+ ASSERT_NOT_REACHED();
return 0;
}
diff --git a/WebCore/bindings/v8/V8Binding.h b/WebCore/bindings/v8/V8Binding.h
index a15ece1..4656aa2 100644
--- a/WebCore/bindings/v8/V8Binding.h
+++ b/WebCore/bindings/v8/V8Binding.h
@@ -1,10 +1,10 @@
/*
* Copyright (C) 2009 Google Inc. All rights reserved.
-*
+*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
-*
+*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
@@ -14,7 +14,7 @@
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
-*
+*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -40,7 +40,7 @@
#include <v8.h>
namespace WebCore {
-
+
class EventListener;
class EventTarget;
class V8BindingDOMWindow;
@@ -50,6 +50,8 @@ namespace WebCore {
public:
typedef v8::Handle<v8::Value> Value;
typedef V8BindingDOMWindow DOMWindow;
+
+ static Value emptyScriptValue() { return v8::Local<v8::Value>(); }
};
typedef BindingSecurity<V8Binding> V8BindingSecurity;
@@ -61,7 +63,7 @@ namespace WebCore {
template <typename StringType>
StringType v8StringToWebCoreString(v8::Handle<v8::String> v8String, ExternalMode external);
- // Convert v8 types to a WebCore::String. If the V8 string is not already
+ // Convert v8 types to a WTF::String. If the V8 string is not already
// an external string then it is transformed into an external string at this
// point to avoid repeated conversions.
inline String v8StringToWebCoreString(v8::Handle<v8::String> v8String)
@@ -71,7 +73,7 @@ namespace WebCore {
String v8NonStringValueToWebCoreString(v8::Handle<v8::Value>);
String v8ValueToWebCoreString(v8::Handle<v8::Value> value);
- // Convert v8 types to a WebCore::AtomicString.
+ // Convert v8 types to a WTF::AtomicString.
inline AtomicString v8StringToAtomicWebCoreString(v8::Handle<v8::String> v8String)
{
return v8StringToWebCoreString<AtomicString>(v8String, Externalize);
@@ -110,8 +112,8 @@ namespace WebCore {
return v8ExternalString(string);
}
- // Enables caching v8 wrappers created for WebCore::StringImpl. Currently this cache requires
- // all the calls (both to convert WebCore::String to v8::String and to GC the handle)
+ // Enables caching v8 wrappers created for WTF::StringImpl. Currently this cache requires
+ // all the calls (both to convert WTF::String to v8::String and to GC the handle)
// to be performed on the main thread.
void enableStringImplCache();
@@ -152,7 +154,7 @@ namespace WebCore {
{
return v8ValueToWebCoreString(object);
}
-
+
String toWebCoreString(const v8::Arguments&, int index);
// The string returned by this function is still owned by the argument
@@ -171,7 +173,7 @@ namespace WebCore {
AtomicString toAtomicWebCoreStringWithNullCheck(v8::Handle<v8::Value> value);
String toWebCoreStringWithNullOrUndefinedCheck(v8::Handle<v8::Value> value);
-
+
v8::Handle<v8::String> v8UndetectableString(const String& str);
v8::Handle<v8::Value> v8StringOrNull(const String& str);
@@ -183,31 +185,31 @@ namespace WebCore {
double toWebCoreDate(v8::Handle<v8::Value> object);
v8::Handle<v8::Value> v8DateOrNull(double value);
-
+
v8::Persistent<v8::FunctionTemplate> createRawTemplate();
struct BatchedAttribute;
struct BatchedCallback;
-
+
v8::Local<v8::Signature> configureTemplate(v8::Persistent<v8::FunctionTemplate>,
const char* interfaceName,
v8::Persistent<v8::FunctionTemplate> parentClass,
int fieldCount,
- const BatchedAttribute*,
+ const BatchedAttribute*,
size_t attributeCount,
const BatchedCallback*,
size_t callbackCount);
-
+
v8::Handle<v8::Value> getElementStringAttr(const v8::AccessorInfo&,
const QualifiedName&);
void setElementStringAttr(const v8::AccessorInfo&,
const QualifiedName&,
v8::Local<v8::Value>);
-
+
v8::Persistent<v8::String> getToStringName();
v8::Persistent<v8::FunctionTemplate> getToStringTemplate();
-
+
// V8Parameter is an adapter class that converts V8 values to Strings
// or AtomicStrings as appropriate, using multiple typecast operators.
enum V8ParameterMode {
@@ -218,13 +220,13 @@ namespace WebCore {
template <V8ParameterMode MODE = DefaultMode>
class V8Parameter {
public:
- V8Parameter (v8::Local<v8::Value> object) :m_v8Object(object) { }
+ V8Parameter(v8::Local<v8::Value> object = v8::Local<v8::Value>()) : m_v8Object(object) { }
operator String();
operator AtomicString();
private:
v8::Local<v8::Value> m_v8Object;
};
-
+
template<> inline V8Parameter<DefaultMode>::operator String() { return toWebCoreString(m_v8Object); }
template<> inline V8Parameter<WithNullCheck>::operator String() { return toWebCoreStringWithNullCheck(m_v8Object); }
template<> inline V8Parameter<WithUndefinedOrNullCheck>::operator String() { return toWebCoreStringWithNullOrUndefinedCheck(m_v8Object); }
diff --git a/WebCore/bindings/v8/V8DOMWindowShell.cpp b/WebCore/bindings/v8/V8DOMWindowShell.cpp
index c7c77d3..6676f6c 100644
--- a/WebCore/bindings/v8/V8DOMWindowShell.cpp
+++ b/WebCore/bindings/v8/V8DOMWindowShell.cpp
@@ -86,7 +86,11 @@ static void reportFatalErrorInV8(const char* location, const char* message)
// V8 is shutdown, we cannot use V8 api.
// The only thing we can do is to disable JavaScript.
// FIXME: clean up V8Proxy and disable JavaScript.
- printf("V8 error: %s (%s)\n", message, location);
+ int memoryUsageMB = -1;
+#if PLATFORM(CHROMIUM)
+ memoryUsageMB = ChromiumBridge::memoryUsageMB();
+#endif
+ printf("V8 error: %s (%s). Current memory usage: %d MB\n", message, location, memoryUsageMB);
handleFatalErrorInV8();
}
diff --git a/WebCore/bindings/v8/V8DOMWindowShell.h b/WebCore/bindings/v8/V8DOMWindowShell.h
index f4eaff2..2ccb410 100644
--- a/WebCore/bindings/v8/V8DOMWindowShell.h
+++ b/WebCore/bindings/v8/V8DOMWindowShell.h
@@ -32,6 +32,7 @@
#define V8DOMWindowShell_h
#include "WrapperTypeInfo.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -41,7 +42,6 @@ namespace WebCore {
class DOMWindow;
class Frame;
-class String;
// V8WindowShell represents all the per-global object state for a Frame that
// persist between navigations.
diff --git a/WebCore/bindings/v8/V8DOMWrapper.cpp b/WebCore/bindings/v8/V8DOMWrapper.cpp
index 4a09c34..d6f05f4 100644
--- a/WebCore/bindings/v8/V8DOMWrapper.cpp
+++ b/WebCore/bindings/v8/V8DOMWrapper.cpp
@@ -423,7 +423,7 @@ v8::Handle<v8::Value> V8DOMWrapper::convertEventTargetToV8Object(EventTarget* ta
return toV8(eventSource);
#endif
-#if ENABLE(FILE_READER)
+#if ENABLE(BLOB)
if (FileReader* fileReader = target->toFileReader())
return toV8(fileReader);
#endif
diff --git a/WebCore/bindings/v8/V8DOMWrapper.h b/WebCore/bindings/v8/V8DOMWrapper.h
index 97e269a..943cb8a 100644
--- a/WebCore/bindings/v8/V8DOMWrapper.h
+++ b/WebCore/bindings/v8/V8DOMWrapper.h
@@ -35,7 +35,7 @@
#include "Event.h"
#include "Node.h"
#include "NodeFilter.h"
-#include "PlatformString.h" // for WebCore::String
+#include "PlatformString.h"
#include "V8CustomXPathNSResolver.h"
#include "V8DOMMap.h"
#include "V8Event.h"
diff --git a/WebCore/bindings/v8/V8Proxy.h b/WebCore/bindings/v8/V8Proxy.h
index 4dc28ef..94ff17c 100644
--- a/WebCore/bindings/v8/V8Proxy.h
+++ b/WebCore/bindings/v8/V8Proxy.h
@@ -42,6 +42,7 @@
#include "V8Utilities.h"
#include "WrapperTypeInfo.h"
#include <v8.h>
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h> // so generated bindings don't have to
#include <wtf/Vector.h>
@@ -59,7 +60,6 @@ namespace WebCore {
class Node;
class SVGElement;
class ScriptExecutionContext;
- class String;
class V8EventListener;
class V8IsolatedContext;
class WorldContextHandle;
diff --git a/WebCore/bindings/v8/V8Utilities.cpp b/WebCore/bindings/v8/V8Utilities.cpp
index f780218..2e5cf8b 100644
--- a/WebCore/bindings/v8/V8Utilities.cpp
+++ b/WebCore/bindings/v8/V8Utilities.cpp
@@ -38,6 +38,8 @@
#include "ScriptExecutionContext.h"
#include "ScriptState.h"
#include "V8Binding.h"
+#include "V8BindingDOMWindow.h" // FIXME: remove when completeURL moves
+#include "V8BindingState.h"
#include "V8Proxy.h"
#include "WorkerContext.h"
#include "WorkerContextExecutionProxy.h"
@@ -92,41 +94,25 @@ void transferHiddenDependency(v8::Handle<v8::Object> object,
if (!newValue->IsNull() && !newValue->IsUndefined())
createHiddenDependency(object, newValue, cacheIndex);
}
-
bool processingUserGesture()
{
- Frame* frame = V8Proxy::retrieveFrameForEnteredContext();
- return frame && frame->script()->processingUserGesture();
+ return V8BindingState::Only()->processingUserGesture();
}
Frame* callingOrEnteredFrame()
{
- Frame* frame = V8Proxy::retrieveFrameForCallingContext();
- if (!frame) {
- // Unfortunately, when processing script from a plug-in, we might not
- // have a calling context. In those cases, we fall back to the
- // entered context for security checks.
- // FIXME: We need a better API for retrieving frames that abstracts
- // away this concern.
- frame = V8Proxy::retrieveFrameForEnteredContext();
- }
- return frame;
+ return V8BindingState::Only()->getActiveFrame();
}
bool shouldAllowNavigation(Frame* frame)
{
- Frame* callingOrEntered = callingOrEnteredFrame();
- return callingOrEntered && callingOrEntered->loader()->shouldAllowNavigation(frame);
+ return V8BindingSecurity::shouldAllowNavigation(V8BindingState::Only(), frame);
}
KURL completeURL(const String& relativeURL)
{
- // For histoical reasons, we need to complete the URL using the dynamic frame.
- Frame* frame = V8Proxy::retrieveFrameForEnteredContext();
- if (!frame)
- return KURL();
- return frame->loader()->completeURL(relativeURL);
+ return V8BindingDOMWindow::completeURL(V8BindingState::Only(), relativeURL);
}
void navigateIfAllowed(Frame* frame, const KURL& url, bool lockHistory, bool lockBackForwardList)
diff --git a/WebCore/bindings/v8/V8Utilities.h b/WebCore/bindings/v8/V8Utilities.h
index cbe7a7b..2b82f4d 100644
--- a/WebCore/bindings/v8/V8Utilities.h
+++ b/WebCore/bindings/v8/V8Utilities.h
@@ -31,6 +31,7 @@
#ifndef V8Utilities_h
#define V8Utilities_h
+#include <wtf/Forward.h>
#include <v8.h>
namespace WebCore {
@@ -40,7 +41,6 @@ namespace WebCore {
class KURL;
class ScriptExecutionContext;
class ScriptState;
- class String;
// Use an array to hold dependents. It works like a ref-counted scheme. A value can be added more than once to the DOM object.
void createHiddenDependency(v8::Handle<v8::Object>, v8::Local<v8::Value>, int cacheIndex);
diff --git a/WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp b/WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp
index 501e5a2..305fb18 100644
--- a/WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp
@@ -34,6 +34,7 @@
#include "ArrayBuffer.h"
+#include "ExceptionCode.h"
#include "V8Binding.h"
#include "V8ArrayBuffer.h"
#include "V8Proxy.h"
diff --git a/WebCore/bindings/v8/custom/V8BindingMacros.h b/WebCore/bindings/v8/custom/V8BindingMacros.h
index 4c8ecd3..b569b10 100644
--- a/WebCore/bindings/v8/custom/V8BindingMacros.h
+++ b/WebCore/bindings/v8/custom/V8BindingMacros.h
@@ -37,12 +37,13 @@
return block.ReThrow(); \
}
-#define TO_WEBCORE_STRING_EXCEPTION_BLOCK(var, value) \
- String var; \
- { \
- v8::TryCatch block; \
- v8::Handle<v8::String> v8String = (value)->ToString(); \
- if (block.HasCaught()) \
- return block.ReThrow(); \
- var = v8StringToWebCoreString<String>(v8String, DoNotExternalize); \
+#define STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(type, var, value) \
+ type var; \
+ { \
+ v8::Local<v8::Value> v8Value = (value); \
+ v8::TryCatch block; \
+ (value)->ToString(); \
+ if (block.HasCaught()) \
+ return block.ReThrow(); \
+ var = v8Value; \
}
diff --git a/WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp b/WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp
index 6603344..17fca22 100644
--- a/WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp
+++ b/WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp
@@ -43,11 +43,14 @@
namespace WebCore {
-bool V8SQLStatementErrorCallback::handleEvent(ScriptExecutionContext* context, SQLTransaction* transaction, SQLError* error)
+bool V8SQLStatementErrorCallback::handleEvent(SQLTransaction* transaction, SQLError* error)
{
+ if (!canInvokeCallback())
+ return true;
+
v8::HandleScope handleScope;
- v8::Handle<v8::Context> v8Context = toV8Context(context, m_worldContext);
+ v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
if (v8Context.IsEmpty())
return true;
@@ -65,15 +68,12 @@ bool V8SQLStatementErrorCallback::handleEvent(ScriptExecutionContext* context, S
errorHandle
};
- // Protect the context until the callback returns.
- RefPtr<ScriptExecutionContext> protector(context);
-
bool callbackReturnValue = false;
// Step 6: If the error callback returns false, then move on to the next
// statement, if any, or onto the next overall step otherwise. Otherwise,
// the error callback did not return false, or there was no error callback.
// Jump to the last step in the overall steps.
- return invokeCallback(m_callback, 2, argv, callbackReturnValue, context) || callbackReturnValue;
+ return invokeCallback(m_callback, 2, argv, callbackReturnValue, scriptExecutionContext()) || callbackReturnValue;
}
} // namespace WebCore
diff --git a/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h b/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
index cf84438..9677252 100644
--- a/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
+++ b/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
@@ -41,7 +41,6 @@
namespace WebCore {
-class String;
class V8Proxy;
// V8CustomXPathNSResolver does not create a persistent handle to the
diff --git a/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp b/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
index d1e0701..a74faee 100644
--- a/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
@@ -32,7 +32,6 @@
#include "V8DOMWindow.h"
#include "Chrome.h"
-#include "Database.h"
#include "DOMTimer.h"
#include "DOMWindow.h"
#include "ExceptionCode.h"
@@ -55,8 +54,6 @@
#include "V8BindingMacros.h"
#include "V8BindingState.h"
#include "V8CustomEventListener.h"
-#include "V8Database.h"
-#include "V8DatabaseCallback.h"
#include "V8GCForContextDispose.h"
#include "V8HiddenPropertyName.h"
#include "V8HTMLAudioElementConstructor.h"
@@ -82,10 +79,6 @@
#endif
#include "WindowFeatures.h"
-// Horizontal and vertical offset, from the parent content area, around newly
-// opened popups that don't specify a location.
-static const int popupTilePixels = 10;
-
namespace WebCore {
v8::Handle<v8::Value> WindowSetTimeoutImpl(const v8::Arguments& args, bool singleShot)
@@ -104,7 +97,7 @@ v8::Handle<v8::Value> WindowSetTimeoutImpl(const v8::Arguments& args, bool singl
}
v8::Handle<v8::Value> function = args[0];
- WebCore::String functionString;
+ WTF::String functionString;
if (!function->IsFunction()) {
if (function->IsString())
functionString = toWebCoreString(function);
@@ -449,17 +442,6 @@ static bool canShowModalDialogNow(const Frame* frame)
return frame->page()->chrome()->canRunModalNow();
}
-static bool allowPopUp()
-{
- Frame* frame = V8Proxy::retrieveFrameForEnteredContext();
-
- ASSERT(frame);
- if (frame->script()->processingUserGesture())
- return true;
- Settings* settings = frame->settings();
- return settings && settings->javaScriptCanOpenWindowsAutomatically();
-}
-
static HashMap<String, String> parseModalDialogFeatures(const String& featuresArg)
{
HashMap<String, String> map;
@@ -513,7 +495,7 @@ v8::Handle<v8::Value> V8DOMWindow::showModalDialogCallback(const v8::Arguments&
if (!enteredFrame)
return v8::Undefined();
- if (!canShowModalDialogNow(frame) || !allowPopUp())
+ if (!canShowModalDialogNow(frame) || !V8BindingSecurity::allowPopUp(V8BindingState::Only()))
return v8::Undefined();
const HashMap<String, String> features = parseModalDialogFeatures(featureArgs);
@@ -584,134 +566,16 @@ v8::Handle<v8::Value> V8DOMWindow::openCallback(const v8::Arguments& args)
{
INC_STATS("DOM.DOMWindow.open()");
+ DOMWindow* parent = V8DOMWindow::toNative(args.Holder());
String urlString = toWebCoreStringWithNullOrUndefinedCheck(args[0]);
AtomicString frameName = (args[1]->IsUndefined() || args[1]->IsNull()) ? "_blank" : AtomicString(toWebCoreString(args[1]));
-
- DOMWindow* parent = V8DOMWindow::toNative(args.Holder());
- Frame* frame = parent->frame();
-
- if (!V8BindingSecurity::canAccessFrame(V8BindingState::Only(), frame, true))
- return v8::Undefined();
-
- Frame* enteredFrame = V8Proxy::retrieveFrameForEnteredContext();
- if (!enteredFrame)
- return v8::Undefined();
-
- Frame* callingFrame = V8Proxy::retrieveFrameForCallingContext();
- // We may not have a calling context if we are invoked by a plugin via NPAPI.
- if (!callingFrame)
- callingFrame = enteredFrame;
-
- Page* page = frame->page();
- if (!page)
- return v8::Undefined();
-
- // Because FrameTree::find() returns true for empty strings, we must check
- // for empty framenames. Otherwise, illegitimate window.open() calls with
- // no name will pass right through the popup blocker.
- if (!allowPopUp() &&
- (frameName.isEmpty() || !frame->tree()->find(frameName))) {
- return v8::Undefined();
- }
-
- // Get the target frame for the special cases of _top and _parent. In those
- // cases, we can schedule a location change right now and return early.
- bool topOrParent = false;
- if (frameName == "_top") {
- frame = frame->tree()->top();
- topOrParent = true;
- } else if (frameName == "_parent") {
- if (Frame* parent = frame->tree()->parent())
- frame = parent;
- topOrParent = true;
- }
- if (topOrParent) {
- if (!shouldAllowNavigation(frame))
- return v8::Undefined();
-
- String completedUrl;
- if (!urlString.isEmpty())
- completedUrl = completeURL(urlString);
-
- if (!completedUrl.isEmpty() &&
- (!protocolIsJavaScript(completedUrl) || ScriptController::isSafeScript(frame))) {
- bool userGesture = processingUserGesture();
-
- // For whatever reason, Firefox uses the entered frame to determine
- // the outgoingReferrer. We replicate that behavior here.
- String referrer = enteredFrame->loader()->outgoingReferrer();
-
- frame->redirectScheduler()->scheduleLocationChange(completedUrl, referrer, false, false, userGesture);
- }
- return toV8(frame->domWindow());
- }
-
- // In the case of a named frame or a new window, we'll use the
- // createWindow() helper.
-
- // Parse the values, and then work with a copy of the parsed values
- // so we can restore the values we may not want to overwrite after
- // we do the multiple monitor fixes.
WindowFeatures rawFeatures(toWebCoreStringWithNullOrUndefinedCheck(args[2]));
- WindowFeatures windowFeatures(rawFeatures);
- FloatRect screenRect = screenAvailableRect(page->mainFrame()->view());
-
- // Set default size and location near parent window if none were specified.
- // These may be further modified by adjustWindowRect, below.
- if (!windowFeatures.xSet) {
- windowFeatures.x = parent->screenX() - screenRect.x() + popupTilePixels;
- windowFeatures.xSet = true;
- }
- if (!windowFeatures.ySet) {
- windowFeatures.y = parent->screenY() - screenRect.y() + popupTilePixels;
- windowFeatures.ySet = true;
- }
- if (!windowFeatures.widthSet) {
- windowFeatures.width = parent->innerWidth();
- windowFeatures.widthSet = true;
- }
- if (!windowFeatures.heightSet) {
- windowFeatures.height = parent->innerHeight();
- windowFeatures.heightSet = true;
- }
-
- FloatRect windowRect(windowFeatures.x, windowFeatures.y, windowFeatures.width, windowFeatures.height);
-
- // The new window's location is relative to its current screen, so shift
- // it in case it's on a secondary monitor. See http://b/viewIssue?id=967905.
- windowRect.move(screenRect.x(), screenRect.y());
- WebCore::DOMWindow::adjustWindowRect(screenRect, windowRect, windowRect);
-
- windowFeatures.x = windowRect.x();
- windowFeatures.y = windowRect.y();
- windowFeatures.height = windowRect.height();
- windowFeatures.width = windowRect.width();
-
- // If either of the origin coordinates or dimensions weren't set in the original
- // string, make sure they aren't set now.
- if (!rawFeatures.xSet) {
- windowFeatures.x = 0;
- windowFeatures.xSet = false;
- }
- if (!rawFeatures.ySet) {
- windowFeatures.y = 0;
- windowFeatures.ySet = false;
- }
- if (!rawFeatures.widthSet) {
- windowFeatures.width = 0;
- windowFeatures.widthSet = false;
- }
- if (!rawFeatures.heightSet) {
- windowFeatures.height = 0;
- windowFeatures.heightSet = false;
- }
-
- frame = V8BindingDOMWindow::createWindow(V8BindingState::Only(), callingFrame, enteredFrame, frame, urlString, frameName, windowFeatures, v8::Local<v8::Value>());
+ DOMWindow* child = V8BindingDOMWindow::open(V8BindingState::Only(), parent, urlString, frameName, rawFeatures);
- if (!frame)
+ if (!child)
return v8::Undefined();
- return toV8(frame->domWindow());
+ return toV8(child);
}
@@ -790,38 +654,6 @@ v8::Handle<v8::Value> V8DOMWindow::setIntervalCallback(const v8::Arguments& args
return WindowSetTimeoutImpl(args, false);
}
-#if ENABLE(DATABASE)
-v8::Handle<v8::Value> V8DOMWindow::openDatabaseCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.DOMWindow.openDatabase");
- if (args.Length() < 4)
- return throwError(SYNTAX_ERR);
-
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(name, args[0]);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(version, args[1]);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(displayName, args[2]);
- EXCEPTION_BLOCK(unsigned long, estimatedSize, args[3]->Uint32Value());
-
- DOMWindow* imp = V8DOMWindow::toNative(args.Holder());
- if (!V8BindingSecurity::canAccessFrame(V8BindingState::Only(), imp->frame(), true))
- return v8::Undefined();
-
- RefPtr<DatabaseCallback> creationCallback;
- if (args.Length() >= 5) {
- if (!args[4]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- creationCallback = V8DatabaseCallback::create(args[4]);
- }
-
- ExceptionCode ec = 0;
- v8::Handle<v8::Value> result = toV8(imp->openDatabase(name, version, displayName, estimatedSize, creationCallback.release(), ec));
-
- V8Proxy::setDOMException(ec);
- return result;
-}
-#endif // ENABLE(DATABASE)
-
bool V8DOMWindow::namedSecurityCheck(v8::Local<v8::Object> host, v8::Local<v8::Value> key, v8::AccessType type, v8::Local<v8::Value>)
{
v8::Handle<v8::Object> window = V8DOMWrapper::lookupDOMWrapper(V8DOMWindow::GetTemplate(), host);
diff --git a/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp b/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
deleted file mode 100644
index 31406fb..0000000
--- a/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(DATABASE)
-#include "V8Database.h"
-
-#include "Database.h"
-#include "ExceptionCode.h"
-#include "V8Binding.h"
-#include "V8BindingMacros.h"
-#include "V8SQLTransactionCallback.h"
-#include "V8SQLTransactionErrorCallback.h"
-#include "V8CustomVoidCallback.h"
-#include "V8Proxy.h"
-
-namespace WebCore {
-
-v8::Handle<v8::Value> V8Database::changeVersionCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.Database.changeVersion()");
-
- if (args.Length() < 2)
- return throwError(SYNTAX_ERR);
-
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(oldVersion, args[0]);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(newVersion, args[1]);
-
- Database* database = V8Database::toNative(args.Holder());
-
- ScriptExecutionContext* scriptExecutionContext = getScriptExecutionContext();
- if (!scriptExecutionContext)
- return v8::Undefined();
-
- RefPtr<V8SQLTransactionCallback> callback;
- if (args.Length() > 2 && !isUndefinedOrNull(args[2])) {
- if (!args[2]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- callback = V8SQLTransactionCallback::create(args[2]);
- }
-
- RefPtr<V8SQLTransactionErrorCallback> errorCallback;
- if (args.Length() > 3 && !isUndefinedOrNull(args[3])) {
- if (!args[3]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- errorCallback = V8SQLTransactionErrorCallback::create(args[3]);
- }
-
- RefPtr<V8CustomVoidCallback> successCallback;
- if (args.Length() > 4 && !isUndefinedOrNull(args[4])) {
- if (!args[4]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- successCallback = V8CustomVoidCallback::create(args[4], scriptExecutionContext);
- }
-
- database->changeVersion(oldVersion, newVersion, callback.release(), errorCallback.release(), successCallback.release());
-
- return v8::Undefined();
-}
-
-static v8::Handle<v8::Value> createTransaction(const v8::Arguments& args, bool readOnly)
-{
- if (!args.Length())
- return throwError(SYNTAX_ERR);
-
- if (!args[0]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- Database* database = V8Database::toNative(args.Holder());
-
- ScriptExecutionContext* scriptExecutionContext = getScriptExecutionContext();
- if (!scriptExecutionContext)
- return v8::Undefined();
- RefPtr<V8SQLTransactionCallback> callback = V8SQLTransactionCallback::create(args[0]);
-
- RefPtr<V8SQLTransactionErrorCallback> errorCallback;
- if (args.Length() > 1 && !isUndefinedOrNull(args[1])) {
- if (!args[1]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- errorCallback = V8SQLTransactionErrorCallback::create(args[1]);
- }
-
- RefPtr<V8CustomVoidCallback> successCallback;
- if (args.Length() > 2 && !isUndefinedOrNull(args[2])) {
- if (!args[2]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- successCallback = V8CustomVoidCallback::create(args[2], scriptExecutionContext);
- }
-
- database->transaction(callback.release(), errorCallback.release(), successCallback.release(), readOnly);
- return v8::Undefined();
-}
-
-v8::Handle<v8::Value> V8Database::transactionCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.Database.transaction()");
- return createTransaction(args, false);
-}
-
-v8::Handle<v8::Value> V8Database::readTransactionCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.Database.readTransaction()");
- return createTransaction(args, true);
-}
-
-} // namespace WebCore
-
-#endif
diff --git a/WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp b/WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp
deleted file mode 100644
index 079f6e9..0000000
--- a/WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(DATABASE)
-#include "V8DatabaseSync.h"
-
-#include "DatabaseSync.h"
-#include "ExceptionCode.h"
-#include "V8Binding.h"
-#include "V8BindingMacros.h"
-#include "V8Proxy.h"
-#include "V8SQLTransactionSyncCallback.h"
-
-namespace WebCore {
-
-v8::Handle<v8::Value> V8DatabaseSync::changeVersionCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.DatabaseSync.changeVersion()");
-
- if (args.Length() < 2)
- return throwError(SYNTAX_ERR);
-
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(oldVersion, args[0]);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(newVersion, args[1]);
-
- DatabaseSync* database = V8DatabaseSync::toNative(args.Holder());
-
- RefPtr<V8SQLTransactionSyncCallback> callback;
- if (args.Length() > 2 && !isUndefinedOrNull(args[2])) {
- if (!args[2]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- callback = V8SQLTransactionSyncCallback::create(args[2]);
- }
-
- ExceptionCode ec = 0;
- database->changeVersion(oldVersion, newVersion, callback.release(), ec);
- V8Proxy::setDOMException(ec);
-
- return v8::Undefined();
-}
-
-static v8::Handle<v8::Value> createTransaction(const v8::Arguments& args, bool readOnly)
-{
- if (!args.Length())
- return throwError(SYNTAX_ERR);
-
- if (!args[0]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- DatabaseSync* database = V8DatabaseSync::toNative(args.Holder());
-
- RefPtr<V8SQLTransactionSyncCallback> callback = V8SQLTransactionSyncCallback::create(args[0]);
-
- ExceptionCode ec = 0;
- database->transaction(callback.release(), readOnly, ec);
- V8Proxy::setDOMException(ec);
-
- return v8::Undefined();
-}
-
-v8::Handle<v8::Value> V8DatabaseSync::transactionCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.DatabaseSync.transaction()");
- return createTransaction(args, false);
-}
-
-v8::Handle<v8::Value> V8DatabaseSync::readTransactionCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.DatabaseSync.readTransaction()");
- return createTransaction(args, true);
-}
-
-} // namespace WebCore
-
-#endif
diff --git a/WebCore/bindings/v8/custom/V8DeviceMotionEventCustom.cpp b/WebCore/bindings/v8/custom/V8DeviceMotionEventCustom.cpp
new file mode 100644
index 0000000..39692b6
--- /dev/null
+++ b/WebCore/bindings/v8/custom/V8DeviceMotionEventCustom.cpp
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "V8DeviceMotionEvent.h"
+
+#if ENABLE(DEVICE_ORIENTATION)
+
+#include "DeviceMotionData.h"
+#include "V8Binding.h"
+#include "V8Proxy.h"
+
+#include <v8.h>
+
+namespace WebCore {
+
+v8::Handle<v8::Value> V8DeviceMotionEvent::xAccelerationAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.DeviceMotionEvent.xAcceleration._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ DeviceMotionEvent* imp = V8DeviceMotionEvent::toNative(holder);
+ if (!imp->deviceMotionData()->canProvideXAcceleration())
+ return v8::Null();
+ return v8::Number::New(imp->deviceMotionData()->xAcceleration());
+}
+
+v8::Handle<v8::Value> V8DeviceMotionEvent::yAccelerationAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.DeviceMotionEvent.yAcceleration._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ DeviceMotionEvent* imp = V8DeviceMotionEvent::toNative(holder);
+ if (!imp->deviceMotionData()->canProvideYAcceleration())
+ return v8::Null();
+ return v8::Number::New(imp->deviceMotionData()->yAcceleration());
+}
+
+v8::Handle<v8::Value> V8DeviceMotionEvent::zAccelerationAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.DeviceMotionEvent.zAcceleration._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ DeviceMotionEvent* imp = V8DeviceMotionEvent::toNative(holder);
+ if (!imp->deviceMotionData()->canProvideZAcceleration())
+ return v8::Null();
+ return v8::Number::New(imp->deviceMotionData()->zAcceleration());
+}
+
+v8::Handle<v8::Value> V8DeviceMotionEvent::xRotationRateAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.DeviceMotionEvent.xRotationRate._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ DeviceMotionEvent* imp = V8DeviceMotionEvent::toNative(holder);
+ if (!imp->deviceMotionData()->canProvideXRotationRate())
+ return v8::Null();
+ return v8::Number::New(imp->deviceMotionData()->xRotationRate());
+}
+
+v8::Handle<v8::Value> V8DeviceMotionEvent::yRotationRateAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.DeviceMotionEvent.yRotationRate._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ DeviceMotionEvent* imp = V8DeviceMotionEvent::toNative(holder);
+ if (!imp->deviceMotionData()->canProvideYRotationRate())
+ return v8::Null();
+ return v8::Number::New(imp->deviceMotionData()->yRotationRate());
+}
+
+v8::Handle<v8::Value> V8DeviceMotionEvent::zRotationRateAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.DeviceMotionEvent.zRotationRate._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ DeviceMotionEvent* imp = V8DeviceMotionEvent::toNative(holder);
+ if (!imp->deviceMotionData()->canProvideZRotationRate())
+ return v8::Null();
+ return v8::Number::New(imp->deviceMotionData()->zRotationRate());
+}
+
+
+v8::Handle<v8::Value> V8DeviceMotionEvent::intervalAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.DeviceMotionEvent.interval._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ DeviceMotionEvent* imp = V8DeviceMotionEvent::toNative(holder);
+ if (!imp->deviceMotionData()->canProvideInterval())
+ return v8::Null();
+ return v8::Number::New(imp->deviceMotionData()->interval());
+}
+
+v8::Handle<v8::Value> V8DeviceMotionEvent::initDeviceMotionEventCallback(const v8::Arguments& args)
+{
+ DeviceMotionEvent* imp = V8DeviceMotionEvent::toNative(args.Holder());
+ V8Parameter<> type = args[0];
+ bool bubbles = args[1]->BooleanValue();
+ bool cancelable = args[2]->BooleanValue();
+ // If any of the parameters are null or undefined, mark them as not provided.
+ // Otherwise, use the standard JavaScript conversion.
+ bool xAccelerationProvided = !isUndefinedOrNull(args[3]);
+ double xAcceleration = static_cast<double>(args[3]->NumberValue());
+ bool yAccelerationProvided = !isUndefinedOrNull(args[4]);
+ double yAcceleration = static_cast<double>(args[4]->NumberValue());
+ bool zAccelerationProvided = !isUndefinedOrNull(args[5]);
+ double zAcceleration = static_cast<double>(args[5]->NumberValue());
+ bool xRotationRateProvided = !isUndefinedOrNull(args[6]);
+ double xRotationRate = static_cast<double>(args[6]->NumberValue());
+ bool yRotationRateProvided = !isUndefinedOrNull(args[7]);
+ double yRotationRate = static_cast<double>(args[7]->NumberValue());
+ bool zRotationRateProvided = !isUndefinedOrNull(args[8]);
+ double zRotationRate = static_cast<double>(args[8]->NumberValue());
+ bool intervalProvided = !isUndefinedOrNull(args[9]);
+ double interval = static_cast<double>(args[9]->NumberValue());
+ RefPtr<DeviceMotionData> deviceMotionData = DeviceMotionData::create(xAccelerationProvided, xAcceleration, yAccelerationProvided, yAcceleration, zAccelerationProvided, zAcceleration, xRotationRateProvided, xRotationRate, yRotationRateProvided, yRotationRate, zRotationRateProvided, zRotationRate, intervalProvided, interval);
+ imp->initDeviceMotionEvent(type, bubbles, cancelable, deviceMotionData.get());
+ return v8::Handle<v8::Value>();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(DEVICE_ORIENTATION)
diff --git a/WebCore/bindings/v8/custom/V8EventCustom.cpp b/WebCore/bindings/v8/custom/V8EventCustom.cpp
index bce1561..e0bb02b 100644
--- a/WebCore/bindings/v8/custom/V8EventCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8EventCustom.cpp
@@ -40,6 +40,7 @@
#include "V8Clipboard.h"
#include "V8CompositionEvent.h"
#include "V8CustomEvent.h"
+#include "V8DeviceMotionEvent.h"
#include "V8DeviceOrientationEvent.h"
#include "V8ErrorEvent.h"
#include "V8IDBErrorEvent.h"
@@ -155,6 +156,8 @@ v8::Handle<v8::Value> toV8(Event* impl)
if (impl->isBeforeLoadEvent())
return toV8(static_cast<BeforeLoadEvent*>(impl));
#if ENABLE(DEVICE_ORIENTATION)
+ if (impl->isDeviceMotionEvent())
+ return toV8(static_cast<DeviceMotionEvent*>(impl));
if (impl->isDeviceOrientationEvent())
return toV8(static_cast<DeviceOrientationEvent*>(impl));
#endif
diff --git a/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp b/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp
index 2ec3dcd..3dffeb5 100644
--- a/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8IDBAnyCustom.cpp
@@ -32,11 +32,12 @@
#include "V8IDBAny.h"
#include "SerializedScriptValue.h"
-#include "V8IDBDatabaseRequest.h"
+#include "V8IDBCursor.h"
+#include "V8IDBDatabase.h"
#include "V8IDBFactory.h"
#include "V8IDBIndex.h"
#include "V8IDBKey.h"
-#include "V8IDBObjectStoreRequest.h"
+#include "V8IDBObjectStore.h"
namespace WebCore {
@@ -50,14 +51,16 @@ v8::Handle<v8::Value> toV8(IDBAny* impl)
return v8::Undefined();
case IDBAny::NullType:
return v8::Null();
- case IDBAny::IDBDatabaseRequestType:
- return toV8(impl->idbDatabaseRequest());
+ case IDBAny::IDBCursorType:
+ return toV8(impl->idbCursor());
+ case IDBAny::IDBDatabaseType:
+ return toV8(impl->idbDatabase());
case IDBAny::IDBIndexType:
return toV8(impl->idbIndex());
case IDBAny::IDBKeyType:
return toV8(impl->idbKey());
- case IDBAny::IDBObjectStoreRequestType:
- return toV8(impl->idbObjectStoreRequest());
+ case IDBAny::IDBObjectStoreType:
+ return toV8(impl->idbObjectStore());
case IDBAny::IDBFactoryType:
return toV8(impl->idbFactory());
case IDBAny::SerializedScriptValueType:
diff --git a/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp b/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
index c7cd54c..435cf73 100644
--- a/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
@@ -37,10 +37,10 @@
#include "InjectedScript.h"
#include "InjectedScriptHost.h"
#include "InspectorController.h"
+#include "InspectorValues.h"
#include "Node.h"
#include "Page.h"
#include "ScriptDebugServer.h"
-#include "SerializedScriptValue.h"
#include "V8Binding.h"
#include "V8BindingState.h"
@@ -164,19 +164,6 @@ v8::Handle<v8::Value> V8InjectedScriptHost::currentCallFrameCallback(const v8::A
#endif
#if ENABLE(DATABASE)
-v8::Handle<v8::Value> V8InjectedScriptHost::databaseForIdCallback(const v8::Arguments& args)
-{
- INC_STATS("InjectedScriptHost.databaseForId()");
- if (args.Length() < 1)
- return v8::Undefined();
-
- InjectedScriptHost* host = V8InjectedScriptHost::toNative(args.Holder());
- Database* database = host->databaseForId(args[0]->ToInt32()->Value());
- if (!database)
- return v8::Undefined();
- return toV8(database);
-}
-
v8::Handle<v8::Value> V8InjectedScriptHost::selectDatabaseCallback(const v8::Arguments& args)
{
INC_STATS("InjectedScriptHost.selectDatabase()");
@@ -208,19 +195,6 @@ v8::Handle<v8::Value> V8InjectedScriptHost::selectDOMStorageCallback(const v8::A
}
#endif
-v8::Handle<v8::Value> V8InjectedScriptHost::reportDidDispatchOnInjectedScriptCallback(const v8::Arguments& args)
-{
- INC_STATS("InjectedScriptHost.reportDidDispatchOnInjectedScript()");
- if (args.Length() < 3)
- return v8::Undefined();
- InjectedScriptHost* host = V8InjectedScriptHost::toNative(args.Holder());
- int callId = args[0]->ToInt32()->Value();
- RefPtr<SerializedScriptValue> result(SerializedScriptValue::create(args[1]));
- bool isException = args[2]->ToBoolean()->Value();
- host->reportDidDispatchOnInjectedScript(callId, result.get(), isException);
- return v8::Undefined();
-}
-
InjectedScript InjectedScriptHost::injectedScriptFor(ScriptState* inspectedScriptState)
{
v8::HandleScope handleScope;
diff --git a/WebCore/bindings/v8/custom/V8NotificationCenterCustom.cpp b/WebCore/bindings/v8/custom/V8NotificationCenterCustom.cpp
index 2ce4780..340f0a8 100644
--- a/WebCore/bindings/v8/custom/V8NotificationCenterCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8NotificationCenterCustom.cpp
@@ -83,6 +83,10 @@ v8::Handle<v8::Value> V8NotificationCenter::requestPermissionCallback(const v8::
NotificationCenter* notificationCenter = V8NotificationCenter::toNative(args.Holder());
ScriptExecutionContext* context = notificationCenter->context();
+ // Make sure that script execution context is valid.
+ if (!context)
+ return throwError(INVALID_STATE_ERR);
+
// Requesting permission is only valid from a page context.
if (context->isWorkerContext())
return throwError(NOT_SUPPORTED_ERR);
diff --git a/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp b/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp
index e2a5070..af4185b 100644
--- a/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp
@@ -55,7 +55,7 @@ v8::Handle<v8::Value> V8SQLTransaction::executeSqlCallback(const v8::Arguments&
if (args.Length() == 0)
return throwError(SYNTAX_ERR);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(statement, args[0]);
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, statement, args[0]);
Vector<SQLValue> sqlValues;
@@ -82,7 +82,7 @@ v8::Handle<v8::Value> V8SQLTransaction::executeSqlCallback(const v8::Arguments&
EXCEPTION_BLOCK(double, sqlValue, value->NumberValue());
sqlValues.append(SQLValue(sqlValue));
} else {
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(sqlValue, value);
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, sqlValue, value);
sqlValues.append(SQLValue(sqlValue));
}
}
@@ -90,22 +90,22 @@ v8::Handle<v8::Value> V8SQLTransaction::executeSqlCallback(const v8::Arguments&
SQLTransaction* transaction = V8SQLTransaction::toNative(args.Holder());
- ScriptExecutionContext* executionContext = getScriptExecutionContext();
- if (!executionContext)
+ ScriptExecutionContext* scriptExecutionContext = getScriptExecutionContext();
+ if (!scriptExecutionContext)
return v8::Undefined();
RefPtr<SQLStatementCallback> callback;
if (args.Length() > 2 && !isUndefinedOrNull(args[2])) {
if (!args[2]->IsObject())
return throwError(TYPE_MISMATCH_ERR);
- callback = V8SQLStatementCallback::create(args[2]);
+ callback = V8SQLStatementCallback::create(args[2], scriptExecutionContext);
}
RefPtr<SQLStatementErrorCallback> errorCallback;
if (args.Length() > 3 && !isUndefinedOrNull(args[3])) {
if (!args[3]->IsObject())
return throwError(TYPE_MISMATCH_ERR);
- errorCallback = V8SQLStatementErrorCallback::create(args[3]);
+ errorCallback = V8SQLStatementErrorCallback::create(args[3], scriptExecutionContext);
}
ExceptionCode ec = 0;
diff --git a/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp b/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp
index 495a8e4..8a57a9a 100644
--- a/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp
@@ -55,7 +55,7 @@ v8::Handle<v8::Value> V8SQLTransactionSync::executeSqlCallback(const v8::Argumen
if (!args.Length())
return throwError(SYNTAX_ERR);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(statement, args[0]);
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, statement, args[0]);
Vector<SQLValue> sqlValues;
@@ -82,7 +82,7 @@ v8::Handle<v8::Value> V8SQLTransactionSync::executeSqlCallback(const v8::Argumen
EXCEPTION_BLOCK(double, sqlValue, value->NumberValue());
sqlValues.append(SQLValue(sqlValue));
} else {
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(sqlValue, value);
+ STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, sqlValue, value);
sqlValues.append(SQLValue(sqlValue));
}
}
diff --git a/WebCore/bindings/v8/custom/V8WorkerContextCustom.cpp b/WebCore/bindings/v8/custom/V8WorkerContextCustom.cpp
index f66ff3d..53d731d 100755
--- a/WebCore/bindings/v8/custom/V8WorkerContextCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8WorkerContextCustom.cpp
@@ -33,12 +33,6 @@
#if ENABLE(WORKERS)
#include "V8WorkerContext.h"
-#if ENABLE(DATABASE)
-#include "Database.h"
-#include "V8Database.h"
-#include "V8DatabaseCallback.h"
-#include "V8DatabaseSync.h"
-#endif
#include "DOMTimer.h"
#include "ExceptionCode.h"
#include "ScheduledAction.h"
@@ -71,7 +65,7 @@ v8::Handle<v8::Value> SetTimeoutOrInterval(const v8::Arguments& args, bool singl
v8::Handle<v8::Context> v8Context = proxy->context();
if (function->IsString()) {
- WebCore::String stringFunction = toWebCoreString(function);
+ WTF::String stringFunction = toWebCoreString(function);
timerId = DOMTimer::install(workerContext, new ScheduledAction(v8Context, stringFunction, workerContext->url()), timeout, singleShot);
} else if (function->IsFunction()) {
size_t paramCount = argumentCount >= 2 ? argumentCount - 2 : 0;
@@ -143,64 +137,6 @@ v8::Handle<v8::Value> toV8(WorkerContext* impl)
return global;
}
-#if ENABLE(DATABASE)
-v8::Handle<v8::Value> V8WorkerContext::openDatabaseCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.V8WorkerContext.openDatabase()");
- if (args.Length() < 4)
- return throwError(SYNTAX_ERR);
-
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(name, args[0]);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(version, args[1]);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(displayName, args[2]);
- EXCEPTION_BLOCK(unsigned long, estimatedSize, args[3]->Uint32Value());
-
- WorkerContext* workerContext = V8WorkerContext::toNative(args.Holder());
-
- RefPtr<DatabaseCallback> creationCallback;
- if (args.Length() >= 5) {
- if (!args[4]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- creationCallback = V8DatabaseCallback::create(args[4]);
- }
-
- ExceptionCode ec = 0;
- v8::Handle<v8::Value> result = toV8(workerContext->openDatabase(name, version, displayName, estimatedSize, creationCallback.release(), ec));
-
- V8Proxy::setDOMException(ec);
- return result;
-}
-
-v8::Handle<v8::Value> V8WorkerContext::openDatabaseSyncCallback(const v8::Arguments& args)
-{
- INC_STATS("DOM.V8WorkerContext.openDatabaseSync()");
- if (args.Length() < 4)
- return throwError(SYNTAX_ERR);
-
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(name, args[0]);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(version, args[1]);
- TO_WEBCORE_STRING_EXCEPTION_BLOCK(displayName, args[2]);
- EXCEPTION_BLOCK(unsigned long, estimatedSize, args[3]->Uint32Value());
-
- WorkerContext* workerContext = V8WorkerContext::toNative(args.Holder());
-
- RefPtr<DatabaseCallback> creationCallback;
- if (args.Length() >= 5) {
- if (!args[4]->IsObject())
- return throwError(TYPE_MISMATCH_ERR);
-
- creationCallback = V8DatabaseCallback::create(args[4]);
- }
-
- ExceptionCode ec = 0;
- v8::Handle<v8::Value> result = toV8(workerContext->openDatabaseSync(name, version, displayName, estimatedSize, creationCallback.release(), ec));
-
- V8Proxy::setDOMException(ec);
- return result;
-}
-#endif
-
} // namespace WebCore
#endif // ENABLE(WORKERS)
diff --git a/WebCore/bindings/v8/specialization/V8BindingState.cpp b/WebCore/bindings/v8/specialization/V8BindingState.cpp
index 4710271..d95d578 100644
--- a/WebCore/bindings/v8/specialization/V8BindingState.cpp
+++ b/WebCore/bindings/v8/specialization/V8BindingState.cpp
@@ -1,10 +1,10 @@
/*
* Copyright (C) 2009 Google Inc. All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
- *
+ *
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
@@ -14,7 +14,7 @@
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -31,6 +31,8 @@
#include "config.h"
#include "V8BindingState.h"
+#include "Frame.h"
+#include "ScriptController.h"
#include "V8Proxy.h"
#include <wtf/StdLibExtras.h>
@@ -53,9 +55,34 @@ DOMWindow* State<V8Binding>::getActiveWindow()
return V8Proxy::retrieveWindow(activeContext);
}
+Frame* State<V8Binding>::getActiveFrame()
+{
+ Frame* frame = V8Proxy::retrieveFrameForCallingContext();
+ if (!frame) {
+ // Unfortunately, when processing script from a plug-in, we might not
+ // have a calling context. In those cases, we fall back to the
+ // entered context for security checks.
+ // FIXME: We need a better API for retrieving frames that abstracts
+ // away this concern.
+ frame = V8Proxy::retrieveFrameForEnteredContext();
+ }
+ return frame;
+}
+
+Frame* State<V8Binding>::getFirstFrame()
+{
+ return V8Proxy::retrieveFrameForEnteredContext();
+}
+
void State<V8Binding>::immediatelyReportUnsafeAccessTo(Frame* target)
{
V8Proxy::reportUnsafeAccessTo(target, V8Proxy::ReportNow);
}
+bool State<V8Binding>::processingUserGesture()
+{
+ Frame* frame = V8Proxy::retrieveFrameForEnteredContext();
+ return frame && frame->script()->processingUserGesture();
+}
+
} // namespace WebCore
diff --git a/WebCore/bindings/v8/specialization/V8BindingState.h b/WebCore/bindings/v8/specialization/V8BindingState.h
index f305c14..baba0c6 100644
--- a/WebCore/bindings/v8/specialization/V8BindingState.h
+++ b/WebCore/bindings/v8/specialization/V8BindingState.h
@@ -1,10 +1,10 @@
/*
* Copyright (C) 2009 Google Inc. All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
- *
+ *
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
@@ -14,7 +14,7 @@
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -36,6 +36,8 @@
namespace WebCore {
+class Frame;
+
// Singleton implementation of State<V8Binding>. Uses V8's global data
// structures to return information about relevant execution state.
template <>
@@ -44,11 +46,19 @@ public:
// Singleton
static State* Only();
+ // Reports an error message (without delay) if the security check fails.
+ static void immediatelyReportUnsafeAccessTo(Frame*);
+
// The DOMWindow corresponding to the 'calling context' of execution.
DOMWindow* getActiveWindow();
- // Reports an error message (without delay) if the security check fails.
- static void immediatelyReportUnsafeAccessTo(Frame*);
+ // The frame corresponding to the 'calling context' of execution.
+ Frame* getActiveFrame();
+
+ // The first frame in which execution entered user script.
+ Frame* getFirstFrame();
+
+ bool processingUserGesture();
private:
explicit State() {}
diff --git a/WebCore/bridge/c/c_utility.cpp b/WebCore/bridge/c/c_utility.cpp
index 3e65eb9..443ecca 100644
--- a/WebCore/bridge/c/c_utility.cpp
+++ b/WebCore/bridge/c/c_utility.cpp
@@ -31,6 +31,7 @@
#include "c_utility.h"
#include "CRuntimeObject.h"
+#include "JSDOMBinding.h"
#include "JSDOMWindow.h"
#include "NP_jsobject.h"
#include "c_instance.h"
@@ -43,8 +44,6 @@
#include "runtime_root.h"
#include <wtf/Assertions.h>
-using WebCore::String;
-
namespace JSC { namespace Bindings {
static String convertUTF8ToUTF16WithLatin1Fallback(const NPUTF8* UTF8Chars, int UTF8Length)
@@ -123,7 +122,7 @@ JSValue convertNPVariantToValue(ExecState* exec, const NPVariant* variant, RootO
if (type == NPVariantType_Double)
return jsNumber(exec, NPVARIANT_TO_DOUBLE(*variant));
if (type == NPVariantType_String)
- return jsString(exec, convertNPStringToUTF16(&variant->value.stringValue));
+ return WebCore::jsString(exec, convertNPStringToUTF16(&variant->value.stringValue));
if (type == NPVariantType_Object) {
NPObject* obj = variant->value.objectValue;
@@ -145,7 +144,7 @@ String convertNPStringToUTF16(const NPString* string)
Identifier identifierFromNPIdentifier(ExecState* exec, const NPUTF8* name)
{
- return Identifier(exec, stringToUString(convertUTF8ToUTF16WithLatin1Fallback(name, -1)));
+ return Identifier(exec, WebCore::stringToUString(convertUTF8ToUTF16WithLatin1Fallback(name, -1)));
}
} }
diff --git a/WebCore/bridge/c/c_utility.h b/WebCore/bridge/c/c_utility.h
index 6af8fb6..43cb16c 100644
--- a/WebCore/bridge/c/c_utility.h
+++ b/WebCore/bridge/c/c_utility.h
@@ -30,10 +30,7 @@
#include "npruntime_internal.h"
#include <runtime/JSValue.h>
-
-namespace WebCore {
- class String;
-}
+#include <wtf/Forward.h>
namespace JSC {
@@ -46,7 +43,7 @@ class RootObject;
typedef uint16_t NPUTF16;
-WebCore::String convertNPStringToUTF16(const NPString *string);
+WTF::String convertNPStringToUTF16(const NPString *string);
void convertValueToNPVariant(ExecState*, JSValue, NPVariant* result);
JSValue convertNPVariantToValue(ExecState*, const NPVariant*, RootObject*);
Identifier identifierFromNPIdentifier(ExecState*, const NPUTF8* name);
diff --git a/WebCore/bridge/jni/v8/JavaClassV8.h b/WebCore/bridge/jni/v8/JavaClassV8.h
index ae4806a..b7447b2 100644
--- a/WebCore/bridge/jni/v8/JavaClassV8.h
+++ b/WebCore/bridge/jni/v8/JavaClassV8.h
@@ -37,8 +37,8 @@ namespace JSC {
namespace Bindings {
typedef Vector<JavaMethod*> MethodList;
-typedef HashMap<WebCore::String, MethodList*> MethodListMap;
-typedef HashMap<WebCore::String, JavaField*> FieldMap;
+typedef HashMap<WTF::String, MethodList*> MethodListMap;
+typedef HashMap<WTF::String, JavaField*> FieldMap;
class JavaClass {
public:
diff --git a/WebCore/config.h b/WebCore/config.h
index d2977b9..5aba946 100644
--- a/WebCore/config.h
+++ b/WebCore/config.h
@@ -256,21 +256,9 @@
#define WTF_USE_CFNETWORK 1
#undef WTF_USE_CURL
#endif
-#undef WTF_USE_WININET
-#define WTF_PLATFORM_CF 1
-#define WTF_USE_PTHREADS 0
#endif
#if PLATFORM(MAC)
-// ATSUI vs. CoreText
-#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
-#define WTF_USE_ATSUI 0
-#define WTF_USE_CORE_TEXT 1
-#else
-#define WTF_USE_ATSUI 1
-#define WTF_USE_CORE_TEXT 0
-#endif
-
// New theme
#define WTF_USE_NEW_THEME 1
#endif // PLATFORM(MAC)
diff --git a/WebCore/css/CSSComputedStyleDeclaration.cpp b/WebCore/css/CSSComputedStyleDeclaration.cpp
index 44ff1fc..6bb025d 100644
--- a/WebCore/css/CSSComputedStyleDeclaration.cpp
+++ b/WebCore/css/CSSComputedStyleDeclaration.cpp
@@ -925,9 +925,13 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(int proper
case CSSPropertyWebkitHyphens:
return CSSPrimitiveValue::create(style->hyphens());
case CSSPropertyWebkitHyphenateCharacter:
- if (style->hyphenateCharacter().isNull())
+ if (style->hyphenationString().isNull())
return CSSPrimitiveValue::createIdentifier(CSSValueAuto);
- return CSSPrimitiveValue::create(style->hyphenateCharacter(), CSSPrimitiveValue::CSS_STRING);
+ return CSSPrimitiveValue::create(style->hyphenationString(), CSSPrimitiveValue::CSS_STRING);
+ case CSSPropertyWebkitHyphenateLocale:
+ if (style->hyphenationLocale().isNull())
+ return CSSPrimitiveValue::createIdentifier(CSSValueAuto);
+ return CSSPrimitiveValue::create(style->hyphenationLocale(), CSSPrimitiveValue::CSS_STRING);
case CSSPropertyWebkitBorderFit:
if (style->borderFit() == BorderFitBorder)
return CSSPrimitiveValue::createIdentifier(CSSValueBorder);
diff --git a/WebCore/css/CSSFontFaceSource.cpp b/WebCore/css/CSSFontFaceSource.cpp
index 00dfcba..01b5569 100644
--- a/WebCore/css/CSSFontFaceSource.cpp
+++ b/WebCore/css/CSSFontFaceSource.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -36,9 +36,7 @@
#include "SimpleFontData.h"
#if ENABLE(SVG_FONTS)
-#if !PLATFORM(WX)
#include "FontCustomPlatformData.h"
-#endif
#include "HTMLNames.h"
#include "SVGFontData.h"
#include "SVGFontElement.h"
@@ -155,8 +153,7 @@ SimpleFontData* CSSFontFaceSource::getFontData(const FontDescription& fontDescri
m_svgFontFaceElement = fontFaceElement;
}
- SVGFontData* svgFontData = new SVGFontData(fontFaceElement);
- fontData.set(new SimpleFontData(m_font->platformDataFromCustomData(fontDescription.computedPixelSize(), syntheticBold, syntheticItalic, fontDescription.renderingMode()), true, false, svgFontData));
+ fontData.set(new SimpleFontData(adoptPtr(new SVGFontData(fontFaceElement)), fontDescription.computedPixelSize(), syntheticBold, syntheticItalic));
}
} else
#endif
@@ -170,10 +167,8 @@ SimpleFontData* CSSFontFaceSource::getFontData(const FontDescription& fontDescri
} else {
#if ENABLE(SVG_FONTS)
// In-Document SVG Fonts
- if (m_svgFontFaceElement) {
- SVGFontData* svgFontData = new SVGFontData(m_svgFontFaceElement);
- fontData.set(new SimpleFontData(FontPlatformData(fontDescription.computedPixelSize(), syntheticBold, syntheticItalic), true, false, svgFontData));
- }
+ if (m_svgFontFaceElement)
+ fontData.set(new SimpleFontData(adoptPtr(new SVGFontData(m_svgFontFaceElement)), fontDescription.computedPixelSize(), syntheticBold, syntheticItalic));
#endif
}
} else {
diff --git a/WebCore/css/CSSFontSelector.h b/WebCore/css/CSSFontSelector.h
index af454bd..d9cce1c 100644
--- a/WebCore/css/CSSFontSelector.h
+++ b/WebCore/css/CSSFontSelector.h
@@ -28,19 +28,18 @@
#include "FontSelector.h"
#include "StringHash.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/RefPtr.h>
namespace WebCore {
-class AtomicString;
class CSSFontFace;
class CSSFontFaceRule;
class CSSSegmentedFontFace;
class Document;
class DocLoader;
class FontDescription;
-class String;
class CSSFontSelector : public FontSelector {
public:
diff --git a/WebCore/css/CSSHelper.h b/WebCore/css/CSSHelper.h
index 2e33377..331815e 100644
--- a/WebCore/css/CSSHelper.h
+++ b/WebCore/css/CSSHelper.h
@@ -22,9 +22,9 @@
#ifndef CSSHelper_h
#define CSSHelper_h
-namespace WebCore {
+#include <wtf/Forward.h>
- class String;
+namespace WebCore {
// Used in many inappropriate contexts throughout WebCore. We'll have to examine and test
// each call site to find out whether it needs the various things this function does. That
diff --git a/WebCore/css/CSSOMUtils.h b/WebCore/css/CSSOMUtils.h
index 6602b35..749cb25 100644
--- a/WebCore/css/CSSOMUtils.h
+++ b/WebCore/css/CSSOMUtils.h
@@ -31,6 +31,7 @@
#ifndef CSSOMUtils_h
#define CSSOMUtils_h
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
#include <wtf/unicode/Unicode.h>
@@ -38,8 +39,6 @@
namespace WebCore {
-class String;
-
// Common serializing methods. See: http://dev.w3.org/csswg/cssom/#common-serializing-idioms
void serializeCharacter(UChar32, Vector<UChar>& appendTo);
void serializeCharacterAsCodePoint(UChar32, Vector<UChar>& appendTo);
diff --git a/WebCore/css/CSSParser.cpp b/WebCore/css/CSSParser.cpp
index 645e354..a084474 100644
--- a/WebCore/css/CSSParser.cpp
+++ b/WebCore/css/CSSParser.cpp
@@ -1628,6 +1628,11 @@ bool CSSParser::parseValue(int propId, bool important)
validPrimitive = true;
break;
+ case CSSPropertyWebkitHyphenateLocale:
+ if (id == CSSValueAuto || value->unit == CSSPrimitiveValue::CSS_STRING)
+ validPrimitive = true;
+ break;
+
case CSSPropertyWebkitBorderFit:
if (id == CSSValueBorder || id == CSSValueLines)
validPrimitive = true;
diff --git a/WebCore/css/CSSPrimitiveValue.h b/WebCore/css/CSSPrimitiveValue.h
index a71c8c6..b11c7f0 100644
--- a/WebCore/css/CSSPrimitiveValue.h
+++ b/WebCore/css/CSSPrimitiveValue.h
@@ -24,6 +24,7 @@
#include "CSSValue.h"
#include "Color.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
@@ -34,7 +35,6 @@ class Pair;
class RGBColor;
class Rect;
class RenderStyle;
-class StringImpl;
struct Length;
diff --git a/WebCore/css/CSSPropertyNames.in b/WebCore/css/CSSPropertyNames.in
index 44216e0..1a79602 100644
--- a/WebCore/css/CSSPropertyNames.in
+++ b/WebCore/css/CSSPropertyNames.in
@@ -217,6 +217,7 @@ z-index
-webkit-font-smoothing
-webkit-highlight
-webkit-hyphenate-character
+-webkit-hyphenate-locale
-webkit-hyphens
-webkit-line-break
-webkit-line-clamp
diff --git a/WebCore/css/CSSSelector.cpp b/WebCore/css/CSSSelector.cpp
index facce83..03974d9 100644
--- a/WebCore/css/CSSSelector.cpp
+++ b/WebCore/css/CSSSelector.cpp
@@ -34,7 +34,7 @@
#include <wtf/Vector.h>
namespace WebCore {
-
+
using namespace HTMLNames;
class CSSSelectorBag : public Noncopyable {
@@ -713,8 +713,11 @@ String CSSSelector::selectorText() const
if (m_match == CSSSelector::None || !prefix.isNull() || localName != starAtom) {
if (prefix.isNull())
str = localName;
- else
- str = prefix + "|" + localName;
+ else {
+ str = prefix.string();
+ str.append("|");
+ str.append(localName);
+ }
}
const CSSSelector* cs = this;
@@ -746,8 +749,10 @@ String CSSSelector::selectorText() const
} else if (cs->hasAttribute()) {
str += "[";
const AtomicString& prefix = cs->attribute().prefix();
- if (!prefix.isNull())
- str += prefix + "|";
+ if (!prefix.isNull()) {
+ str.append(prefix);
+ str.append("|");
+ }
str += cs->attribute().localName();
switch (cs->m_match) {
case CSSSelector::Exact:
diff --git a/WebCore/css/CSSStyleSelector.cpp b/WebCore/css/CSSStyleSelector.cpp
index 6f64235..40b11d9 100644
--- a/WebCore/css/CSSStyleSelector.cpp
+++ b/WebCore/css/CSSStyleSelector.cpp
@@ -2517,7 +2517,7 @@ bool CSSStyleSelector::SelectorChecker::checkOneSelector(CSSSelector* sel, Eleme
break;
}
case CSSSelector::PseudoFocus:
- if (e && e->focused() && e->document()->frame()->selection()->isFocusedAndActive())
+ if (e && e->focused() && e->document()->frame() && e->document()->frame()->selection()->isFocusedAndActive())
return true;
break;
case CSSSelector::PseudoHover: {
@@ -5215,11 +5215,19 @@ void CSSStyleSelector::applyProperty(int id, CSSValue *value)
return;
}
case CSSPropertyWebkitHyphenateCharacter: {
- HANDLE_INHERIT_AND_INITIAL(hyphenateCharacter, HyphenateCharacter);
+ HANDLE_INHERIT_AND_INITIAL(hyphenationString, HyphenationString);
if (primitiveValue->getIdent() == CSSValueAuto)
- m_style->setHyphenateCharacter(nullAtom);
+ m_style->setHyphenationString(nullAtom);
else
- m_style->setHyphenateCharacter(primitiveValue->getStringValue());
+ m_style->setHyphenationString(primitiveValue->getStringValue());
+ return;
+ }
+ case CSSPropertyWebkitHyphenateLocale: {
+ HANDLE_INHERIT_AND_INITIAL(hyphenationLocale, HyphenationLocale);
+ if (primitiveValue->getIdent() == CSSValueAuto)
+ m_style->setHyphenationLocale(nullAtom);
+ else
+ m_style->setHyphenationLocale(primitiveValue->getStringValue());
return;
}
case CSSPropertyWebkitBorderFit: {
diff --git a/WebCore/css/MediaList.h b/WebCore/css/MediaList.h
index f1eb0c0..e91ca9d 100644
--- a/WebCore/css/MediaList.h
+++ b/WebCore/css/MediaList.h
@@ -22,6 +22,7 @@
#define MediaList_h
#include "StyleBase.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Vector.h>
@@ -30,7 +31,6 @@ namespace WebCore {
class CSSImportRule;
class CSSStyleSheet;
class MediaQuery;
-class String;
typedef int ExceptionCode;
diff --git a/WebCore/css/SVGCSSComputedStyleDeclaration.cpp b/WebCore/css/SVGCSSComputedStyleDeclaration.cpp
index 00cb308..410eede 100644
--- a/WebCore/css/SVGCSSComputedStyleDeclaration.cpp
+++ b/WebCore/css/SVGCSSComputedStyleDeclaration.cpp
@@ -46,6 +46,19 @@ static PassRefPtr<CSSPrimitiveValue> glyphOrientationToCSSPrimitiveValue(EGlyphO
}
}
+static PassRefPtr<CSSValue> strokeDashArrayToCSSValueList(const Vector<SVGLength>& dashes)
+{
+ if (dashes.isEmpty())
+ return CSSPrimitiveValue::createIdentifier(CSSValueNone);
+
+ RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
+ const Vector<SVGLength>::const_iterator end = dashes.end();
+ for (Vector<SVGLength>::const_iterator it = dashes.begin(); it != end; ++it)
+ list->append(SVGLength::toCSSPrimitiveValue(*it));
+
+ return list.release();
+}
+
PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSValue(int propertyID, EUpdateLayout updateLayout) const
{
Node* node = m_node.get();
@@ -122,7 +135,7 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSValue(int pro
case CSSPropertyFill:
return svgStyle->fillPaint();
case CSSPropertyKerning:
- return svgStyle->kerning();
+ return SVGLength::toCSSPrimitiveValue(svgStyle->kerning());
case CSSPropertyMarkerEnd:
if (!svgStyle->markerEndResource().isEmpty())
return CSSPrimitiveValue::create(svgStyle->markerEndResource(), CSSPrimitiveValue::CSS_URI);
@@ -138,11 +151,11 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSValue(int pro
case CSSPropertyStroke:
return svgStyle->strokePaint();
case CSSPropertyStrokeDasharray:
- return svgStyle->strokeDashArray();
+ return strokeDashArrayToCSSValueList(svgStyle->strokeDashArray());
case CSSPropertyStrokeDashoffset:
- return svgStyle->strokeDashOffset();
+ return SVGLength::toCSSPrimitiveValue(svgStyle->strokeDashOffset());
case CSSPropertyStrokeWidth:
- return svgStyle->strokeWidth();
+ return SVGLength::toCSSPrimitiveValue(svgStyle->strokeWidth());
case CSSPropertyBaselineShift: {
switch (svgStyle->baselineShift()) {
case BS_BASELINE:
@@ -152,7 +165,7 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSValue(int pro
case BS_SUB:
return CSSPrimitiveValue::createIdentifier(CSSValueSub);
case BS_LENGTH:
- return svgStyle->baselineShiftValue();
+ return SVGLength::toCSSPrimitiveValue(svgStyle->baselineShiftValue());
}
}
case CSSPropertyGlyphOrientationHorizontal:
diff --git a/WebCore/css/SVGCSSStyleSelector.cpp b/WebCore/css/SVGCSSStyleSelector.cpp
index 3b38890..b8cc4f7 100644
--- a/WebCore/css/SVGCSSStyleSelector.cpp
+++ b/WebCore/css/SVGCSSStyleSelector.cpp
@@ -153,7 +153,7 @@ void CSSStyleSelector::applySVGProperty(int id, CSSValue* value)
}
} else {
svgstyle->setBaselineShift(BS_LENGTH);
- svgstyle->setBaselineShiftValue(primitiveValue);
+ svgstyle->setBaselineShiftValue(SVGLength::fromCSSPrimitiveValue(primitiveValue));
}
break;
@@ -161,7 +161,7 @@ void CSSStyleSelector::applySVGProperty(int id, CSSValue* value)
case CSSPropertyKerning:
{
HANDLE_INHERIT_AND_INITIAL(kerning, Kerning);
- svgstyle->setKerning(primitiveValue);
+ svgstyle->setKerning(SVGLength::fromCSSPrimitiveValue(primitiveValue));
break;
}
case CSSPropertyDominantBaseline:
@@ -247,21 +247,35 @@ void CSSStyleSelector::applySVGProperty(int id, CSSValue* value)
{
HANDLE_INHERIT_AND_INITIAL(strokeWidth, StrokeWidth)
if (primitiveValue)
- svgstyle->setStrokeWidth(primitiveValue);
+ svgstyle->setStrokeWidth(SVGLength::fromCSSPrimitiveValue(primitiveValue));
break;
}
case CSSPropertyStrokeDasharray:
{
HANDLE_INHERIT_AND_INITIAL(strokeDashArray, StrokeDashArray)
- if (value->isValueList())
- svgstyle->setStrokeDashArray(static_cast<CSSValueList*>(value));
+ if (!value->isValueList())
+ break;
+
+ CSSValueList* dashes = static_cast<CSSValueList*>(value);
+
+ Vector<SVGLength> array;
+ size_t length = dashes->length();
+ for (size_t i = 0; i < length; ++i) {
+ CSSPrimitiveValue* dash = static_cast<CSSPrimitiveValue*>(dashes->itemWithoutBoundsCheck(i));
+ if (!dash)
+ continue;
+
+ array.append(SVGLength::fromCSSPrimitiveValue(dash));
+ }
+
+ svgstyle->setStrokeDashArray(array);
break;
}
case CSSPropertyStrokeDashoffset:
{
HANDLE_INHERIT_AND_INITIAL(strokeDashOffset, StrokeDashOffset)
if (primitiveValue)
- svgstyle->setStrokeDashOffset(primitiveValue);
+ svgstyle->setStrokeDashOffset(SVGLength::fromCSSPrimitiveValue(primitiveValue));
break;
}
case CSSPropertyFillOpacity:
diff --git a/WebCore/css/StyleBase.h b/WebCore/css/StyleBase.h
index 521ee5d..a53b2c5 100644
--- a/WebCore/css/StyleBase.h
+++ b/WebCore/css/StyleBase.h
@@ -23,11 +23,11 @@
#ifndef StyleBase_h
#define StyleBase_h
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
namespace WebCore {
- class String;
class StyleSheet;
class KURL;
diff --git a/WebCore/css/StyleMedia.cpp b/WebCore/css/StyleMedia.cpp
index 6cb662f..8971d35 100644
--- a/WebCore/css/StyleMedia.cpp
+++ b/WebCore/css/StyleMedia.cpp
@@ -56,7 +56,8 @@ bool StyleMedia::matchMedium(const String& query) const
Document* document = m_frame->document();
ASSERT(document);
Element* documentElement = document->documentElement();
- ASSERT(documentElement);
+ if (!documentElement)
+ return false;
CSSStyleSelector* styleSelector = document->styleSelector();
if (!styleSelector)
diff --git a/WebCore/css/StyleSheetList.h b/WebCore/css/StyleSheetList.h
index ecdc1cf..a486511 100644
--- a/WebCore/css/StyleSheetList.h
+++ b/WebCore/css/StyleSheetList.h
@@ -21,6 +21,7 @@
#ifndef StyleSheetList_h
#define StyleSheetList_h
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Vector.h>
@@ -30,7 +31,6 @@ namespace WebCore {
class Document;
class HTMLStyleElement;
class StyleSheet;
-class String;
typedef Vector<RefPtr<StyleSheet> > StyleSheetVector;
diff --git a/WebCore/css/WebKitCSSKeyframesRule.h b/WebCore/css/WebKitCSSKeyframesRule.h
index f58406f..2836942 100644
--- a/WebCore/css/WebKitCSSKeyframesRule.h
+++ b/WebCore/css/WebKitCSSKeyframesRule.h
@@ -27,6 +27,7 @@
#define WebKitCSSKeyframesRule_h
#include "CSSRule.h"
+#include <wtf/Forward.h>
#include <wtf/RefPtr.h>
#include "AtomicString.h"
@@ -34,7 +35,6 @@ namespace WebCore {
class CSSRuleList;
class WebKitCSSKeyframeRule;
-class String;
typedef int ExceptionCode;
diff --git a/WebCore/css/mathml.css b/WebCore/css/mathml.css
index ca9d7b0..fd125c0 100644
--- a/WebCore/css/mathml.css
+++ b/WebCore/css/mathml.css
@@ -1,7 +1,7 @@
@namespace "http://www.w3.org/1998/Math/MathML";
math {
- font-family: Symbol, "Times New Roman";
+ font-family: STIXGeneral, Symbol, "Times New Roman", sans-serif;
display: inline-block;
padding: 0px;
margin: 0px;
@@ -29,7 +29,7 @@ mrow, mfenced {
padding-right: 1px;
}
-mi{
+mi {
font-style: italic;
padding-right: 0.1em;
}
@@ -94,15 +94,35 @@ math > mo, mrow > mo, mfenced > mo {
padding-right: 0.05em;
}
-math[mathsize="small"], mstyle[mathsize="small"], mo[mathsize="small"], mn[mathsize="small"], mi[mathsize="small"], mtext[mathsize="small"], mspace[mathsize="small"], ms[mathsize="small"]{
+math[mathvariant="normal"], mstyle[mathvariant="normal"], mo[mathvariant="normal"], mn[mathvariant="normal"], mi[mathvariant="normal"], mtext[mathvariant="normal"], mspace[mathvariant="normal"], ms[mathvariant="normal"] {
+ font-style: normal;
+ font-weight: normal;
+}
+
+math[mathvariant="bold"], mstyle[mathvariant="bold"], mo[mathvariant="bold"], mn[mathvariant="bold"], mi[mathvariant="bold"], mtext[mathvariant="bold"], mspace[mathvariant="bold"], ms[mathvariant="bold"] {
+ font-style: normal;
+ font-weight: bold;
+}
+
+math[mathvariant="italic"], mstyle[mathvariant="italic"], mo[mathvariant="italic"], mn[mathvariant="italic"], mi[mathvariant="italic"], mtext[mathvariant="italic"], mspace[mathvariant="italic"], ms[mathvariant="italic"] {
+ font-style: italic;
+ font-weight: normal;
+}
+
+math[mathvariant="bold-italic"], mstyle[mathvariant="bold-italic"], mo[mathvariant="bold-italic"], mn[mathvariant="bold-italic"], mi[mathvariant="bold-italic"], mtext[mathvariant="bold-italic"], mspace[mathvariant="bold-italic"], ms[mathvariant="bold-italic"] {
+ font-weight: bold;
+ font-style: italic;
+}
+
+math[mathsize="small"], mstyle[mathsize="small"], mo[mathsize="small"], mn[mathsize="small"], mi[mathsize="small"], mtext[mathsize="small"], mspace[mathsize="small"], ms[mathsize="small"] {
font-size: 0.75em;
}
-math[mathsize="normal"], mstyle[mathsize="normal"], mo[mathsize="normal"], mn[mathsize="normal"], mi[mathsize="normal"], mtext[mathsize="normal"], mspace[mathsize="normal"], ms[mathsize="normal"]{
+math[mathsize="normal"], mstyle[mathsize="normal"], mo[mathsize="normal"], mn[mathsize="normal"], mi[mathsize="normal"], mtext[mathsize="normal"], mspace[mathsize="normal"], ms[mathsize="normal"] {
font-size: 1em;
}
-math[mathsize="big"], mstyle[mathsize="big"], mo[mathsize="big"], mn[mathsize="big"], mi[mathsize="big"], mtext[mathsize="big"], mspace[mathsize="big"], ms[mathsize="big"]{
+math[mathsize="big"], mstyle[mathsize="big"], mo[mathsize="big"], mn[mathsize="big"], mi[mathsize="big"], mtext[mathsize="big"], mspace[mathsize="big"], ms[mathsize="big"] {
font-size: 1.5em;
}
@@ -113,8 +133,12 @@ annotation, annotation-xml {
mphantom {
visibility: hidden;
}
+
merror {
outline: solid thin red;
+ font-weight: bold;
+ font-family: sans-serif;
+ background-color: lightYellow;
}
msqrt {
@@ -149,9 +173,11 @@ mtable {
text-align: center;
vertical-align: -40%;
}
+
mtr {
display: table-row;
}
+
mtd {
display: table-cell;
padding: 0 0.5ex;
@@ -164,33 +190,43 @@ mtable[columnalign="left"], mtr[columnalign="left"], mtd[columnalign="left"] {
mtable[columnalign="right"], mtr[columnalign="right"], mtd[columnalign="right"] {
text-align: right;
}
+
mtable[rowalign="top"] mtd, mtable mtr[rowalign="top"] mtd, mtable mtr mtd[rowalign="top"] {
vertical-align: top;
}
+
mtable[rowalign="bottom"] mtd, mtable mtr[rowalign="bottom"] mtd, mtable mtr mtd[rowalign="bottom"] {
vertical-align: bottom;
}
+
mtable[rowalign="center"] mtd, mtable mtr[rowalign="center"] mtd, mtable mtr mtd[rowalign="center"] {
vertical-align: middle;
}
+
mtable[frame="solid"] {
border: solid thin;
}
+
mtable[frame="dashed"] {
border: dashed thin;
}
+
mtable[rowlines="solid"], mtable[rowlines="dashed"], mtable[columnlines="solid"], mtable[columnlines="dashed"] {
border-collapse: collapse;
}
+
mtable[rowlines="solid"] > mtr + mtr {
border-top: solid thin;
}
+
mtable[rowlines="dashed"] > mtr + mtr {
border-top: dashed thin;
}
+
mtable[columnlines="solid"] > mtr > mtd + mtd {
border-left: solid thin;
}
+
mtable[columnlines="dashed"] > mtr > mtd + mtd {
border-left: dashed thin;
}
diff --git a/WebCore/dom/ActiveDOMObject.cpp b/WebCore/dom/ActiveDOMObject.cpp
index 9d36065..31afe98 100644
--- a/WebCore/dom/ActiveDOMObject.cpp
+++ b/WebCore/dom/ActiveDOMObject.cpp
@@ -37,22 +37,14 @@ ActiveDOMObject::ActiveDOMObject(ScriptExecutionContext* scriptExecutionContext,
: m_scriptExecutionContext(scriptExecutionContext)
, m_pendingActivityCount(0)
{
-#if ENABLE(WORKERS)
- ASSERT((m_scriptExecutionContext->isDocument() && isMainThread())
- || (m_scriptExecutionContext->isWorkerContext() && currentThread() == static_cast<WorkerContext*>(m_scriptExecutionContext)->thread()->threadID()));
-#endif
-
+ ASSERT(m_scriptExecutionContext->isContextThread());
m_scriptExecutionContext->createdActiveDOMObject(this, upcastPointer);
}
ActiveDOMObject::~ActiveDOMObject()
{
if (m_scriptExecutionContext) {
-#if ENABLE(WORKERS)
- ASSERT((m_scriptExecutionContext->isDocument() && isMainThread())
- || (m_scriptExecutionContext->isWorkerContext() && currentThread() == static_cast<WorkerContext*>(m_scriptExecutionContext)->thread()->threadID()));
-#endif
-
+ ASSERT(m_scriptExecutionContext->isContextThread());
m_scriptExecutionContext->destroyedActiveDOMObject(this);
}
}
diff --git a/WebCore/dom/AsyncScriptRunner.cpp b/WebCore/dom/AsyncScriptRunner.cpp
new file mode 100644
index 0000000..96036a1
--- /dev/null
+++ b/WebCore/dom/AsyncScriptRunner.cpp
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2010 Google, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "AsyncScriptRunner.h"
+
+#include "CachedScript.h"
+#include "Element.h"
+#include "ScriptElement.h"
+
+namespace WebCore {
+
+AsyncScriptRunner::AsyncScriptRunner()
+ : m_timer(this, &AsyncScriptRunner::timerFired)
+{
+}
+
+AsyncScriptRunner::~AsyncScriptRunner()
+{
+ for (size_t i = 0; i < m_scriptsToExecuteSoon.size(); ++i)
+ m_scriptsToExecuteSoon[i].first->element()->deref(); // Balances ref() in executeScriptSoon().
+}
+
+void AsyncScriptRunner::executeScriptSoon(ScriptElementData* data, CachedResourceHandle<CachedScript> cachedScript)
+{
+ ASSERT_ARG(data, data);
+
+ Element* element = data->element();
+ ASSERT(element);
+ ASSERT(element->inDocument());
+
+ m_scriptsToExecuteSoon.append(make_pair(data, cachedScript));
+ element->ref(); // Balanced by deref()s in timerFired() and dtor.
+ if (!m_timer.isActive())
+ m_timer.startOneShot(0);
+}
+
+void AsyncScriptRunner::suspend()
+{
+ m_timer.stop();
+}
+
+void AsyncScriptRunner::resume()
+{
+ if (hasPendingScripts())
+ m_timer.startOneShot(0);
+}
+
+void AsyncScriptRunner::timerFired(Timer<AsyncScriptRunner>* timer)
+{
+ ASSERT_UNUSED(timer, timer == &m_timer);
+
+ Vector<pair<ScriptElementData*, CachedResourceHandle<CachedScript> > > scripts;
+ scripts.swap(m_scriptsToExecuteSoon);
+ size_t size = scripts.size();
+ for (size_t i = 0; i < size; ++i) {
+ scripts[i].first->execute(scripts[i].second.get());
+ scripts[i].first->element()->deref(); // Balances ref() in executeScriptSoon().
+ }
+}
+
+}
diff --git a/WebCore/dom/AsyncScriptRunner.h b/WebCore/dom/AsyncScriptRunner.h
new file mode 100644
index 0000000..8b75e06
--- /dev/null
+++ b/WebCore/dom/AsyncScriptRunner.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2010 Google, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef AsyncScriptRunner_h
+#define AsyncScriptRunner_h
+
+#include "CachedResourceHandle.h"
+#include "Timer.h"
+#include <wtf/Noncopyable.h>
+#include <wtf/PassRefPtr.h>
+#include <wtf/Vector.h>
+
+namespace WebCore {
+
+class CachedScript;
+class ScriptElementData;
+
+class AsyncScriptRunner : public Noncopyable {
+public:
+ static PassOwnPtr<AsyncScriptRunner> create() { return new AsyncScriptRunner(); }
+ ~AsyncScriptRunner();
+
+ void executeScriptSoon(ScriptElementData*, CachedResourceHandle<CachedScript>);
+ bool hasPendingScripts() const { return !m_scriptsToExecuteSoon.isEmpty(); }
+ void suspend();
+ void resume();
+
+private:
+ AsyncScriptRunner();
+
+ void timerFired(Timer<AsyncScriptRunner>*);
+
+ Vector<std::pair<ScriptElementData*, CachedResourceHandle<CachedScript> > > m_scriptsToExecuteSoon;
+ Timer<AsyncScriptRunner> m_timer;
+};
+
+}
+
+#endif
diff --git a/WebCore/dom/CheckedRadioButtons.h b/WebCore/dom/CheckedRadioButtons.h
index 5a57955..de7b712 100644
--- a/WebCore/dom/CheckedRadioButtons.h
+++ b/WebCore/dom/CheckedRadioButtons.h
@@ -21,13 +21,12 @@
#ifndef CheckedRadioButtons_h
#define CheckedRadioButtons_h
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/OwnPtr.h>
namespace WebCore {
-class AtomicString;
-class AtomicStringImpl;
class HTMLInputElement;
class HTMLFormControlElement;
diff --git a/WebCore/dom/DOMImplementation.h b/WebCore/dom/DOMImplementation.h
index c3d5658..a20f7d2 100644
--- a/WebCore/dom/DOMImplementation.h
+++ b/WebCore/dom/DOMImplementation.h
@@ -24,6 +24,7 @@
#ifndef DOMImplementation_h
#define DOMImplementation_h
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -35,7 +36,6 @@ class DocumentType;
class Frame;
class HTMLDocument;
class KURL;
-class String;
typedef int ExceptionCode;
diff --git a/WebCore/dom/DeviceMotionClient.h b/WebCore/dom/DeviceMotionClient.h
new file mode 100644
index 0000000..d19f92f
--- /dev/null
+++ b/WebCore/dom/DeviceMotionClient.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DeviceMotionClient_h
+#define DeviceMotionClient_h
+
+namespace WebCore {
+
+class DeviceMotionController;
+class DeviceMotionData;
+
+class DeviceMotionClient {
+public:
+ virtual ~DeviceMotionClient() {}
+ virtual void setController(DeviceMotionController*) = 0;
+ virtual void startUpdating() = 0;
+ virtual void stopUpdating() = 0;
+ virtual DeviceMotionData* currentDeviceMotion() const = 0;
+};
+
+} // namespace WebCore
+
+#endif // DeviceMotionClient_h
diff --git a/WebCore/dom/DeviceMotionController.cpp b/WebCore/dom/DeviceMotionController.cpp
new file mode 100644
index 0000000..73b948e
--- /dev/null
+++ b/WebCore/dom/DeviceMotionController.cpp
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "DeviceMotionController.h"
+
+#include "DeviceMotionClient.h"
+#include "DeviceMotionData.h"
+#include "DeviceMotionEvent.h"
+
+namespace WebCore {
+
+DeviceMotionController::DeviceMotionController(DeviceMotionClient* client)
+ : m_client(client)
+ , m_timer(this, &DeviceMotionController::timerFired)
+{
+ ASSERT(m_client);
+ m_client->setController(this);
+}
+
+void DeviceMotionController::timerFired(Timer<DeviceMotionController>* timer)
+{
+ ASSERT_UNUSED(timer, timer == &m_timer);
+ ASSERT(!m_client || m_client->currentDeviceMotion());
+ m_timer.stop();
+
+ RefPtr<DeviceMotionData> deviceMotionData = m_client ? m_client->currentDeviceMotion() : DeviceMotionData::create();
+ RefPtr<DeviceMotionEvent> event = DeviceMotionEvent::create(eventNames().devicemotionEvent, deviceMotionData.get());
+
+ Vector<DOMWindow*> listenersVector;
+ copyToVector(m_newListeners, listenersVector);
+ m_newListeners.clear();
+ for (size_t i = 0; i < listenersVector.size(); ++i)
+ listenersVector[i]->dispatchEvent(event);
+}
+
+void DeviceMotionController::addListener(DOMWindow* window)
+{
+ // If no client is present or the client already has motion data,
+ // immediately trigger an asynchronous response.
+ if (!m_client || m_client->currentDeviceMotion()) {
+ m_newListeners.add(window);
+ if (!m_timer.isActive())
+ m_timer.startOneShot(0);
+ }
+
+ bool wasEmpty = m_listeners.isEmpty();
+ m_listeners.add(window);
+ if (wasEmpty && m_client)
+ m_client->startUpdating();
+}
+
+void DeviceMotionController::removeListener(DOMWindow* window)
+{
+ m_listeners.remove(window);
+ m_newListeners.remove(window);
+ if (m_listeners.isEmpty() && m_client)
+ m_client->stopUpdating();
+}
+
+void DeviceMotionController::removeAllListeners(DOMWindow* window)
+{
+ // May be called with a DOMWindow that's not a listener.
+ if (!m_listeners.contains(window))
+ return;
+
+ m_listeners.removeAll(window);
+ m_newListeners.remove(window);
+ if (m_listeners.isEmpty() && m_client)
+ m_client->stopUpdating();
+}
+
+void DeviceMotionController::didChangeDeviceMotion(DeviceMotionData* deviceMotionData)
+{
+ RefPtr<DeviceMotionEvent> event = DeviceMotionEvent::create(eventNames().devicemotionEvent, deviceMotionData);
+ Vector<DOMWindow*> listenersVector;
+ copyToVector(m_listeners, listenersVector);
+ for (size_t i = 0; i < listenersVector.size(); ++i)
+ listenersVector[i]->dispatchEvent(event);
+}
+
+} // namespace WebCore
diff --git a/WebCore/dom/DeviceMotionController.h b/WebCore/dom/DeviceMotionController.h
new file mode 100644
index 0000000..2670e04
--- /dev/null
+++ b/WebCore/dom/DeviceMotionController.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DeviceMotionController_h
+#define DeviceMotionController_h
+
+#include "DOMWindow.h"
+#include "Timer.h"
+#include <wtf/HashCountedSet.h>
+
+namespace WebCore {
+
+class DeviceMotionData;
+class DeviceMotionClient;
+
+class DeviceMotionController {
+public:
+ DeviceMotionController(DeviceMotionClient*);
+
+ void addListener(DOMWindow*);
+ void removeListener(DOMWindow*);
+ void removeAllListeners(DOMWindow*);
+
+ void didChangeDeviceMotion(DeviceMotionData*);
+
+private:
+ void timerFired(Timer<DeviceMotionController>*);
+
+ DeviceMotionClient* m_client;
+ typedef HashCountedSet<DOMWindow*> ListenersCountedSet;
+ ListenersCountedSet m_listeners;
+ typedef HashSet<DOMWindow*> ListenersSet;
+ ListenersSet m_newListeners;
+ Timer<DeviceMotionController> m_timer;
+};
+
+} // namespace WebCore
+
+#endif // DeviceMotionController_h
diff --git a/WebCore/dom/DeviceMotionData.cpp b/WebCore/dom/DeviceMotionData.cpp
new file mode 100644
index 0000000..cf4b466
--- /dev/null
+++ b/WebCore/dom/DeviceMotionData.cpp
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "DeviceMotionData.h"
+
+namespace WebCore {
+
+PassRefPtr<DeviceMotionData> DeviceMotionData::create()
+{
+ return adoptRef(new DeviceMotionData);
+}
+
+PassRefPtr<DeviceMotionData> DeviceMotionData::create(bool canProvideXAcceleration, double xAcceleration,
+ bool canProvideYAcceleration, double yAcceleration,
+ bool canProvideZAcceleration, double zAcceleration,
+ bool canProvideXRotationRate, double xRotationRate,
+ bool canProvideYRotationRate, double yRotationRate,
+ bool canProvideZRotationRate, double zRotationRate,
+ bool canProvideInterval, double interval)
+{
+ return adoptRef(new DeviceMotionData(canProvideXAcceleration, xAcceleration,
+ canProvideYAcceleration, yAcceleration,
+ canProvideZAcceleration, zAcceleration,
+ canProvideXRotationRate, xRotationRate,
+ canProvideYRotationRate, yRotationRate,
+ canProvideZRotationRate, zRotationRate,
+ canProvideInterval, interval));
+}
+
+DeviceMotionData::DeviceMotionData()
+ : m_canProvideXAcceleration(false)
+ , m_canProvideYAcceleration(false)
+ , m_canProvideZAcceleration(false)
+ , m_canProvideXRotationRate(false)
+ , m_canProvideYRotationRate(false)
+ , m_canProvideZRotationRate(false)
+ , m_canProvideInterval(false)
+{
+}
+
+DeviceMotionData::DeviceMotionData(bool canProvideXAcceleration, double xAcceleration,
+ bool canProvideYAcceleration, double yAcceleration,
+ bool canProvideZAcceleration, double zAcceleration,
+ bool canProvideXRotationRate, double xRotationRate,
+ bool canProvideYRotationRate, double yRotationRate,
+ bool canProvideZRotationRate, double zRotationRate,
+ bool canProvideInterval, double interval)
+ : m_canProvideXAcceleration(canProvideXAcceleration)
+ , m_canProvideYAcceleration(canProvideYAcceleration)
+ , m_canProvideZAcceleration(canProvideZAcceleration)
+ , m_canProvideXRotationRate(canProvideXRotationRate)
+ , m_canProvideYRotationRate(canProvideYRotationRate)
+ , m_canProvideZRotationRate(canProvideZRotationRate)
+ , m_canProvideInterval(canProvideInterval)
+ , m_xAcceleration(xAcceleration)
+ , m_yAcceleration(yAcceleration)
+ , m_zAcceleration(zAcceleration)
+ , m_xRotationRate(xRotationRate)
+ , m_yRotationRate(yRotationRate)
+ , m_zRotationRate(zRotationRate)
+ , m_interval(interval)
+{
+}
+
+} // namespace WebCore
diff --git a/WebCore/dom/DeviceMotionData.h b/WebCore/dom/DeviceMotionData.h
new file mode 100644
index 0000000..cd90246
--- /dev/null
+++ b/WebCore/dom/DeviceMotionData.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DeviceMotionData_h
+#define DeviceMotionData_h
+
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class DeviceMotionData : public RefCounted<DeviceMotionData> {
+public:
+ static PassRefPtr<DeviceMotionData> create();
+ static PassRefPtr<DeviceMotionData> create(bool canProvideXAcceleration, double xAcceleration,
+ bool canProvideYAcceleration, double yAcceleration,
+ bool canProvideZAcceleration, double zAcceleration,
+ bool canProvideXRotationRate, double xRotationRate,
+ bool canProvideYRotationRate, double yRotationRate,
+ bool canProvideZRotationRate, double zRotationRate,
+ bool canProvideInterval, double interval);
+
+ double xAcceleration() const { return m_xAcceleration; }
+ double yAcceleration() const { return m_yAcceleration; }
+ double zAcceleration() const { return m_zAcceleration; }
+ double xRotationRate() const { return m_xRotationRate; }
+ double yRotationRate() const { return m_yRotationRate; }
+ double zRotationRate() const { return m_zRotationRate; }
+ double interval() const { return m_interval; }
+
+ bool canProvideXAcceleration() const { return m_canProvideXAcceleration; }
+ bool canProvideYAcceleration() const { return m_canProvideYAcceleration; }
+ bool canProvideZAcceleration() const { return m_canProvideZAcceleration; }
+ bool canProvideXRotationRate() const { return m_canProvideXRotationRate; }
+ bool canProvideYRotationRate() const { return m_canProvideYRotationRate; }
+ bool canProvideZRotationRate() const { return m_canProvideZRotationRate; }
+ bool canProvideInterval() const { return m_canProvideInterval; }
+
+private:
+ DeviceMotionData();
+ DeviceMotionData(bool canProvideXAcceleration, double xAcceleration,
+ bool canProvideYAcceleration, double yAcceleration,
+ bool canProvideZAcceleration, double zAcceleration,
+ bool canProvideXRotationRate, double xRotationRate,
+ bool canProvideYRotationRate, double yRotationRate,
+ bool canProvideZRotationRate, double zRotationRate,
+ bool canProvideInterval, double interval);
+
+ bool m_canProvideXAcceleration;
+ bool m_canProvideYAcceleration;
+ bool m_canProvideZAcceleration;
+ bool m_canProvideXRotationRate;
+ bool m_canProvideYRotationRate;
+ bool m_canProvideZRotationRate;
+ bool m_canProvideInterval;
+
+ double m_xAcceleration;
+ double m_yAcceleration;
+ double m_zAcceleration;
+ double m_xRotationRate;
+ double m_yRotationRate;
+ double m_zRotationRate;
+ double m_interval;
+};
+
+} // namespace WebCore
+
+#endif // DeviceMotionData_h
diff --git a/WebCore/dom/DeviceMotionEvent.cpp b/WebCore/dom/DeviceMotionEvent.cpp
new file mode 100644
index 0000000..860cca2
--- /dev/null
+++ b/WebCore/dom/DeviceMotionEvent.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "DeviceMotionEvent.h"
+
+#include "DeviceMotionData.h"
+
+namespace WebCore {
+
+DeviceMotionEvent::~DeviceMotionEvent()
+{
+}
+
+DeviceMotionEvent::DeviceMotionEvent()
+ : m_deviceMotionData(DeviceMotionData::create())
+{
+}
+
+DeviceMotionEvent::DeviceMotionEvent(const AtomicString& eventType, DeviceMotionData* deviceMotionData)
+ : Event(eventType, false, false) // Can't bubble, not cancelable
+ , m_deviceMotionData(deviceMotionData)
+{
+}
+
+void DeviceMotionEvent::initDeviceMotionEvent(const AtomicString& type, bool bubbles, bool cancelable, DeviceMotionData* deviceMotionData)
+{
+ if (dispatched())
+ return;
+
+ initEvent(type, bubbles, cancelable);
+ m_deviceMotionData = deviceMotionData;
+}
+
+} // namespace WebCore
diff --git a/WebCore/dom/DeviceMotionEvent.h b/WebCore/dom/DeviceMotionEvent.h
new file mode 100644
index 0000000..f32c93b
--- /dev/null
+++ b/WebCore/dom/DeviceMotionEvent.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DeviceMotionEvent_h
+#define DeviceMotionEvent_h
+
+#include "Event.h"
+
+namespace WebCore {
+
+class DeviceMotionData;
+
+class DeviceMotionEvent : public Event {
+public:
+ ~DeviceMotionEvent();
+ static PassRefPtr<DeviceMotionEvent> create()
+ {
+ return adoptRef(new DeviceMotionEvent);
+ }
+ static PassRefPtr<DeviceMotionEvent> create(const AtomicString& eventType, DeviceMotionData* deviceMotionData)
+ {
+ return adoptRef(new DeviceMotionEvent(eventType, deviceMotionData));
+ }
+
+ void initDeviceMotionEvent(const AtomicString& type, bool bubbles, bool cancelable, DeviceMotionData*);
+
+ virtual bool isDeviceMotionEvent() const { return true; }
+
+ DeviceMotionData* deviceMotionData() const { return m_deviceMotionData.get(); }
+
+private:
+ DeviceMotionEvent();
+ DeviceMotionEvent(const AtomicString& eventType, DeviceMotionData*);
+
+ RefPtr<DeviceMotionData> m_deviceMotionData;
+};
+
+} // namespace WebCore
+
+#endif // DeviceMotionEvent_h
diff --git a/WebCore/dom/DeviceMotionEvent.idl b/WebCore/dom/DeviceMotionEvent.idl
new file mode 100644
index 0000000..97e8e71
--- /dev/null
+++ b/WebCore/dom/DeviceMotionEvent.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module core {
+
+ interface [
+ Conditional=DEVICE_ORIENTATION
+ ] DeviceMotionEvent : Event {
+ readonly attribute [Custom] double xAcceleration;
+ readonly attribute [Custom] double yAcceleration;
+ readonly attribute [Custom] double zAcceleration;
+ readonly attribute [Custom] double xRotationRate;
+ readonly attribute [Custom] double yRotationRate;
+ readonly attribute [Custom] double zRotationRate;
+ readonly attribute [Custom] double interval;
+ [Custom] void initDeviceMotionEvent(in DOMString type, in boolean bubbles, in boolean cancelable, in double xAcceleration, in double yAcceleration, in double zAcceleration, in double xRotationRate, in double yRotationRate, in double zRotationRate, in double interval);
+ };
+
+}
diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
index 8447f22..539d43f 100644
--- a/WebCore/dom/Document.cpp
+++ b/WebCore/dom/Document.cpp
@@ -28,6 +28,7 @@
#include "AXObjectCache.h"
#include "AnimationController.h"
+#include "AsyncScriptRunner.h"
#include "Attr.h"
#include "Attribute.h"
#include "CDATASection.h"
@@ -44,6 +45,7 @@
#include "CustomEvent.h"
#include "DOMImplementation.h"
#include "DOMWindow.h"
+#include "DeviceMotionEvent.h"
#include "DeviceOrientationEvent.h"
#include "DocLoader.h"
#include "DocumentFragment.h"
@@ -77,10 +79,8 @@
#include "HTMLMapElement.h"
#include "HTMLNameCollection.h"
#include "HTMLNames.h"
-#include "LegacyHTMLTreeBuilder.h"
#include "HTMLStyleElement.h"
#include "HTMLTitleElement.h"
-#include "LegacyHTMLDocumentParser.h"
#include "HTTPParsers.h"
#include "HistoryItem.h"
#include "HitTestRequest.h"
@@ -89,6 +89,8 @@
#include "InspectorController.h"
#include "InspectorTimelineAgent.h"
#include "KeyboardEvent.h"
+#include "LegacyHTMLDocumentParser.h"
+#include "LegacyHTMLTreeBuilder.h"
#include "Logging.h"
#include "MessageEvent.h"
#include "MouseEvent.h"
@@ -134,10 +136,10 @@
#include "WebKitAnimationEvent.h"
#include "WebKitTransitionEvent.h"
#include "WheelEvent.h"
+#include "XMLDocumentParser.h"
#include "XMLHttpRequest.h"
#include "XMLNSNames.h"
#include "XMLNames.h"
-#include "XMLDocumentParser.h"
#include "htmlediting.h"
#include <wtf/CurrentTime.h>
#include <wtf/HashFunctions.h>
@@ -172,8 +174,8 @@
#include "SVGDocumentExtensions.h"
#include "SVGElementFactory.h"
#include "SVGNames.h"
-#include "SVGZoomEvent.h"
#include "SVGStyleElement.h"
+#include "SVGZoomEvent.h"
#endif
#if PLATFORM(ANDROID)
@@ -319,12 +321,12 @@ static Widget* widgetForNode(Node* focusedNode)
return toRenderWidget(renderer)->widget();
}
-static bool acceptsEditingFocus(Node *node)
+static bool acceptsEditingFocus(Node* node)
{
ASSERT(node);
ASSERT(node->isContentEditable());
- Node *root = node->rootEditableElement();
+ Node* root = node->rootEditableElement();
Frame* frame = node->document()->frame();
if (!frame || !root)
return false;
@@ -376,7 +378,7 @@ private:
Document::Document(Frame* frame, const KURL& url, bool isXHTML, bool isHTML)
: ContainerNode(0)
- , m_domtree_version(0)
+ , m_domTreeVersion(0)
, m_styleSheets(StyleSheetList::create(this))
, m_styleRecalcTimer(this, &Document::styleRecalcTimerFired)
, m_frameElementsShouldIgnoreScrolling(false)
@@ -390,7 +392,7 @@ Document::Document(Frame* frame, const KURL& url, bool isXHTML, bool isHTML)
, m_startTime(currentTime())
, m_overMinimumLayoutThreshold(false)
, m_extraLayoutDelay(0)
- , m_executeScriptSoonTimer(this, &Document::executeScriptSoonTimerFired)
+ , m_asyncScriptRunner(AsyncScriptRunner::create())
, m_xmlVersion("1.0")
, m_xmlStandalone(false)
#if ENABLE(XBL)
@@ -485,7 +487,7 @@ Document::Document(Frame* frame, const KURL& url, bool isXHTML, bool isHTML)
static int docID = 0;
m_docID = docID++;
#if ENABLE(XHTMLMP)
- m_shouldProcessNoScriptElement = m_frame && m_frame->script()->canExecuteScripts(NotAboutToExecuteScript);
+ m_shouldProcessNoScriptElement = !(m_frame && m_frame->script()->canExecuteScripts(NotAboutToExecuteScript));
#endif
}
@@ -541,8 +543,7 @@ Document::~Document()
ASSERT(m_ranges.isEmpty());
ASSERT(!m_styleRecalcTimer.isActive());
- for (size_t i = 0; i < m_scriptsToExecuteSoon.size(); ++i)
- m_scriptsToExecuteSoon[i].first->element()->deref(); // Balances ref() in executeScriptSoon().
+ m_asyncScriptRunner.clear();
removeAllEventListeners();
@@ -754,75 +755,75 @@ PassRefPtr<Node> Document::importNode(Node* importedNode, bool deep, ExceptionCo
}
switch (importedNode->nodeType()) {
- case TEXT_NODE:
- return createTextNode(importedNode->nodeValue());
- case CDATA_SECTION_NODE:
- return createCDATASection(importedNode->nodeValue(), ec);
- case ENTITY_REFERENCE_NODE:
- return createEntityReference(importedNode->nodeName(), ec);
- case PROCESSING_INSTRUCTION_NODE:
- return createProcessingInstruction(importedNode->nodeName(), importedNode->nodeValue(), ec);
- case COMMENT_NODE:
- return createComment(importedNode->nodeValue());
- case ELEMENT_NODE: {
- Element* oldElement = static_cast<Element*>(importedNode);
- RefPtr<Element> newElement = createElementNS(oldElement->namespaceURI(), oldElement->tagQName().toString(), ec);
-
- if (ec)
- return 0;
-
- NamedNodeMap* attrs = oldElement->attributes(true);
- if (attrs) {
- unsigned length = attrs->length();
- for (unsigned i = 0; i < length; i++) {
- Attribute* attr = attrs->attributeItem(i);
- newElement->setAttribute(attr->name(), attr->value().impl(), ec);
- if (ec)
- return 0;
- }
+ case TEXT_NODE:
+ return createTextNode(importedNode->nodeValue());
+ case CDATA_SECTION_NODE:
+ return createCDATASection(importedNode->nodeValue(), ec);
+ case ENTITY_REFERENCE_NODE:
+ return createEntityReference(importedNode->nodeName(), ec);
+ case PROCESSING_INSTRUCTION_NODE:
+ return createProcessingInstruction(importedNode->nodeName(), importedNode->nodeValue(), ec);
+ case COMMENT_NODE:
+ return createComment(importedNode->nodeValue());
+ case ELEMENT_NODE: {
+ Element* oldElement = static_cast<Element*>(importedNode);
+ RefPtr<Element> newElement = createElementNS(oldElement->namespaceURI(), oldElement->tagQName().toString(), ec);
+
+ if (ec)
+ return 0;
+
+ NamedNodeMap* attrs = oldElement->attributes(true);
+ if (attrs) {
+ unsigned length = attrs->length();
+ for (unsigned i = 0; i < length; i++) {
+ Attribute* attr = attrs->attributeItem(i);
+ newElement->setAttribute(attr->name(), attr->value().impl(), ec);
+ if (ec)
+ return 0;
}
+ }
- newElement->copyNonAttributeProperties(oldElement);
+ newElement->copyNonAttributeProperties(oldElement);
- if (deep) {
- for (Node* oldChild = oldElement->firstChild(); oldChild; oldChild = oldChild->nextSibling()) {
- RefPtr<Node> newChild = importNode(oldChild, true, ec);
- if (ec)
- return 0;
- newElement->appendChild(newChild.release(), ec);
- if (ec)
- return 0;
- }
+ if (deep) {
+ for (Node* oldChild = oldElement->firstChild(); oldChild; oldChild = oldChild->nextSibling()) {
+ RefPtr<Node> newChild = importNode(oldChild, true, ec);
+ if (ec)
+ return 0;
+ newElement->appendChild(newChild.release(), ec);
+ if (ec)
+ return 0;
}
-
- return newElement.release();
}
- case ATTRIBUTE_NODE:
- return Attr::create(0, this, static_cast<Attr*>(importedNode)->attr()->clone());
- case DOCUMENT_FRAGMENT_NODE: {
- DocumentFragment* oldFragment = static_cast<DocumentFragment*>(importedNode);
- RefPtr<DocumentFragment> newFragment = createDocumentFragment();
- if (deep) {
- for (Node* oldChild = oldFragment->firstChild(); oldChild; oldChild = oldChild->nextSibling()) {
- RefPtr<Node> newChild = importNode(oldChild, true, ec);
- if (ec)
- return 0;
- newFragment->appendChild(newChild.release(), ec);
- if (ec)
- return 0;
- }
+
+ return newElement.release();
+ }
+ case ATTRIBUTE_NODE:
+ return Attr::create(0, this, static_cast<Attr*>(importedNode)->attr()->clone());
+ case DOCUMENT_FRAGMENT_NODE: {
+ DocumentFragment* oldFragment = static_cast<DocumentFragment*>(importedNode);
+ RefPtr<DocumentFragment> newFragment = createDocumentFragment();
+ if (deep) {
+ for (Node* oldChild = oldFragment->firstChild(); oldChild; oldChild = oldChild->nextSibling()) {
+ RefPtr<Node> newChild = importNode(oldChild, true, ec);
+ if (ec)
+ return 0;
+ newFragment->appendChild(newChild.release(), ec);
+ if (ec)
+ return 0;
}
-
- return newFragment.release();
}
- case ENTITY_NODE:
- case NOTATION_NODE:
- // FIXME: It should be possible to import these node types, however in DOM3 the DocumentType is readonly, so there isn't much sense in doing that.
- // Ability to add these imported nodes to a DocumentType will be considered for addition to a future release of the DOM.
- case DOCUMENT_NODE:
- case DOCUMENT_TYPE_NODE:
- case XPATH_NAMESPACE_NODE:
- break;
+
+ return newFragment.release();
+ }
+ case ENTITY_NODE:
+ case NOTATION_NODE:
+ // FIXME: It should be possible to import these node types, however in DOM3 the DocumentType is readonly, so there isn't much sense in doing that.
+ // Ability to add these imported nodes to a DocumentType will be considered for addition to a future release of the DOM.
+ case DOCUMENT_NODE:
+ case DOCUMENT_TYPE_NODE:
+ case XPATH_NAMESPACE_NODE:
+ break;
}
ec = NOT_SUPPORTED_ERR;
@@ -843,26 +844,26 @@ PassRefPtr<Node> Document::adoptNode(PassRefPtr<Node> source, ExceptionCode& ec)
}
switch (source->nodeType()) {
- case ENTITY_NODE:
- case NOTATION_NODE:
- case DOCUMENT_NODE:
- case DOCUMENT_TYPE_NODE:
- case XPATH_NAMESPACE_NODE:
- ec = NOT_SUPPORTED_ERR;
- return 0;
- case ATTRIBUTE_NODE: {
- Attr* attr = static_cast<Attr*>(source.get());
- if (attr->ownerElement())
- attr->ownerElement()->removeAttributeNode(attr, ec);
- attr->setSpecified(true);
- break;
- }
- default:
- if (source->hasTagName(iframeTag))
- static_cast<HTMLIFrameElement*>(source.get())->setRemainsAliveOnRemovalFromTree(attached());
+ case ENTITY_NODE:
+ case NOTATION_NODE:
+ case DOCUMENT_NODE:
+ case DOCUMENT_TYPE_NODE:
+ case XPATH_NAMESPACE_NODE:
+ ec = NOT_SUPPORTED_ERR;
+ return 0;
+ case ATTRIBUTE_NODE: {
+ Attr* attr = static_cast<Attr*>(source.get());
+ if (attr->ownerElement())
+ attr->ownerElement()->removeAttributeNode(attr, ec);
+ attr->setSpecified(true);
+ break;
+ }
+ default:
+ if (source->hasTagName(iframeTag))
+ static_cast<HTMLIFrameElement*>(source.get())->setRemainsAliveOnRemovalFromTree(attached());
- if (source->parentNode())
- source->parentNode()->removeChild(source.get(), ec);
+ if (source->parentNode())
+ source->parentNode()->removeChild(source.get(), ec);
}
for (Node* node = source.get(); node; node = node->traverseNextNode(source.get()))
@@ -952,7 +953,7 @@ Element* Document::getElementById(const AtomicString& elementId) const
if (m_duplicateIds.contains(elementId.impl())) {
// We know there's at least one node with this id, but we don't know what the first one is.
- for (Node *n = traverseNextNode(); n != 0; n = n->traverseNextNode()) {
+ for (Node* n = traverseNextNode(); n; n = n->traverseNextNode()) {
if (n->isElementNode()) {
element = static_cast<Element*>(n);
if (element->hasID() && element->getIdAttribute() == elementId) {
@@ -974,9 +975,9 @@ String Document::readyState() const
return "complete";
if (parsing())
return "loading";
- return "loaded";
- // FIXME: What does "interactive" mean?
- // FIXME: Missing support for "uninitialized".
+ return "loaded";
+ // FIXME: What does "interactive" mean?
+ // FIXME: Missing support for "uninitialized".
}
return String();
}
@@ -1381,7 +1382,7 @@ PassRefPtr<NodeIterator> Document::createNodeIterator(Node* root, unsigned whatT
return NodeIterator::create(root, whatToShow, filter, expandEntityReferences);
}
-PassRefPtr<TreeWalker> Document::createTreeWalker(Node *root, unsigned whatToShow,
+PassRefPtr<TreeWalker> Document::createTreeWalker(Node* root, unsigned whatToShow,
PassRefPtr<NodeFilter> filter, bool expandEntityReferences, ExceptionCode& ec)
{
if (!root) {
@@ -2093,8 +2094,8 @@ bool Document::shouldScheduleLayout()
// (a) Only schedule a layout once the stylesheets are loaded.
// (b) Only schedule layout once we have a body element.
- return (haveStylesheetsLoaded() && body()) ||
- (documentElement() && !documentElement()->hasTagName(htmlTag));
+ return (haveStylesheetsLoaded() && body())
+ || (documentElement() && !documentElement()->hasTagName(htmlTag));
}
int Document::minimumLayoutDelay()
@@ -2364,7 +2365,7 @@ Node* Document::nextFocusableNode(Node* start, KeyboardEvent* event)
if (Node* winner = nextNodeWithExactTabIndex(start->traverseNextNode(), start->tabIndex(), event))
return winner;
- if (start->tabIndex() == 0)
+ if (!start->tabIndex())
// We've reached the last node in the document with a tabindex of 0. This is the end of the tabbing order.
return 0;
}
@@ -2383,8 +2384,7 @@ Node* Document::nextFocusableNode(Node* start, KeyboardEvent* event)
Node* Document::previousFocusableNode(Node* start, KeyboardEvent* event)
{
Node* last;
- for (last = this; last->lastChild(); last = last->lastChild())
- ; // Empty loop.
+ for (last = this; last->lastChild(); last = last->lastChild()) { }
// First try to find the last node in the document that comes before start and has the same tabindex as start.
// If start is null, find the last node in the document with a tabindex of 0.
@@ -2420,17 +2420,16 @@ int Document::nodeAbsIndex(Node *node)
ASSERT(node->document() == this);
int absIndex = 0;
- for (Node *n = node; n && n != this; n = n->traversePreviousNode())
+ for (Node* n = node; n && n != this; n = n->traversePreviousNode())
absIndex++;
return absIndex;
}
-Node *Document::nodeWithAbsIndex(int absIndex)
+Node* Document::nodeWithAbsIndex(int absIndex)
{
- Node *n = this;
- for (int i = 0; n && (i < absIndex); i++) {
+ Node* n = this;
+ for (int i = 0; n && (i < absIndex); i++)
n = n->traverseNextNode();
- }
return n;
}
@@ -2588,27 +2587,27 @@ MouseEventWithHitTestResults Document::prepareMouseEvent(const HitTestRequest& r
bool Document::childTypeAllowed(NodeType type)
{
switch (type) {
- case ATTRIBUTE_NODE:
- case CDATA_SECTION_NODE:
- case DOCUMENT_FRAGMENT_NODE:
- case DOCUMENT_NODE:
- case ENTITY_NODE:
- case ENTITY_REFERENCE_NODE:
- case NOTATION_NODE:
- case TEXT_NODE:
- case XPATH_NAMESPACE_NODE:
- return false;
- case COMMENT_NODE:
- case PROCESSING_INSTRUCTION_NODE:
- return true;
- case DOCUMENT_TYPE_NODE:
- case ELEMENT_NODE:
- // Documents may contain no more than one of each of these.
- // (One Element and one DocumentType.)
- for (Node* c = firstChild(); c; c = c->nextSibling())
- if (c->nodeType() == type)
- return false;
- return true;
+ case ATTRIBUTE_NODE:
+ case CDATA_SECTION_NODE:
+ case DOCUMENT_FRAGMENT_NODE:
+ case DOCUMENT_NODE:
+ case ENTITY_NODE:
+ case ENTITY_REFERENCE_NODE:
+ case NOTATION_NODE:
+ case TEXT_NODE:
+ case XPATH_NAMESPACE_NODE:
+ return false;
+ case COMMENT_NODE:
+ case PROCESSING_INSTRUCTION_NODE:
+ return true;
+ case DOCUMENT_TYPE_NODE:
+ case ELEMENT_NODE:
+ // Documents may contain no more than one of each of these.
+ // (One Element and one DocumentType.)
+ for (Node* c = firstChild(); c; c = c->nextSibling())
+ if (c->nodeType() == type)
+ return false;
+ return true;
}
return false;
}
@@ -2632,14 +2631,14 @@ bool Document::canReplaceChild(Node* newChild, Node* oldChild)
continue;
switch (c->nodeType()) {
- case DOCUMENT_TYPE_NODE:
- numDoctypes++;
- break;
- case ELEMENT_NODE:
- numElements++;
- break;
- default:
- break;
+ case DOCUMENT_TYPE_NODE:
+ numDoctypes++;
+ break;
+ case ELEMENT_NODE:
+ numElements++;
+ break;
+ default:
+ break;
}
}
@@ -2647,29 +2646,6 @@ bool Document::canReplaceChild(Node* newChild, Node* oldChild)
if (newChild->nodeType() == DOCUMENT_FRAGMENT_NODE) {
for (Node* c = firstChild(); c; c = c->nextSibling()) {
switch (c->nodeType()) {
- case ATTRIBUTE_NODE:
- case CDATA_SECTION_NODE:
- case DOCUMENT_FRAGMENT_NODE:
- case DOCUMENT_NODE:
- case ENTITY_NODE:
- case ENTITY_REFERENCE_NODE:
- case NOTATION_NODE:
- case TEXT_NODE:
- case XPATH_NAMESPACE_NODE:
- return false;
- case COMMENT_NODE:
- case PROCESSING_INSTRUCTION_NODE:
- break;
- case DOCUMENT_TYPE_NODE:
- numDoctypes++;
- break;
- case ELEMENT_NODE:
- numElements++;
- break;
- }
- }
- } else {
- switch (newChild->nodeType()) {
case ATTRIBUTE_NODE:
case CDATA_SECTION_NODE:
case DOCUMENT_FRAGMENT_NODE:
@@ -2682,13 +2658,36 @@ bool Document::canReplaceChild(Node* newChild, Node* oldChild)
return false;
case COMMENT_NODE:
case PROCESSING_INSTRUCTION_NODE:
- return true;
+ break;
case DOCUMENT_TYPE_NODE:
numDoctypes++;
break;
case ELEMENT_NODE:
numElements++;
break;
+ }
+ }
+ } else {
+ switch (newChild->nodeType()) {
+ case ATTRIBUTE_NODE:
+ case CDATA_SECTION_NODE:
+ case DOCUMENT_FRAGMENT_NODE:
+ case DOCUMENT_NODE:
+ case ENTITY_NODE:
+ case ENTITY_REFERENCE_NODE:
+ case NOTATION_NODE:
+ case TEXT_NODE:
+ case XPATH_NAMESPACE_NODE:
+ return false;
+ case COMMENT_NODE:
+ case PROCESSING_INSTRUCTION_NODE:
+ return true;
+ case DOCUMENT_TYPE_NODE:
+ numDoctypes++;
+ break;
+ case ELEMENT_NODE:
+ numElements++;
+ break;
}
}
@@ -2887,11 +2886,11 @@ void Document::recalcStyleSelector()
bool enabledViaScript = false;
if (e->hasLocalName(linkTag)) {
// <LINK> element
- HTMLLinkElement* l = static_cast<HTMLLinkElement*>(n);
- if (l->isDisabled())
+ HTMLLinkElement* linkElement = static_cast<HTMLLinkElement*>(n);
+ if (linkElement->isDisabled())
continue;
- enabledViaScript = l->isEnabledViaScript();
- if (l->isLoading()) {
+ enabledViaScript = linkElement->isEnabledViaScript();
+ if (linkElement->isLoading()) {
// it is loading but we should still decide which style sheet set to use
if (!enabledViaScript && !title.isEmpty() && m_preferredStylesheetSet.isEmpty()) {
const AtomicString& rel = e->getAttribute(relAttr);
@@ -2902,7 +2901,7 @@ void Document::recalcStyleSelector()
}
continue;
}
- if (!l->sheet())
+ if (!linkElement->sheet())
title = nullAtom;
}
@@ -3110,7 +3109,7 @@ bool Document::setFocusedNode(PassRefPtr<Node> newFocusedNode)
// eww, I suck. set the qt focus correctly
// ### find a better place in the code for this
if (view()) {
- Widget *focusWidget = widgetForNode(m_focusedNode.get());
+ Widget* focusWidget = widgetForNode(m_focusedNode.get());
if (focusWidget) {
// Make sure a widget has the right size before giving it focus.
// Otherwise, we are testing edge cases of the Widget code.
@@ -3166,12 +3165,12 @@ void Document::setCSSTarget(Element* n)
n->setNeedsStyleRecalc();
}
-void Document::attachNodeIterator(NodeIterator *ni)
+void Document::attachNodeIterator(NodeIterator* ni)
{
m_nodeIterators.add(ni);
}
-void Document::detachNodeIterator(NodeIterator *ni)
+void Document::detachNodeIterator(NodeIterator* ni)
{
m_nodeIterators.remove(ni);
}
@@ -3390,6 +3389,8 @@ PassRefPtr<Event> Document::createEvent(const String& eventType, ExceptionCode&
event = TouchEvent::create();
#endif
#if ENABLE(DEVICE_ORIENTATION)
+ else if (eventType == "DeviceMotionEvent")
+ event = DeviceMotionEvent::create();
else if (eventType == "DeviceOrientationEvent")
event = DeviceOrientationEvent::create();
#endif
@@ -3619,7 +3620,7 @@ bool Document::parseQualifiedName(const String& qualifiedName, String& prefix, S
{
unsigned length = qualifiedName.length();
- if (length == 0) {
+ if (!length) {
ec = INVALID_CHARACTER_ERR;
return false;
}
@@ -3702,7 +3703,7 @@ void Document::removeImageMap(HTMLMapElement* imageMap)
m_imageMapsByName.remove(it);
}
-HTMLMapElement *Document::getImageMap(const String& url) const
+HTMLMapElement* Document::getImageMap(const String& url) const
{
if (url.isNull())
return 0;
@@ -3738,13 +3739,13 @@ void Document::setInPageCache(bool flag)
m_inPageCache = flag;
if (flag) {
- ASSERT(m_savedRenderer == 0);
+ ASSERT(!m_savedRenderer);
m_savedRenderer = renderer();
if (FrameView* v = view())
v->resetScrollbars();
unscheduleStyleRecalc();
} else {
- ASSERT(renderer() == 0 || renderer() == m_savedRenderer);
+ ASSERT(!renderer() || renderer() == m_savedRenderer);
ASSERT(m_renderArena);
setRenderer(m_savedRenderer);
m_savedRenderer = 0;
@@ -3860,7 +3861,7 @@ static IntRect placeholderRectForMarker()
return IntRect(-1, -1, -1, -1);
}
-void Document::addMarker(Range *range, DocumentMarker::MarkerType type, String description)
+void Document::addMarker(Range* range, DocumentMarker::MarkerType type, String description)
{
// Use a TextIterator to visit the potentially multiple nodes the range covers.
for (TextIterator markedText(range); !markedText.atEnd(); markedText.advance()) {
@@ -3957,7 +3958,7 @@ void Document::addMarker(Node* node, DocumentMarker newMarker)
// copies markers from srcNode to dstNode, applying the specified shift delta to the copies. The shift is
// useful if, e.g., the caller has created the dstNode from a non-prefix substring of the srcNode.
-void Document::copyMarkers(Node *srcNode, unsigned startOffset, int length, Node *dstNode, int delta, DocumentMarker::MarkerType markerType)
+void Document::copyMarkers(Node* srcNode, unsigned startOffset, int length, Node* dstNode, int delta, DocumentMarker::MarkerType markerType)
{
if (length <= 0)
return;
@@ -4262,7 +4263,7 @@ void Document::invalidateRenderedRectsForMarkersInRect(const IntRect& r)
}
}
-void Document::shiftMarkers(Node *node, unsigned startOffset, int delta, DocumentMarker::MarkerType markerType)
+void Document::shiftMarkers(Node* node, unsigned startOffset, int delta, DocumentMarker::MarkerType markerType)
{
MarkerMapVectorPair* vectorPair = m_markers.get(node);
if (!vectorPair)
@@ -4274,7 +4275,7 @@ void Document::shiftMarkers(Node *node, unsigned startOffset, int delta, Documen
bool docDirty = false;
for (size_t i = 0; i != markers.size(); ++i) {
- DocumentMarker &marker = markers[i];
+ DocumentMarker& marker = markers[i];
if (marker.startOffset >= startOffset && (markerType == DocumentMarker::AllMarkers || marker.type == markerType)) {
ASSERT((int)marker.startOffset + delta >= 0);
marker.startOffset += delta;
@@ -4319,7 +4320,7 @@ void Document::setMarkersActive(Node* node, unsigned startOffset, unsigned endOf
bool docDirty = false;
for (size_t i = 0; i != markers.size(); ++i) {
- DocumentMarker &marker = markers[i];
+ DocumentMarker& marker = markers[i];
// Markers are returned in order, so stop if we are now past the specified range.
if (marker.startOffset >= endOffset)
@@ -4381,21 +4382,21 @@ bool Document::inDesignMode() const
return false;
}
-Document *Document::parentDocument() const
+Document* Document::parentDocument() const
{
- Frame *childPart = frame();
+ Frame* childPart = frame();
if (!childPart)
return 0;
- Frame *parent = childPart->tree()->parent();
+ Frame* parent = childPart->tree()->parent();
if (!parent)
return 0;
return parent->document();
}
-Document *Document::topDocument() const
+Document* Document::topDocument() const
{
- Document *doc = const_cast<Document *>(this);
- Element *element;
+ Document* doc = const_cast<Document *>(this);
+ Element* element;
while ((element = doc->ownerElement()))
doc = element->document();
@@ -4710,7 +4711,7 @@ unsigned FormElementKeyHash::hash(const FormElementKey& k)
// this avoids ever returning a hash code of 0, since that is used to
// signal "hash not computed yet", using a value that is likely to be
// effectively the same as 0 when the low bits are masked
- if (hash == 0)
+ if (!hash)
hash = 0x80000000;
return hash;
@@ -4744,7 +4745,7 @@ bool Document::useSecureKeyboardEntryWhenActive() const
void Document::initSecurityContext()
{
if (securityOrigin() && !securityOrigin()->isEmpty())
- return; // m_securityOrigin has already been initialized.
+ return; // m_securityOrigin has already been initialized.
if (!m_frame) {
// No source for a security context.
@@ -4887,45 +4888,6 @@ void Document::updateFocusAppearanceTimerFired(Timer<Document>*)
element->updateFocusAppearance(m_updateFocusAppearanceRestoresSelection);
}
-void Document::executeScriptSoonTimerFired(Timer<Document>* timer)
-{
- ASSERT_UNUSED(timer, timer == &m_executeScriptSoonTimer);
-
- Vector<pair<ScriptElementData*, CachedResourceHandle<CachedScript> > > scripts;
- scripts.swap(m_scriptsToExecuteSoon);
- size_t size = scripts.size();
- for (size_t i = 0; i < size; ++i) {
- scripts[i].first->execute(scripts[i].second.get());
- scripts[i].first->element()->deref(); // Balances ref() in executeScriptSoon().
- }
-}
-
-void Document::executeScriptSoon(ScriptElementData* data, CachedResourceHandle<CachedScript> cachedScript)
-{
- ASSERT_ARG(data, data);
-
- Element* element = data->element();
- ASSERT(element);
- ASSERT(element->document() == this);
- ASSERT(element->inDocument());
-
- m_scriptsToExecuteSoon.append(make_pair(data, cachedScript));
- element->ref(); // Balanced by deref()s in executeScriptSoonTimerFired() and ~Document().
- if (!m_executeScriptSoonTimer.isActive())
- m_executeScriptSoonTimer.startOneShot(0);
-}
-
-void Document::suspendExecuteScriptSoonTimer()
-{
- m_executeScriptSoonTimer.stop();
-}
-
-void Document::resumeExecuteScriptSoonTimer()
-{
- if (!m_scriptsToExecuteSoon.isEmpty())
- m_executeScriptSoonTimer.startOneShot(0);
-}
-
// FF method for accessing the selection added for compatibility.
DOMSelection* Document::getSelection() const
{
diff --git a/WebCore/dom/Document.h b/WebCore/dom/Document.h
index 36379ee..ebe22cb 100644
--- a/WebCore/dom/Document.h
+++ b/WebCore/dom/Document.h
@@ -28,10 +28,10 @@
#include "CachedResourceHandle.h"
#include "CheckedRadioButtons.h"
-#include "ContainerNode.h"
#include "CollectionCache.h"
#include "CollectionType.h"
#include "Color.h"
+#include "ContainerNode.h"
#include "Document.h"
#include "DocumentMarker.h"
#include "QualifiedName.h"
@@ -48,99 +48,100 @@
namespace WebCore {
- class Attr;
- class AXObjectCache;
- class CDATASection;
- class CachedCSSStyleSheet;
- class CachedScript;
- class CanvasRenderingContext;
- class CharacterData;
- class CSSStyleDeclaration;
- class CSSStyleSelector;
- class CSSStyleSheet;
- class Comment;
- class Database;
- class DOMImplementation;
- class DOMSelection;
- class DOMWindow;
- class DatabaseThread;
- class DocLoader;
- class DocumentFragment;
- class DocumentType;
- class DocumentWeakReference;
- class EditingText;
- class Element;
- class EntityReference;
- class Event;
- class EventListener;
- class Frame;
- class FrameView;
- class HTMLCanvasElement;
- class HTMLCollection;
- class HTMLAllCollection;
- class HTMLDocument;
- class HTMLElement;
- class HTMLFormElement;
- class HTMLFrameOwnerElement;
- class HTMLHeadElement;
- class HTMLInputElement;
- class HTMLMapElement;
- class HistoryItem;
- class HitTestRequest;
- class HitTestResult;
- class InspectorTimelineAgent;
- class IntPoint;
- class DOMWrapperWorld;
- class JSNode;
- class MediaCanStartListener;
- class MouseEventWithHitTestResults;
- class NodeFilter;
- class NodeIterator;
- class Page;
- class PlatformMouseEvent;
- class ProcessingInstruction;
- class Range;
- class RegisteredEventListener;
- class RenderArena;
- class RenderView;
- class ScriptableDocumentParser;
- class ScriptElementData;
- class SecurityOrigin;
- class SerializedScriptValue;
- class SegmentedString;
- class Settings;
- class StyleSheet;
- class StyleSheetList;
- class Text;
- class TextResourceDecoder;
- class DocumentParser;
- class TreeWalker;
- class XMLHttpRequest;
+class AsyncScriptRunner;
+class Attr;
+class AXObjectCache;
+class CDATASection;
+class CachedCSSStyleSheet;
+class CachedScript;
+class CanvasRenderingContext;
+class CharacterData;
+class CSSStyleDeclaration;
+class CSSStyleSelector;
+class CSSStyleSheet;
+class Comment;
+class Database;
+class DOMImplementation;
+class DOMSelection;
+class DOMWindow;
+class DatabaseThread;
+class DocLoader;
+class DocumentFragment;
+class DocumentType;
+class DocumentWeakReference;
+class EditingText;
+class Element;
+class EntityReference;
+class Event;
+class EventListener;
+class Frame;
+class FrameView;
+class HTMLCanvasElement;
+class HTMLCollection;
+class HTMLAllCollection;
+class HTMLDocument;
+class HTMLElement;
+class HTMLFormElement;
+class HTMLFrameOwnerElement;
+class HTMLHeadElement;
+class HTMLInputElement;
+class HTMLMapElement;
+class HistoryItem;
+class HitTestRequest;
+class HitTestResult;
+class InspectorTimelineAgent;
+class IntPoint;
+class DOMWrapperWorld;
+class JSNode;
+class MediaCanStartListener;
+class MouseEventWithHitTestResults;
+class NodeFilter;
+class NodeIterator;
+class Page;
+class PlatformMouseEvent;
+class ProcessingInstruction;
+class Range;
+class RegisteredEventListener;
+class RenderArena;
+class RenderView;
+class ScriptableDocumentParser;
+class ScriptElementData;
+class SecurityOrigin;
+class SerializedScriptValue;
+class SegmentedString;
+class Settings;
+class StyleSheet;
+class StyleSheetList;
+class Text;
+class TextResourceDecoder;
+class DocumentParser;
+class TreeWalker;
+class XMLHttpRequest;
#if ENABLE(SVG)
- class SVGDocumentExtensions;
+class SVGDocumentExtensions;
#endif
-
+
#if ENABLE(XSLT)
- class TransformSource;
+class TransformSource;
#endif
#if ENABLE(XBL)
- class XBLBindingManager;
+class XBLBindingManager;
#endif
#if ENABLE(XPATH)
- class XPathEvaluator;
- class XPathExpression;
- class XPathNSResolver;
- class XPathResult;
+class XPathEvaluator;
+class XPathExpression;
+class XPathNSResolver;
+class XPathResult;
#endif
#if ENABLE(DASHBOARD_SUPPORT)
- struct DashboardRegionValue;
+struct DashboardRegionValue;
#endif
- typedef int ExceptionCode;
+typedef int ExceptionCode;
class FormElementKey {
public:
@@ -849,11 +850,8 @@ public:
Document* topDocument() const;
int docID() const { return m_docID; }
-
- void executeScriptSoon(ScriptElementData*, CachedResourceHandle<CachedScript>);
-
- void suspendExecuteScriptSoonTimer();
- void resumeExecuteScriptSoonTimer();
+
+ AsyncScriptRunner* asyncScriptRunner() { return m_asyncScriptRunner.get(); }
#if ENABLE(XSLT)
void applyXSLTransform(ProcessingInstruction* pi);
@@ -869,8 +867,8 @@ public:
XBLBindingManager* bindingManager() const { return m_bindingManager.get(); }
#endif
- void incDOMTreeVersion() { ++m_domtree_version; }
- unsigned domTreeVersion() const { return m_domtree_version; }
+ void incDOMTreeVersion() { ++m_domTreeVersion; }
+ unsigned domTreeVersion() const { return m_domTreeVersion; }
void setDocType(PassRefPtr<DocumentType>);
@@ -1059,8 +1057,6 @@ private:
String encoding() const;
- void executeScriptSoonTimerFired(Timer<Document>*);
-
void updateTitle();
void updateFocusAppearanceTimerFired(Timer<Document>*);
void updateBaseURL();
@@ -1083,10 +1079,10 @@ private:
bool m_wellFormed;
// Document URLs.
- KURL m_url; // Document.URL: The URL from which this document was retrieved.
- KURL m_baseURL; // Node.baseURI: The URL to use when resolving relative URLs.
- KURL m_baseElementURL; // The URL set by the <base> element.
- KURL m_cookieURL; // The URL to use for cookie access.
+ KURL m_url; // Document.URL: The URL from which this document was retrieved.
+ KURL m_baseURL; // Node.baseURI: The URL to use when resolving relative URLs.
+ KURL m_baseElementURL; // The URL set by the <base> element.
+ KURL m_cookieURL; // The URL to use for cookie access.
KURL m_firstPartyForCookies; // The policy URL for third-party cookie blocking.
// Document.documentURI:
@@ -1137,7 +1133,7 @@ private:
RefPtr<Node> m_activeNode;
mutable RefPtr<Element> m_documentElement;
- unsigned m_domtree_version;
+ unsigned m_domTreeVersion;
HashSet<NodeIterator*> m_nodeIterators;
HashSet<Range*> m_ranges;
@@ -1212,10 +1208,9 @@ private:
// using setExtraLayoutDelay to modify the minimum delay used at different
// points during the lifetime of the Document.
int m_extraLayoutDelay;
-
- Vector<std::pair<ScriptElementData*, CachedResourceHandle<CachedScript> > > m_scriptsToExecuteSoon;
- Timer<Document> m_executeScriptSoonTimer;
+ OwnPtr<AsyncScriptRunner> m_asyncScriptRunner;
+
#if ENABLE(XSLT)
OwnPtr<TransformSource> m_transformSource;
RefPtr<Document> m_transformSourceDocument;
diff --git a/WebCore/dom/DocumentFragment.cpp b/WebCore/dom/DocumentFragment.cpp
index ecc5725..47485b7 100644
--- a/WebCore/dom/DocumentFragment.cpp
+++ b/WebCore/dom/DocumentFragment.cpp
@@ -82,16 +82,16 @@ bool DocumentFragment::shouldUseLegacyHTMLParser() const
&& !document()->page()->settings()->html5ParserEnabled();
}
-void DocumentFragment::parseHTML(const String& source, FragmentScriptingPermission scriptingPermission)
+void DocumentFragment::parseHTML(const String& source, Element* contextElement, FragmentScriptingPermission scriptingPermission)
{
if (shouldUseLegacyHTMLParser())
return LegacyHTMLDocumentParser::parseDocumentFragment(source, this, scriptingPermission);
- HTMLDocumentParser::parseDocumentFragment(source, this, scriptingPermission);
+ HTMLDocumentParser::parseDocumentFragment(source, this, contextElement, scriptingPermission);
}
-bool DocumentFragment::parseXML(const String& source, Element* parent, FragmentScriptingPermission scriptingPermission)
+bool DocumentFragment::parseXML(const String& source, Element* contextElement, FragmentScriptingPermission scriptingPermission)
{
- return XMLDocumentParser::parseDocumentFragment(source, this, parent, scriptingPermission);
+ return XMLDocumentParser::parseDocumentFragment(source, this, contextElement, scriptingPermission);
}
}
diff --git a/WebCore/dom/DocumentFragment.h b/WebCore/dom/DocumentFragment.h
index 5eff17f..d3dadb8 100644
--- a/WebCore/dom/DocumentFragment.h
+++ b/WebCore/dom/DocumentFragment.h
@@ -33,8 +33,8 @@ class DocumentFragment : public ContainerNode {
public:
static PassRefPtr<DocumentFragment> create(Document*);
- void parseHTML(const String&, FragmentScriptingPermission = FragmentScriptingAllowed);
- bool parseXML(const String&, Element* parent, FragmentScriptingPermission = FragmentScriptingAllowed);
+ void parseHTML(const String&, Element* contextElement, FragmentScriptingPermission = FragmentScriptingAllowed);
+ bool parseXML(const String&, Element* contextElement, FragmentScriptingPermission = FragmentScriptingAllowed);
private:
DocumentFragment(Document*);
diff --git a/WebCore/dom/DocumentMarker.h b/WebCore/dom/DocumentMarker.h
index 8945eb0..55d2e33 100644
--- a/WebCore/dom/DocumentMarker.h
+++ b/WebCore/dom/DocumentMarker.h
@@ -24,9 +24,9 @@
#define DocumentMarker_h
#include "PlatformString.h"
+#include <wtf/Forward.h>
namespace WebCore {
- class String;
// A range of a node within a document that is "marked", such as the range of a misspelled word.
// It optionally includes a description that could be displayed in the user interface.
diff --git a/WebCore/dom/DynamicNodeList.h b/WebCore/dom/DynamicNodeList.h
index f97c38f..db133b7 100644
--- a/WebCore/dom/DynamicNodeList.h
+++ b/WebCore/dom/DynamicNodeList.h
@@ -31,7 +31,6 @@
namespace WebCore {
- class AtomicString;
class Element;
class Node;
diff --git a/WebCore/dom/Element.cpp b/WebCore/dom/Element.cpp
index 2fa75ce..0e89e93 100644
--- a/WebCore/dom/Element.cpp
+++ b/WebCore/dom/Element.cpp
@@ -95,7 +95,7 @@ PassRefPtr<DocumentFragment> Element::createContextualFragment(const String& mar
RefPtr<DocumentFragment> fragment = document()->createDocumentFragment();
if (document()->isHTMLDocument())
- fragment->parseHTML(markup, scriptingPermission);
+ fragment->parseHTML(markup, this, scriptingPermission);
else {
if (!fragment->parseXML(markup, this, scriptingPermission))
// FIXME: We should propagate a syntax error exception out here.
diff --git a/WebCore/dom/Event.cpp b/WebCore/dom/Event.cpp
index 4ea3e0c..1aab5c7 100644
--- a/WebCore/dom/Event.cpp
+++ b/WebCore/dom/Event.cpp
@@ -213,6 +213,11 @@ bool Event::isTouchEvent() const
#endif
#if ENABLE(DEVICE_ORIENTATION)
+bool Event::isDeviceMotionEvent() const
+{
+ return false;
+}
+
bool Event::isDeviceOrientationEvent() const
{
return false;
diff --git a/WebCore/dom/Event.h b/WebCore/dom/Event.h
index 2b570d5..e18258c 100644
--- a/WebCore/dom/Event.h
+++ b/WebCore/dom/Event.h
@@ -140,6 +140,7 @@ namespace WebCore {
virtual bool isTouchEvent() const;
#endif
#if ENABLE(DEVICE_ORIENTATION)
+ virtual bool isDeviceMotionEvent() const;
virtual bool isDeviceOrientationEvent() const;
#endif
bool fromUserGesture();
diff --git a/WebCore/dom/EventNames.h b/WebCore/dom/EventNames.h
index 65abfbf..6c67b9f 100644
--- a/WebCore/dom/EventNames.h
+++ b/WebCore/dom/EventNames.h
@@ -42,6 +42,7 @@ namespace WebCore {
macro(checking) \
macro(click) \
macro(close) \
+ macro(complete) \
macro(compositionend) \
macro(compositionstart) \
macro(compositionupdate) \
@@ -50,6 +51,7 @@ namespace WebCore {
macro(copy) \
macro(cut) \
macro(dblclick) \
+ macro(devicemotion) \
macro(deviceorientation) \
macro(display) \
macro(downloading) \
@@ -150,6 +152,8 @@ namespace WebCore {
\
macro(orientationchange) \
\
+ macro(timeout) \
+ \
macro(touchstart) \
macro(touchmove) \
macro(touchend) \
diff --git a/WebCore/dom/EventTarget.cpp b/WebCore/dom/EventTarget.cpp
index cb6be7a..42a153a 100644
--- a/WebCore/dom/EventTarget.cpp
+++ b/WebCore/dom/EventTarget.cpp
@@ -156,7 +156,7 @@ Notification* EventTarget::toNotification()
}
#endif
-#if ENABLE(FILE_READER)
+#if ENABLE(BLOB)
FileReader* EventTarget::toFileReader()
{
return 0;
diff --git a/WebCore/dom/EventTarget.h b/WebCore/dom/EventTarget.h
index 0e8c343..406c2fd 100644
--- a/WebCore/dom/EventTarget.h
+++ b/WebCore/dom/EventTarget.h
@@ -41,7 +41,6 @@
namespace WebCore {
class AbstractWorker;
- class AtomicString;
class DedicatedWorkerContext;
class DOMApplicationCache;
class DOMWindow;
@@ -120,7 +119,7 @@ namespace WebCore {
#if ENABLE(NOTIFICATIONS)
virtual Notification* toNotification();
#endif
-#if ENABLE(FILE_READER)
+#if ENABLE(BLOB)
virtual FileReader* toFileReader();
#endif
diff --git a/WebCore/dom/ExceptionCode.h b/WebCore/dom/ExceptionCode.h
index ef73052..ed15a2e 100644
--- a/WebCore/dom/ExceptionCode.h
+++ b/WebCore/dom/ExceptionCode.h
@@ -61,7 +61,7 @@ namespace WebCore {
// Introduced in File API:
// http://www.w3.org/TR/file-upload/#dfn-fileerror
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
NOT_READABLE_ERR = 24,
ENCODING_ERR = 26,
#endif
diff --git a/WebCore/dom/MessagePort.h b/WebCore/dom/MessagePort.h
index 65332b8..10426e5 100644
--- a/WebCore/dom/MessagePort.h
+++ b/WebCore/dom/MessagePort.h
@@ -31,6 +31,7 @@
#include "EventListener.h"
#include "EventTarget.h"
#include "MessagePortChannel.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
@@ -39,12 +40,10 @@
namespace WebCore {
- class AtomicStringImpl;
class Event;
class Frame;
class MessagePort;
class ScriptExecutionContext;
- class String;
// The overwhelmingly common case is sending a single port, so handle that efficiently with an inline buffer of size 1.
typedef Vector<RefPtr<MessagePort>, 1> MessagePortArray;
diff --git a/WebCore/dom/MessagePortChannel.h b/WebCore/dom/MessagePortChannel.h
index 192cb92..f308a29 100644
--- a/WebCore/dom/MessagePortChannel.h
+++ b/WebCore/dom/MessagePortChannel.h
@@ -36,6 +36,7 @@
#include "SerializedScriptValue.h"
#include <wtf/OwnPtr.h>
+#include <wtf/Forward.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -48,7 +49,6 @@ namespace WebCore {
class PlatformMessagePortChannel;
class ScriptExecutionContext;
class SerializedScriptValue;
- class String;
// The overwhelmingly common case is sending a single port, so handle that efficiently with an inline buffer of size 1.
typedef Vector<OwnPtr<MessagePortChannel>, 1> MessagePortChannelArray;
diff --git a/WebCore/dom/NameNodeList.h b/WebCore/dom/NameNodeList.h
index 4f109b4..b7f5bfc 100644
--- a/WebCore/dom/NameNodeList.h
+++ b/WebCore/dom/NameNodeList.h
@@ -26,11 +26,10 @@
#include "AtomicString.h"
#include "DynamicNodeList.h"
+#include <wtf/Forward.h>
namespace WebCore {
- class String;
-
// NodeList which lists all Nodes in a Element with a given "name" attribute
class NameNodeList : public DynamicNodeList {
public:
diff --git a/WebCore/dom/Node.h b/WebCore/dom/Node.h
index 8a76084..b407ac4 100644
--- a/WebCore/dom/Node.h
+++ b/WebCore/dom/Node.h
@@ -30,20 +30,18 @@
#include "RenderStyleConstants.h"
#include "ScriptWrappable.h"
#include "TreeShared.h"
+#include <wtf/Forward.h>
#include <wtf/ListHashSet.h>
#if USE(JSC)
namespace JSC {
-
- class JSGlobalData;
- class MarkStack;
-
+class JSGlobalData;
+class MarkStack;
}
#endif
namespace WebCore {
-class AtomicString;
class Attribute;
class ClassNodeList;
class ContainerNode;
diff --git a/WebCore/dom/NodeList.h b/WebCore/dom/NodeList.h
index 99a0662..d4e18aa 100644
--- a/WebCore/dom/NodeList.h
+++ b/WebCore/dom/NodeList.h
@@ -24,11 +24,11 @@
#ifndef NodeList_h
#define NodeList_h
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
namespace WebCore {
- class AtomicString;
class Node;
class NodeList : public RefCounted<NodeList> {
diff --git a/WebCore/dom/OptionGroupElement.h b/WebCore/dom/OptionGroupElement.h
index e4b1566..b98a3f2 100644
--- a/WebCore/dom/OptionGroupElement.h
+++ b/WebCore/dom/OptionGroupElement.h
@@ -21,10 +21,11 @@
#ifndef OptionGroupElement_h
#define OptionGroupElement_h
+#include <wtf/Forward.h>
+
namespace WebCore {
class Element;
-class String;
class OptionGroupElement {
public:
diff --git a/WebCore/dom/PendingScript.cpp b/WebCore/dom/PendingScript.cpp
new file mode 100644
index 0000000..42e225a
--- /dev/null
+++ b/WebCore/dom/PendingScript.cpp
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2010 Google, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "PendingScript.h"
+
+#include "CachedScript.h"
+#include "Element.h"
+
+namespace WebCore {
+
+PendingScript::~PendingScript()
+{
+ if (m_cachedScript)
+ m_cachedScript->removeClient(this);
+}
+
+PassRefPtr<Element> PendingScript::releaseElementAndClear()
+{
+ setCachedScript(0);
+ m_startingLineNumber = 0;
+ m_watchingForLoad = false;
+ return m_element.release();
+}
+
+void PendingScript::setCachedScript(CachedScript* cachedScript)
+{
+ if (m_cachedScript == cachedScript)
+ return;
+ if (m_cachedScript)
+ m_cachedScript->removeClient(this);
+ m_cachedScript = cachedScript;
+ if (m_cachedScript)
+ m_cachedScript->addClient(this);
+}
+
+CachedScript* PendingScript::cachedScript() const
+{
+ return m_cachedScript.get();
+}
+
+void PendingScript::notifyFinished(CachedResource*)
+{
+}
+
+}
diff --git a/WebCore/dom/PendingScript.h b/WebCore/dom/PendingScript.h
new file mode 100644
index 0000000..805f7ff
--- /dev/null
+++ b/WebCore/dom/PendingScript.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2010 Google, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PendingScript_h
+#define PendingScript_h
+
+#include "CachedResourceClient.h"
+#include "CachedResourceHandle.h"
+#include <wtf/Noncopyable.h>
+#include <wtf/PassRefPtr.h>
+
+namespace WebCore {
+
+class CachedScript;
+class Element;
+
+// A container for an external script which may be loaded and executed.
+//
+// A CachedResourceHandle alone does not prevent the underlying CachedResource
+// from purging its data buffer. This class holds a dummy client open for its
+// lifetime in order to guarantee that the data buffer will not be purged.
+class PendingScript : public Noncopyable, CachedResourceClient {
+public:
+ PendingScript()
+ : m_startingLineNumber(0)
+ , m_watchingForLoad(false)
+ {
+ }
+
+ ~PendingScript();
+
+ // FIXME: No setter means this is never set to anything other than 0.
+ // This is either unnecessary or incorrect.
+ int startingLineNumber() const { return m_startingLineNumber; }
+
+ bool watchingForLoad() const { return m_watchingForLoad; }
+ void setWatchingForLoad(bool b) { m_watchingForLoad = b; }
+
+ Element* element() const { return m_element.get(); }
+ void adoptElement(Element* element) { m_element = element; }
+ PassRefPtr<Element> releaseElementAndClear();
+
+ CachedScript* cachedScript() const;
+ void setCachedScript(CachedScript*);
+
+ virtual void notifyFinished(CachedResource*);
+
+private:
+ int m_startingLineNumber; // Only used for inline script tags.
+ bool m_watchingForLoad;
+ RefPtr<Element> m_element;
+ CachedResourceHandle<CachedScript> m_cachedScript;
+};
+
+}
+
+#endif
diff --git a/WebCore/dom/Position.cpp b/WebCore/dom/Position.cpp
index 65b7261..4758bd9 100644
--- a/WebCore/dom/Position.cpp
+++ b/WebCore/dom/Position.cpp
@@ -328,6 +328,23 @@ bool Position::atEditingBoundary() const
&& prevPosition.isNotNull() && !prevPosition.node()->isContentEditable();
}
+Node* Position::parentEditingBoundary() const
+{
+ if (!m_anchorNode || !m_anchorNode->document())
+ return 0;
+
+ Node* documentElement = m_anchorNode->document()->documentElement();
+ if (!documentElement)
+ return 0;
+
+ Node* boundary = m_anchorNode.get();
+ while (boundary != documentElement && boundary->parentNode() && m_anchorNode->isContentEditable() == boundary->parentNode()->isContentEditable())
+ boundary = boundary->parentNode();
+
+ return boundary;
+}
+
+
bool Position::atStartOfTree() const
{
if (isNull())
diff --git a/WebCore/dom/Position.h b/WebCore/dom/Position.h
index f606c29..9f2ee24 100644
--- a/WebCore/dom/Position.h
+++ b/WebCore/dom/Position.h
@@ -138,6 +138,7 @@ public:
// Returns true if the visually equivalent positions around have different editability
bool atEditingBoundary() const;
+ Node* parentEditingBoundary() const;
bool atStartOfTree() const;
bool atEndOfTree() const;
diff --git a/WebCore/dom/QualifiedName.cpp b/WebCore/dom/QualifiedName.cpp
index 7cc809f..7c29ce0 100644
--- a/WebCore/dom/QualifiedName.cpp
+++ b/WebCore/dom/QualifiedName.cpp
@@ -88,8 +88,12 @@ void QualifiedName::deref()
String QualifiedName::toString() const
{
String local = localName();
- if (hasPrefix())
- return prefix() + ":" + local;
+ if (hasPrefix()) {
+ String result = prefix().string();
+ result.append(":");
+ result.append(local);
+ return result;
+ }
return local;
}
diff --git a/WebCore/dom/QualifiedName.h b/WebCore/dom/QualifiedName.h
index 672a302..4391570 100644
--- a/WebCore/dom/QualifiedName.h
+++ b/WebCore/dom/QualifiedName.h
@@ -170,7 +170,7 @@ namespace WTF {
template<> struct HashTraits<WebCore::QualifiedName> : GenericHashTraits<WebCore::QualifiedName> {
static const bool emptyValueIsZero = false;
- static WebCore::QualifiedName emptyValue() { return WebCore::QualifiedName(WebCore::nullAtom, WebCore::nullAtom, WebCore::nullAtom); }
+ static WebCore::QualifiedName emptyValue() { return WebCore::QualifiedName(nullAtom, nullAtom, nullAtom); }
static void constructDeletedValue(WebCore::QualifiedName& slot) { new (&slot) WebCore::QualifiedName(WTF::HashTableDeletedValue); }
static bool isDeletedValue(const WebCore::QualifiedName& slot) { return slot.isHashTableDeletedValue(); }
};
diff --git a/WebCore/dom/ScriptElement.cpp b/WebCore/dom/ScriptElement.cpp
index dab8f8c..0262e48 100644
--- a/WebCore/dom/ScriptElement.cpp
+++ b/WebCore/dom/ScriptElement.cpp
@@ -24,6 +24,7 @@
#include "config.h"
#include "ScriptElement.h"
+#include "AsyncScriptRunner.h"
#include "CachedScript.h"
#include "DocLoader.h"
#include "Document.h"
@@ -246,7 +247,7 @@ void ScriptElementData::execute(CachedScript* cachedScript)
void ScriptElementData::notifyFinished(CachedResource* o)
{
ASSERT_UNUSED(o, o == m_cachedScript);
- m_element->document()->executeScriptSoon(this, m_cachedScript);
+ m_element->document()->asyncScriptRunner()->executeScriptSoon(this, m_cachedScript);
m_cachedScript = 0;
}
diff --git a/WebCore/dom/ScriptExecutionContext.cpp b/WebCore/dom/ScriptExecutionContext.cpp
index 291243d..f7ac603 100644
--- a/WebCore/dom/ScriptExecutionContext.cpp
+++ b/WebCore/dom/ScriptExecutionContext.cpp
@@ -31,7 +31,7 @@
#include "Database.h"
#include "DatabaseTask.h"
#include "DatabaseThread.h"
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include "FileThread.h"
#endif
#include "MessagePort.h"
@@ -86,7 +86,7 @@ ScriptExecutionContext::~ScriptExecutionContext()
m_databaseThread = 0;
}
#endif
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
if (m_fileThread) {
m_fileThread->stop();
m_fileThread = 0;
@@ -241,7 +241,7 @@ DOMTimer* ScriptExecutionContext::findTimeout(int timeoutId)
return m_timeouts.get(timeoutId);
}
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
FileThread* ScriptExecutionContext::fileThread()
{
if (!m_fileThread) {
diff --git a/WebCore/dom/ScriptExecutionContext.h b/WebCore/dom/ScriptExecutionContext.h
index 4cd483a..d2da307 100644
--- a/WebCore/dom/ScriptExecutionContext.h
+++ b/WebCore/dom/ScriptExecutionContext.h
@@ -29,6 +29,7 @@
#include "Console.h"
#include "KURL.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
#include <wtf/PassOwnPtr.h>
@@ -45,13 +46,12 @@ namespace WebCore {
class DatabaseThread;
#endif
class DOMTimer;
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
class FileThread;
#endif
class MessagePort;
class SecurityOrigin;
class ScriptString;
- class String;
#if ENABLE(INSPECTOR)
class InspectorController;
#endif
@@ -129,7 +129,7 @@ namespace WebCore {
JSC::JSGlobalData* globalData();
#endif
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
FileThread* fileThread();
void stopFileThread();
#endif
@@ -160,7 +160,7 @@ namespace WebCore {
bool m_hasOpenDatabases; // This never changes back to false, even after the database thread is closed.
#endif
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
RefPtr<FileThread> m_fileThread;
#endif
};
diff --git a/WebCore/dom/SelectElement.h b/WebCore/dom/SelectElement.h
index 3831ac4..f00bb67 100644
--- a/WebCore/dom/SelectElement.h
+++ b/WebCore/dom/SelectElement.h
@@ -23,6 +23,7 @@
#define SelectElement_h
#include "Event.h"
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
namespace WebCore {
@@ -34,7 +35,6 @@ class FormDataList;
class HTMLFormElement;
class KeyboardEvent;
class SelectElementData;
-class String;
class SelectElement {
public:
diff --git a/WebCore/dom/TextEvent.cpp b/WebCore/dom/TextEvent.cpp
index d282c13..5dc39e3 100644
--- a/WebCore/dom/TextEvent.cpp
+++ b/WebCore/dom/TextEvent.cpp
@@ -31,17 +31,45 @@
namespace WebCore {
+PassRefPtr<TextEvent> TextEvent::create()
+{
+ return adoptRef(new TextEvent);
+}
+
+PassRefPtr<TextEvent> TextEvent::create(PassRefPtr<AbstractView> view, const String& data)
+{
+ return adoptRef(new TextEvent(view, data));
+}
+
+PassRefPtr<TextEvent> TextEvent::createForPlainTextPaste(PassRefPtr<AbstractView> view, const String& data, bool shouldSmartReplace)
+{
+ return adoptRef(new TextEvent(view, data, 0, true, shouldSmartReplace));
+}
+
+PassRefPtr<TextEvent> TextEvent::createForFragmentPaste(PassRefPtr<AbstractView> view, PassRefPtr<DocumentFragment> data, bool shouldSmartReplace, bool shouldMatchStyle)
+{
+ return adoptRef(new TextEvent(view, "", data, true, shouldSmartReplace, shouldMatchStyle));
+}
+
TextEvent::TextEvent()
: m_isLineBreak(false)
, m_isBackTab(false)
+ , m_isPaste(false)
+ , m_shouldSmartReplace(false)
+ , m_shouldMatchStyle(false)
{
}
-TextEvent::TextEvent(PassRefPtr<AbstractView> view, const String& data)
+TextEvent::TextEvent(PassRefPtr<AbstractView> view, const String& data, PassRefPtr<DocumentFragment> pastingFragment,
+ bool isPaste, bool shouldSmartReplace, bool shouldMatchStyle)
: UIEvent(eventNames().textInputEvent, true, true, view, 0)
, m_data(data)
, m_isLineBreak(false)
, m_isBackTab(false)
+ , m_pastingFragment(pastingFragment)
+ , m_isPaste(isPaste)
+ , m_shouldSmartReplace(shouldSmartReplace)
+ , m_shouldMatchStyle(shouldMatchStyle)
{
}
diff --git a/WebCore/dom/TextEvent.h b/WebCore/dom/TextEvent.h
index 9f93fdb..2e2eb95 100644
--- a/WebCore/dom/TextEvent.h
+++ b/WebCore/dom/TextEvent.h
@@ -27,20 +27,18 @@
#ifndef TextEvent_h
#define TextEvent_h
+#include "DocumentFragment.h"
#include "UIEvent.h"
namespace WebCore {
class TextEvent : public UIEvent {
public:
- static PassRefPtr<TextEvent> create()
- {
- return adoptRef(new TextEvent);
- }
- static PassRefPtr<TextEvent> create(PassRefPtr<AbstractView> view, const String& data)
- {
- return adoptRef(new TextEvent(view, data));
- }
+ static PassRefPtr<TextEvent> create();
+ static PassRefPtr<TextEvent> create(PassRefPtr<AbstractView> view, const String& data);
+ static PassRefPtr<TextEvent> createForPlainTextPaste(PassRefPtr<AbstractView> view, const String& data, bool shouldSmartReplace);
+ static PassRefPtr<TextEvent> createForFragmentPaste(PassRefPtr<AbstractView> view, PassRefPtr<DocumentFragment> data, bool shouldSmartReplace, bool shouldMatchStyle);
+
virtual ~TextEvent();
void initTextEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<AbstractView>, const String& data);
@@ -57,13 +55,24 @@ namespace WebCore {
bool isBackTab() const { return m_isBackTab; }
void setIsBackTab(bool isBackTab) { m_isBackTab = isBackTab; }
+ bool isPaste() const { return m_isPaste; }
+ bool shouldSmartReplace() const { return m_shouldSmartReplace; }
+ bool shouldMatchStyle() const { return m_shouldMatchStyle; }
+ DocumentFragment* pastingFragment() const { return m_pastingFragment.get(); }
+
private:
TextEvent();
- TextEvent(PassRefPtr<AbstractView>, const String& data);
+ TextEvent(PassRefPtr<AbstractView>, const String& data, PassRefPtr<DocumentFragment> = 0,
+ bool isPaste = false, bool shouldSmartReplace = false, bool shouldMatchStyle = false);
String m_data;
bool m_isLineBreak;
bool m_isBackTab;
+
+ RefPtr<DocumentFragment> m_pastingFragment;
+ bool m_isPaste; // FIXME: Should use inputMode after it be available: http://webkit.org/b/42805
+ bool m_shouldSmartReplace;
+ bool m_shouldMatchStyle;
};
} // namespace WebCore
diff --git a/WebCore/dom/ViewportArguments.cpp b/WebCore/dom/ViewportArguments.cpp
index c507032..9f831dd 100644
--- a/WebCore/dom/ViewportArguments.cpp
+++ b/WebCore/dom/ViewportArguments.cpp
@@ -53,6 +53,20 @@ void setViewportFeature(const String& keyString, const String& valueString, Docu
didUseConstants = true;
if (document->page())
value = document->page()->chrome()->windowRect().height();
+ } else if (equalIgnoringCase(valueString, "device-dpi")) {
+ didUseConstants = true;
+ // Default of today is 160dpi, resulting in a scaleFactor of 1.0.
+ if (document->page())
+ value = 160 * document->page()->chrome()->scaleFactor();
+ } else if (equalIgnoringCase(valueString, "low-dpi")) {
+ didUseConstants = true;
+ value = 120;
+ } else if (equalIgnoringCase(valueString, "medium-dpi")) {
+ didUseConstants = true;
+ value = 160;
+ } else if (equalIgnoringCase(valueString, "high-dpi")) {
+ didUseConstants = true;
+ value = 240;
} else if (equalIgnoringCase(valueString, "default")) // This allows us to distinguish the omission of a key from asking for the default value.
value = -2;
else if (valueString.length()) // listing a key with no value is shorthand for key=default
@@ -80,19 +94,23 @@ void setViewportFeature(const String& keyString, const String& valueString, Docu
reportViewportWarning(document, DeviceWidthShouldBeUsedWarning, keyString);
else if (document->page() && value == document->page()->chrome()->windowRect().height() && !didUseConstants)
reportViewportWarning(document, DeviceHeightShouldBeUsedWarning, keyString);
-
arguments->height = value;
+ } else if (keyString == "target-densitydpi" || keyString == "target-densityDpi") {
+ if (!didUseConstants && (value < 70 || value > 400))
+ reportViewportWarning(document, TargetDensityDpiTooSmallOrLargeError, keyString);
+ arguments->targetDensityDpi = value;
} else
reportViewportWarning(document, UnrecognizedViewportArgumentError, keyString);
}
static const char* viewportErrorMessageTemplate(ViewportErrorCode errorCode)
{
- static const char* const errors[] = {
+ static const char* const errors[] = {
"Viewport width or height set to physical device width, try using \"device-width\" constant instead for future compatibility.",
"Viewport height or height set to physical device height, try using \"device-height\" constant instead for future compatibility.",
"Viewport argument \"%replacement\" not recognized. Content ignored.",
- "Viewport maximum-scale cannot be larger than 10.0. The maximum-scale will be set to 10.0."
+ "Viewport maximum-scale cannot be larger than 10.0. The maximum-scale will be set to 10.0.",
+ "Viewport target-densitydpi has to take a number between 70 and 400 as a valid target dpi, try using \"device-dpi\", \"low-dpi\", \"medium-dpi\" or \"high-dpi\" instead for future compatibility."
};
return errors[errorCode];
diff --git a/WebCore/dom/ViewportArguments.h b/WebCore/dom/ViewportArguments.h
index 29eec8e..1fac0df 100644
--- a/WebCore/dom/ViewportArguments.h
+++ b/WebCore/dom/ViewportArguments.h
@@ -26,16 +26,18 @@
#ifndef ViewportArguments_h
#define ViewportArguments_h
+#include <wtf/Forward.h>
+
namespace WebCore {
class Document;
-class String;
enum ViewportErrorCode {
DeviceWidthShouldBeUsedWarning,
DeviceHeightShouldBeUsedWarning,
UnrecognizedViewportArgumentError,
- MaximumScaleTooLargeError
+ MaximumScaleTooLargeError,
+ TargetDensityDpiTooSmallOrLargeError
};
struct ViewportArguments {
@@ -48,6 +50,7 @@ struct ViewportArguments {
, maximumScale(ValueUndefined)
, width(ValueUndefined)
, height(ValueUndefined)
+ , targetDensityDpi(ValueUndefined)
, userScalable(ValueUndefined)
{
}
@@ -57,12 +60,13 @@ struct ViewportArguments {
float maximumScale;
float width;
float height;
+ float targetDensityDpi;
float userScalable;
bool hasCustomArgument() const
{
- return initialScale != ValueUndefined || minimumScale != ValueUndefined || maximumScale != ValueUndefined || width != ValueUndefined || height != ValueUndefined || userScalable != ValueUndefined;
+ return initialScale != ValueUndefined || minimumScale != ValueUndefined || maximumScale != ValueUndefined || width != ValueUndefined || height != ValueUndefined || userScalable != ValueUndefined || targetDensityDpi != ValueUndefined;
}
};
diff --git a/WebCore/dom/XMLDocumentParser.h b/WebCore/dom/XMLDocumentParser.h
index a6cc9a0..e7e209a 100644
--- a/WebCore/dom/XMLDocumentParser.h
+++ b/WebCore/dom/XMLDocumentParser.h
@@ -201,6 +201,11 @@ namespace WebCore {
static bool parseDocumentFragment(const String&, DocumentFragment*, Element* parent = 0, FragmentScriptingPermission = FragmentScriptingAllowed);
+ // WMLErrorHandling uses these functions.
+ virtual bool wellFormed() const { return !m_sawError; }
+ virtual int lineNumber() const;
+ virtual int columnNumber() const;
+
private:
// From DocumentParser
virtual void insert(const SegmentedString&);
@@ -209,9 +214,6 @@ namespace WebCore {
virtual bool finishWasCalled();
virtual bool isWaitingForScripts() const;
virtual void stopParsing();
- virtual bool wellFormed() const { return !m_sawError; }
- virtual int lineNumber() const;
- virtual int columnNumber() const;
// from CachedResourceClient
virtual void notifyFinished(CachedResource*);
diff --git a/WebCore/dom/XMLDocumentParserQt.cpp b/WebCore/dom/XMLDocumentParserQt.cpp
index c702c09..678d141 100644
--- a/WebCore/dom/XMLDocumentParserQt.cpp
+++ b/WebCore/dom/XMLDocumentParserQt.cpp
@@ -325,7 +325,8 @@ static inline void handleElementNamespaces(Element* newElement, const QXmlStream
for (int i = 0; i < ns.count(); ++i) {
const QXmlStreamNamespaceDeclaration &decl = ns[i];
String namespaceURI = decl.namespaceUri();
- String namespaceQName = decl.prefix().isEmpty() ? String("xmlns") : String("xmlns:") + String(decl.prefix());
+ String namespaceQName = decl.prefix().isEmpty() ? String("xmlns") : String("xmlns:");
+ namespaceQName.append(decl.prefix());
newElement->setAttributeNS("http://www.w3.org/2000/xmlns/", namespaceQName, namespaceURI, ec, scriptingPermission);
if (ec) // exception setting attributes
return;
diff --git a/WebCore/dom/make_names.pl b/WebCore/dom/make_names.pl
index 9e0784a..4b4c7e3 100755
--- a/WebCore/dom/make_names.pl
+++ b/WebCore/dom/make_names.pl
@@ -470,7 +470,7 @@ sub printNamesHeaderFile
my $lowerNamespace = lc($parameters{namespacePrefix});
print F "#ifndef DOM_$parameters{namespace}NAMES_HIDE_GLOBALS\n";
print F "// Namespace\n";
- print F "extern const WebCore::AtomicString ${lowerNamespace}NamespaceURI;\n\n";
+ print F "extern const WTF::AtomicString ${lowerNamespace}NamespaceURI;\n\n";
if (keys %allTags) {
print F "// Tags\n";
@@ -770,13 +770,13 @@ sub printFactoryHeaderFile
#ifndef $parameters{namespace}ElementFactory_h
#define $parameters{namespace}ElementFactory_h
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
class Element;
class Document;
class QualifiedName;
- class AtomicString;
}
namespace WebCore {
@@ -970,7 +970,7 @@ END
print F <<END
JSNode* createJS$parameters{namespace}Wrapper(ExecState* exec, JSDOMGlobalObject* globalObject, PassRefPtr<$parameters{namespace}Element> element)
{
- typedef HashMap<WebCore::AtomicStringImpl*, Create$parameters{namespace}ElementWrapperFunction> FunctionMap;
+ typedef HashMap<WTF::AtomicStringImpl*, Create$parameters{namespace}ElementWrapperFunction> FunctionMap;
DEFINE_STATIC_LOCAL(FunctionMap, map, ());
if (map.isEmpty()) {
END
@@ -979,7 +979,7 @@ END
print F <<END
v8::Handle<v8::Value> createV8$parameters{namespace}Wrapper($parameters{namespace}Element* element, bool forceNewObject)
{
- typedef HashMap<WebCore::AtomicStringImpl*, Create$parameters{namespace}ElementWrapperFunction> FunctionMap;
+ typedef HashMap<WTF::AtomicStringImpl*, Create$parameters{namespace}ElementWrapperFunction> FunctionMap;
DEFINE_STATIC_LOCAL(FunctionMap, map, ());
if (map.isEmpty()) {
END
diff --git a/WebCore/editing/ApplyStyleCommand.cpp b/WebCore/editing/ApplyStyleCommand.cpp
index d865468..a9d1509 100644
--- a/WebCore/editing/ApplyStyleCommand.cpp
+++ b/WebCore/editing/ApplyStyleCommand.cpp
@@ -51,6 +51,26 @@ namespace WebCore {
using namespace HTMLNames;
+static RGBA32 getRGBAFontColor(CSSStyleDeclaration* style)
+{
+ RefPtr<CSSValue> colorValue = style->getPropertyCSSValue(CSSPropertyColor);
+ if (!colorValue)
+ return Color::transparent;
+
+ ASSERT(colorValue->isPrimitiveValue());
+
+ CSSPrimitiveValue* primitiveColor = static_cast<CSSPrimitiveValue*>(colorValue.get());
+ RGBA32 rgba = 0;
+ if (primitiveColor->primitiveType() != CSSPrimitiveValue::CSS_RGBCOLOR) {
+ CSSParser::parseColor(rgba, colorValue->cssText());
+ // Need to take care of named color such as green and black
+ // This code should be removed after https://bugs.webkit.org/show_bug.cgi?id=28282 is fixed.
+ } else
+ rgba = primitiveColor->getRGBA32Value();
+
+ return rgba;
+}
+
class StyleChange {
public:
explicit StyleChange(CSSStyleDeclaration*, const Position&);
@@ -142,7 +162,7 @@ void StyleChange::reconcileTextDecorationProperties(CSSMutableStyleDeclaration*
style->removeProperty(CSSPropertyTextDecoration);
}
-static int getIdentifierValue(CSSMutableStyleDeclaration* style, int propertyID)
+static int getIdentifierValue(CSSStyleDeclaration* style, int propertyID)
{
if (!style)
return 0;
@@ -209,17 +229,8 @@ void StyleChange::extractTextStyles(CSSMutableStyleDeclaration* style)
break;
}
- if (RefPtr<CSSValue> colorValue = style->getPropertyCSSValue(CSSPropertyColor)) {
- ASSERT(colorValue->isPrimitiveValue());
- CSSPrimitiveValue* primitiveColor = static_cast<CSSPrimitiveValue*>(colorValue.get());
- RGBA32 rgba = 0;
- if (primitiveColor->primitiveType() != CSSPrimitiveValue::CSS_RGBCOLOR) {
- CSSParser::parseColor(rgba, colorValue->cssText());
- // Need to take care of named color such as green and black
- // This code should be removed after https://bugs.webkit.org/show_bug.cgi?id=28282 is fixed.
- } else
- rgba = primitiveColor->getRGBA32Value();
- m_applyFontColor = Color(rgba).name();
+ if (style->getPropertyCSSValue(CSSPropertyColor)) {
+ m_applyFontColor = Color(getRGBAFontColor(style)).name();
style->removeProperty(CSSPropertyColor);
}
@@ -382,6 +393,9 @@ RefPtr<CSSMutableStyleDeclaration> getPropertiesNotInComputedStyle(CSSStyleDecla
if (fontWeightIsBold(result.get()) == fontWeightIsBold(computedStyle))
result->removeProperty(CSSPropertyFontWeight);
+ if (getRGBAFontColor(result.get()) == getRGBAFontColor(computedStyle))
+ result->removeProperty(CSSPropertyColor);
+
return result;
}
@@ -477,7 +491,7 @@ void removeStylesAddedByNode(CSSMutableStyleDeclaration* editingStyle, Node* nod
parentStyle->diff(style.get());
style->diff(editingStyle);
}
-
+
ApplyStyleCommand::ApplyStyleCommand(Document* document, CSSStyleDeclaration* style, EditAction editingAction, EPropertyLevel propertyLevel)
: CompositeEditCommand(document)
, m_style(style->makeMutable())
@@ -793,7 +807,7 @@ void ApplyStyleCommand::cleanupUnstyledAppleStyleSpans(Node* dummySpanAncestor)
}
}
-HTMLElement* ApplyStyleCommand::splitAncestorsWithUnicodeBidi(Node* node, bool before, RefPtr<CSSPrimitiveValue> allowedDirection)
+HTMLElement* ApplyStyleCommand::splitAncestorsWithUnicodeBidi(Node* node, bool before, int allowedDirection)
{
// We are allowed to leave the highest ancestor with unicode-bidi unsplit if it is unicode-bidi: embed and direction: allowedDirection.
// In that case, we return the unsplit ancestor. Otherwise, we return 0.
@@ -803,16 +817,13 @@ HTMLElement* ApplyStyleCommand::splitAncestorsWithUnicodeBidi(Node* node, bool b
Node* highestAncestorWithUnicodeBidi = 0;
Node* nextHighestAncestorWithUnicodeBidi = 0;
- RefPtr<CSSPrimitiveValue> highestAncestorUnicodeBidi;
+ int highestAncestorUnicodeBidi = 0;
for (Node* n = node->parent(); n != block; n = n->parent()) {
- RefPtr<CSSValue> unicodeBidi = computedStyle(n)->getPropertyCSSValue(CSSPropertyUnicodeBidi);
- if (unicodeBidi) {
- ASSERT(unicodeBidi->isPrimitiveValue());
- if (static_cast<CSSPrimitiveValue*>(unicodeBidi.get())->getIdent() != CSSValueNormal) {
- highestAncestorUnicodeBidi = static_cast<CSSPrimitiveValue*>(unicodeBidi.get());
- nextHighestAncestorWithUnicodeBidi = highestAncestorWithUnicodeBidi;
- highestAncestorWithUnicodeBidi = n;
- }
+ int unicodeBidi = getIdentifierValue(computedStyle(n).get(), CSSPropertyUnicodeBidi);
+ if (unicodeBidi && unicodeBidi != CSSValueNormal) {
+ highestAncestorUnicodeBidi = unicodeBidi;
+ nextHighestAncestorWithUnicodeBidi = highestAncestorWithUnicodeBidi;
+ highestAncestorWithUnicodeBidi = n;
}
}
@@ -821,16 +832,14 @@ HTMLElement* ApplyStyleCommand::splitAncestorsWithUnicodeBidi(Node* node, bool b
HTMLElement* unsplitAncestor = 0;
- if (allowedDirection && highestAncestorUnicodeBidi->getIdent() != CSSValueBidiOverride) {
- RefPtr<CSSValue> highestAncestorDirection = computedStyle(highestAncestorWithUnicodeBidi)->getPropertyCSSValue(CSSPropertyDirection);
- ASSERT(highestAncestorDirection->isPrimitiveValue());
- if (static_cast<CSSPrimitiveValue*>(highestAncestorDirection.get())->getIdent() == allowedDirection->getIdent() && highestAncestorWithUnicodeBidi->isHTMLElement()) {
- if (!nextHighestAncestorWithUnicodeBidi)
- return static_cast<HTMLElement*>(highestAncestorWithUnicodeBidi);
+ if (allowedDirection && highestAncestorUnicodeBidi != CSSValueBidiOverride
+ && getIdentifierValue(computedStyle(highestAncestorWithUnicodeBidi).get(), CSSPropertyDirection) == allowedDirection
+ && highestAncestorWithUnicodeBidi->isHTMLElement()) {
+ if (!nextHighestAncestorWithUnicodeBidi)
+ return static_cast<HTMLElement*>(highestAncestorWithUnicodeBidi);
- unsplitAncestor = static_cast<HTMLElement*>(highestAncestorWithUnicodeBidi);
- highestAncestorWithUnicodeBidi = nextHighestAncestorWithUnicodeBidi;
- }
+ unsplitAncestor = static_cast<HTMLElement*>(highestAncestorWithUnicodeBidi);
+ highestAncestorWithUnicodeBidi = nextHighestAncestorWithUnicodeBidi;
}
// Split every ancestor through highest ancestor with embedding.
@@ -852,39 +861,34 @@ void ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock(Node* node, Node* unsp
if (!block)
return;
- Node* n = node->parent();
- while (n != block && n != unsplitAncestor) {
- Node* parent = n->parent();
- if (!n->isStyledElement()) {
- n = parent;
+ Node* parent = 0;
+ for (Node* n = node->parent(); n != block && n != unsplitAncestor; n = parent) {
+ parent = n->parent();
+ if (!n->isStyledElement())
continue;
- }
StyledElement* element = static_cast<StyledElement*>(n);
- RefPtr<CSSValue> unicodeBidi = computedStyle(element)->getPropertyCSSValue(CSSPropertyUnicodeBidi);
- if (unicodeBidi) {
- ASSERT(unicodeBidi->isPrimitiveValue());
- if (static_cast<CSSPrimitiveValue*>(unicodeBidi.get())->getIdent() != CSSValueNormal) {
- // FIXME: This code should really consider the mapped attribute 'dir', the inline style declaration,
- // and all matching style rules in order to determine how to best set the unicode-bidi property to 'normal'.
- // For now, it assumes that if the 'dir' attribute is present, then removing it will suffice, and
- // otherwise it sets the property in the inline style declaration.
- if (element->hasAttribute(dirAttr)) {
- // FIXME: If this is a BDO element, we should probably just remove it if it has no
- // other attributes, like we (should) do with B and I elements.
- removeNodeAttribute(element, dirAttr);
- } else {
- RefPtr<CSSMutableStyleDeclaration> inlineStyle = element->getInlineStyleDecl()->copy();
- inlineStyle->setProperty(CSSPropertyUnicodeBidi, CSSValueNormal);
- inlineStyle->removeProperty(CSSPropertyDirection);
- setNodeAttribute(element, styleAttr, inlineStyle->cssText());
- // FIXME: should this be isSpanWithoutAttributesOrUnstyleStyleSpan? Need a test.
- if (isUnstyledStyleSpan(element))
- removeNodePreservingChildren(element);
- }
- }
+ int unicodeBidi = getIdentifierValue(computedStyle(element).get(), CSSPropertyUnicodeBidi);
+ if (!unicodeBidi || unicodeBidi == CSSValueNormal)
+ continue;
+
+ // FIXME: This code should really consider the mapped attribute 'dir', the inline style declaration,
+ // and all matching style rules in order to determine how to best set the unicode-bidi property to 'normal'.
+ // For now, it assumes that if the 'dir' attribute is present, then removing it will suffice, and
+ // otherwise it sets the property in the inline style declaration.
+ if (element->hasAttribute(dirAttr)) {
+ // FIXME: If this is a BDO element, we should probably just remove it if it has no
+ // other attributes, like we (should) do with B and I elements.
+ removeNodeAttribute(element, dirAttr);
+ } else {
+ RefPtr<CSSMutableStyleDeclaration> inlineStyle = element->getInlineStyleDecl()->copy();
+ inlineStyle->setProperty(CSSPropertyUnicodeBidi, CSSValueNormal);
+ inlineStyle->removeProperty(CSSPropertyDirection);
+ setNodeAttribute(element, styleAttr, inlineStyle->cssText());
+ // FIXME: should this be isSpanWithoutAttributesOrUnstyleStyleSpan? Need a test.
+ if (isUnstyledStyleSpan(element))
+ removeNodePreservingChildren(element);
}
- n = parent;
}
}
@@ -931,21 +935,16 @@ void ApplyStyleCommand::applyInlineStyle(CSSMutableStyleDeclaration *style)
endDummySpanAncestor = dummySpanAncestorForNode(end.node());
}
- RefPtr<CSSValue> unicodeBidi = style->getPropertyCSSValue(CSSPropertyUnicodeBidi);
- RefPtr<CSSValue> direction;
+ int unicodeBidi = getIdentifierValue(style, CSSPropertyUnicodeBidi);
+ int direction = 0;
HTMLElement* startUnsplitAncestor = 0;
HTMLElement* endUnsplitAncestor = 0;
if (unicodeBidi) {
- RefPtr<CSSPrimitiveValue> allowedDirection;
- ASSERT(unicodeBidi->isPrimitiveValue());
- if (static_cast<CSSPrimitiveValue*>(unicodeBidi.get())->getIdent() == CSSValueEmbed) {
- // Leave alone an ancestor that provides the desired single level embedding, if there is one.
- direction = style->getPropertyCSSValue(CSSPropertyDirection);
- ASSERT(direction->isPrimitiveValue());
- allowedDirection = static_cast<CSSPrimitiveValue*>(direction.get());
- }
- startUnsplitAncestor = splitAncestorsWithUnicodeBidi(start.node(), true, allowedDirection);
- endUnsplitAncestor = splitAncestorsWithUnicodeBidi(end.node(), false, allowedDirection);
+ // Leave alone an ancestor that provides the desired single level embedding, if there is one.
+ if (unicodeBidi == CSSValueEmbed)
+ direction = getIdentifierValue(style, CSSPropertyDirection);
+ startUnsplitAncestor = splitAncestorsWithUnicodeBidi(start.node(), true, direction);
+ endUnsplitAncestor = splitAncestorsWithUnicodeBidi(end.node(), false, direction);
removeEmbeddingUpToEnclosingBlock(start.node(), startUnsplitAncestor);
removeEmbeddingUpToEnclosingBlock(end.node(), endUnsplitAncestor);
}
@@ -969,7 +968,7 @@ void ApplyStyleCommand::applyInlineStyle(CSSMutableStyleDeclaration *style)
if (embeddingRemoveStart != removeStart || embeddingRemoveEnd != end) {
RefPtr<CSSMutableStyleDeclaration> embeddingStyle = CSSMutableStyleDeclaration::create();
embeddingStyle->setProperty(CSSPropertyUnicodeBidi, CSSValueEmbed);
- embeddingStyle->setProperty(CSSPropertyDirection, static_cast<CSSPrimitiveValue*>(direction.get())->getIdent());
+ embeddingStyle->setProperty(CSSPropertyDirection, direction);
if (comparePositions(embeddingRemoveStart, embeddingRemoveEnd) <= 0)
removeInlineStyle(embeddingStyle, embeddingRemoveStart, embeddingRemoveEnd);
@@ -1008,29 +1007,17 @@ void ApplyStyleCommand::applyInlineStyle(CSSMutableStyleDeclaration *style)
// Avoid applying the unicode-bidi and direction properties beneath ancestors that already have them.
Node* startEnclosingBlock = enclosingBlock(start.node());
for (Node* n = start.node(); n != startEnclosingBlock; n = n->parent()) {
- if (n->isHTMLElement()) {
- RefPtr<CSSValue> ancestorUnicodeBidi = computedStyle(n)->getPropertyCSSValue(CSSPropertyUnicodeBidi);
- if (ancestorUnicodeBidi) {
- ASSERT(ancestorUnicodeBidi->isPrimitiveValue());
- if (static_cast<CSSPrimitiveValue*>(ancestorUnicodeBidi.get())->getIdent() == CSSValueEmbed) {
- embeddingApplyStart = positionInParentAfterNode(n);
- break;
- }
- }
+ if (n->isHTMLElement() && getIdentifierValue(computedStyle(n).get(), CSSPropertyUnicodeBidi) == CSSValueEmbed) {
+ embeddingApplyStart = positionInParentAfterNode(n);
+ break;
}
}
Node* endEnclosingBlock = enclosingBlock(end.node());
for (Node* n = end.node(); n != endEnclosingBlock; n = n->parent()) {
- if (n->isHTMLElement()) {
- RefPtr<CSSValue> ancestorUnicodeBidi = computedStyle(n)->getPropertyCSSValue(CSSPropertyUnicodeBidi);
- if (ancestorUnicodeBidi) {
- ASSERT(ancestorUnicodeBidi->isPrimitiveValue());
- if (static_cast<CSSPrimitiveValue*>(ancestorUnicodeBidi.get())->getIdent() == CSSValueEmbed) {
- embeddingApplyEnd = positionInParentBeforeNode(n);
- break;
- }
- }
+ if (n->isHTMLElement() && getIdentifierValue(computedStyle(n).get(), CSSPropertyUnicodeBidi) == CSSValueEmbed) {
+ embeddingApplyEnd = positionInParentBeforeNode(n);
+ break;
}
}
}
@@ -1039,7 +1026,7 @@ void ApplyStyleCommand::applyInlineStyle(CSSMutableStyleDeclaration *style)
if (embeddingApplyStart.isNotNull() && embeddingApplyEnd.isNotNull()) {
RefPtr<CSSMutableStyleDeclaration> embeddingStyle = CSSMutableStyleDeclaration::create();
embeddingStyle->setProperty(CSSPropertyUnicodeBidi, CSSValueEmbed);
- embeddingStyle->setProperty(CSSPropertyDirection, static_cast<CSSPrimitiveValue*>(direction.get())->getIdent());
+ embeddingStyle->setProperty(CSSPropertyDirection, direction);
applyInlineStyleToRange(embeddingStyle.get(), embeddingApplyStart, embeddingApplyEnd);
}
@@ -1318,9 +1305,9 @@ bool ApplyStyleCommand::removeCSSStyle(CSSMutableStyleDeclaration* style, HTMLEl
removed = true;
if (mode == RemoveNone)
return true;
- removeCSSProperty(decl, propertyID);
+ removeCSSProperty(elem, propertyID);
if (propertyID == CSSPropertyUnicodeBidi && !decl->getPropertyValue(CSSPropertyDirection).isEmpty())
- removeCSSProperty(decl, CSSPropertyDirection);
+ removeCSSProperty(elem, CSSPropertyDirection);
}
}
@@ -1380,32 +1367,7 @@ PassRefPtr<CSSMutableStyleDeclaration> ApplyStyleCommand::extractTextDecorationS
RefPtr<CSSValue> property = style->getPropertyCSSValue(CSSPropertyTextDecoration);
if (property && !equalIgnoringCase(property->cssText(), "none"))
- removeCSSProperty(style.get(), CSSPropertyTextDecoration);
-
- return textDecorationStyle.release();
-}
-
-PassRefPtr<CSSMutableStyleDeclaration> ApplyStyleCommand::extractAndNegateTextDecorationStyle(Node* node)
-{
- ASSERT(node);
- ASSERT(node->isElementNode());
-
- // non-html elements not handled yet
- if (!node->isHTMLElement())
- return 0;
-
- RefPtr<CSSComputedStyleDeclaration> nodeStyle = computedStyle(node);
- ASSERT(nodeStyle);
-
- int properties[1] = { CSSPropertyTextDecoration };
- RefPtr<CSSMutableStyleDeclaration> textDecorationStyle = nodeStyle->copyPropertiesInSet(properties, 1);
-
- RefPtr<CSSValue> property = nodeStyle->getPropertyCSSValue(CSSPropertyTextDecoration);
- if (property && !equalIgnoringCase(property->cssText(), "none")) {
- RefPtr<CSSMutableStyleDeclaration> newStyle = textDecorationStyle->copy();
- newStyle->setProperty(CSSPropertyTextDecoration, "none");
- applyTextDecorationStyle(node, newStyle.get());
- }
+ removeCSSProperty(element, CSSPropertyTextDecoration);
return textDecorationStyle.release();
}
@@ -1443,7 +1405,7 @@ void ApplyStyleCommand::applyTextDecorationStyle(Node *node, CSSMutableStyleDecl
surroundNodeRangeWithElement(node, node, createHTMLElement(document(), sTag));
}
-void ApplyStyleCommand::pushDownTextDecorationStyleAroundNode(Node* targetNode, bool forceNegate)
+void ApplyStyleCommand::pushDownTextDecorationStyleAroundNode(Node* targetNode)
{
ASSERT(targetNode);
Node* highestAncestor = highestAncestorWithTextDecoration(targetNode);
@@ -1455,7 +1417,7 @@ void ApplyStyleCommand::pushDownTextDecorationStyleAroundNode(Node* targetNode,
while (current != targetNode) {
ASSERT(current);
ASSERT(current->contains(targetNode));
- RefPtr<CSSMutableStyleDeclaration> decoration = forceNegate ? extractAndNegateTextDecorationStyle(current) : extractTextDecorationStyle(current);
+ RefPtr<CSSMutableStyleDeclaration> decoration = extractTextDecorationStyle(current);
// The inner loop will go through children on each level
Node* child = current->firstChild();
@@ -1476,34 +1438,6 @@ void ApplyStyleCommand::pushDownTextDecorationStyleAroundNode(Node* targetNode,
}
}
-void ApplyStyleCommand::pushDownTextDecorationStyleAtBoundaries(const Position &start, const Position &end)
-{
- // We need to work in two passes. First we push down any inline
- // styles that set text decoration. Then we look for any remaining
- // styles (caused by stylesheets) and explicitly negate text
- // decoration while pushing down.
-
- pushDownTextDecorationStyleAroundNode(start.node(), false);
- updateLayout();
- pushDownTextDecorationStyleAroundNode(start.node(), true);
-
- pushDownTextDecorationStyleAroundNode(end.node(), false);
- updateLayout();
- pushDownTextDecorationStyleAroundNode(end.node(), true);
-}
-
-// FIXME: Why does this exist? Callers should either use lastOffsetForEditing or lastOffsetInNode
-static int maxRangeOffset(Node *n)
-{
- if (n->offsetInCharacters())
- return n->maxCharacterOffset();
-
- if (n->isElementNode())
- return n->childNodeCount();
-
- return 1;
-}
-
void ApplyStyleCommand::removeInlineStyle(PassRefPtr<CSSMutableStyleDeclaration> style, const Position &start, const Position &end)
{
ASSERT(start.isNotNull());
@@ -1515,7 +1449,8 @@ void ApplyStyleCommand::removeInlineStyle(PassRefPtr<CSSMutableStyleDeclaration>
RefPtr<CSSValue> textDecorationSpecialProperty = style->getPropertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect);
if (textDecorationSpecialProperty) {
- pushDownTextDecorationStyleAtBoundaries(start.downstream(), end.upstream());
+ pushDownTextDecorationStyleAroundNode(start.downstream().node());
+ pushDownTextDecorationStyleAroundNode(end.upstream().node());
style = style->copy();
style->setProperty(CSSPropertyTextDecoration, textDecorationSpecialProperty->cssText(), style->getPropertyPriority(CSSPropertyWebkitTextDecorationsInEffect));
}
@@ -1545,8 +1480,8 @@ void ApplyStyleCommand::removeInlineStyle(PassRefPtr<CSSMutableStyleDeclaration>
// Since elem must have been fully selected, and it is at the end
// of the selection, it is clear we can set the new e offset to
// the max range offset of prev.
- ASSERT(e.deprecatedEditingOffset() >= maxRangeOffset(e.node()));
- e = Position(prev, maxRangeOffset(prev));
+ ASSERT(e.deprecatedEditingOffset() >= lastOffsetForEditing(e.node()));
+ e = Position(prev, lastOffsetForEditing(prev));
}
}
}
@@ -1808,33 +1743,6 @@ void ApplyStyleCommand::addBlockStyle(const StyleChange& styleChange, HTMLElemen
setNodeAttribute(block, styleAttr, cssText);
}
-static bool fontColorChangesComputedStyle(const Color& computedStyleColor, StyleChange styleChange)
-{
- if (styleChange.applyFontColor()) {
- if (Color(styleChange.fontColor()) != computedStyleColor)
- return true;
- }
- return false;
-}
-
-static bool fontSizeChangesComputedStyle(RenderStyle* computedStyle, StyleChange styleChange)
-{
- if (styleChange.applyFontSize()) {
- if (styleChange.fontSize().toInt() != computedStyle->fontSize())
- return true;
- }
- return false;
-}
-
-static bool fontFaceChangesComputedStyle(RenderStyle* computedStyle, StyleChange styleChange)
-{
- if (styleChange.applyFontFace()) {
- if (computedStyle->fontDescription().family().family().string() != styleChange.fontFace())
- return true;
- }
- return false;
-}
-
void ApplyStyleCommand::addInlineStyleIfNeeded(CSSMutableStyleDeclaration *style, Node *startNode, Node *endNode)
{
if (m_removeOnly)
@@ -1842,27 +1750,18 @@ void ApplyStyleCommand::addInlineStyleIfNeeded(CSSMutableStyleDeclaration *style
StyleChange styleChange(style, Position(startNode, 0));
- //
// Font tags need to go outside of CSS so that CSS font sizes override leagcy font sizes.
- //
if (styleChange.applyFontColor() || styleChange.applyFontFace() || styleChange.applyFontSize()) {
RefPtr<Element> fontElement = createFontElement(document());
- RenderStyle* computedStyle = startNode->computedStyle();
-
- // We only want to insert a font element if it will end up changing the style of the
- // text somehow. Otherwise it will be a garbage node that will create problems for us
- // most notably when we apply a blockquote style for a message reply.
- if (fontColorChangesComputedStyle(computedStyle->color(), styleChange)
- || fontFaceChangesComputedStyle(computedStyle, styleChange)
- || fontSizeChangesComputedStyle(computedStyle, styleChange)) {
- if (styleChange.applyFontColor())
- fontElement->setAttribute(colorAttr, styleChange.fontColor());
- if (styleChange.applyFontFace())
- fontElement->setAttribute(faceAttr, styleChange.fontFace());
- if (styleChange.applyFontSize())
- fontElement->setAttribute(sizeAttr, styleChange.fontSize());
- surroundNodeRangeWithElement(startNode, endNode, fontElement.get());
- }
+
+ if (styleChange.applyFontColor())
+ fontElement->setAttribute(colorAttr, styleChange.fontColor());
+ if (styleChange.applyFontFace())
+ fontElement->setAttribute(faceAttr, styleChange.fontFace());
+ if (styleChange.applyFontSize())
+ fontElement->setAttribute(sizeAttr, styleChange.fontSize());
+
+ surroundNodeRangeWithElement(startNode, endNode, fontElement.get());
}
if (styleChange.cssStyle().length()) {
diff --git a/WebCore/editing/ApplyStyleCommand.h b/WebCore/editing/ApplyStyleCommand.h
index 0aa8110..86c24da 100644
--- a/WebCore/editing/ApplyStyleCommand.h
+++ b/WebCore/editing/ApplyStyleCommand.h
@@ -82,11 +82,9 @@ private:
bool nodeFullySelected(Node*, const Position& start, const Position& end) const;
bool nodeFullyUnselected(Node*, const Position& start, const Position& end) const;
PassRefPtr<CSSMutableStyleDeclaration> extractTextDecorationStyle(Node*);
- PassRefPtr<CSSMutableStyleDeclaration> extractAndNegateTextDecorationStyle(Node*);
void applyTextDecorationStyle(Node*, CSSMutableStyleDeclaration *style);
- void pushDownTextDecorationStyleAroundNode(Node*, bool forceNegate);
- void pushDownTextDecorationStyleAtBoundaries(const Position& start, const Position& end);
-
+ void pushDownTextDecorationStyleAroundNode(Node*);
+
// style-application helpers
void applyBlockStyle(CSSMutableStyleDeclaration*);
void applyRelativeFontStyleChange(CSSMutableStyleDeclaration*);
@@ -108,7 +106,7 @@ private:
float computedFontSize(const Node*);
void joinChildTextNodes(Node*, const Position& start, const Position& end);
- HTMLElement* splitAncestorsWithUnicodeBidi(Node*, bool before, RefPtr<CSSPrimitiveValue> allowedDirection);
+ HTMLElement* splitAncestorsWithUnicodeBidi(Node*, bool before, int allowedDirection);
void removeEmbeddingUpToEnclosingBlock(Node* node, Node* unsplitAncestor);
void updateStartEnd(const Position& newStart, const Position& newEnd);
diff --git a/WebCore/editing/CompositeEditCommand.cpp b/WebCore/editing/CompositeEditCommand.cpp
index c5a8959..5ec87d6 100644
--- a/WebCore/editing/CompositeEditCommand.cpp
+++ b/WebCore/editing/CompositeEditCommand.cpp
@@ -370,9 +370,9 @@ void CompositeEditCommand::deleteSelection(const VisibleSelection &selection, bo
applyCommandToComposite(DeleteSelectionCommand::create(selection, smartDelete, mergeBlocksAfterDelete, replace, expandForSpecialElements));
}
-void CompositeEditCommand::removeCSSProperty(PassRefPtr<CSSMutableStyleDeclaration> style, CSSPropertyID property)
+void CompositeEditCommand::removeCSSProperty(PassRefPtr<StyledElement> element, CSSPropertyID property)
{
- applyCommandToComposite(RemoveCSSPropertyCommand::create(document(), style, property));
+ applyCommandToComposite(RemoveCSSPropertyCommand::create(document(), element, property));
}
void CompositeEditCommand::removeNodeAttribute(PassRefPtr<Element> element, const QualifiedName& attribute)
diff --git a/WebCore/editing/CompositeEditCommand.h b/WebCore/editing/CompositeEditCommand.h
index 0cceaaa..9d69925 100644
--- a/WebCore/editing/CompositeEditCommand.h
+++ b/WebCore/editing/CompositeEditCommand.h
@@ -34,6 +34,7 @@ namespace WebCore {
class CSSStyleDeclaration;
class HTMLElement;
+class StyledElement;
class Text;
class CompositeEditCommand : public EditCommand {
@@ -68,7 +69,7 @@ protected:
void rebalanceWhitespace();
void rebalanceWhitespaceAt(const Position&);
void prepareWhitespaceAtPositionForSplit(Position&);
- void removeCSSProperty(PassRefPtr<CSSMutableStyleDeclaration>, CSSPropertyID);
+ void removeCSSProperty(PassRefPtr<StyledElement>, CSSPropertyID);
void removeNodeAttribute(PassRefPtr<Element>, const QualifiedName& attribute);
void removeChildrenInRange(PassRefPtr<Node>, unsigned from, unsigned to);
virtual void removeNode(PassRefPtr<Node>);
diff --git a/WebCore/editing/Editor.cpp b/WebCore/editing/Editor.cpp
index 44d8d5f..7a1ad4d 100644
--- a/WebCore/editing/Editor.cpp
+++ b/WebCore/editing/Editor.cpp
@@ -66,6 +66,7 @@
#include "Settings.h"
#include "Sound.h"
#include "Text.h"
+#include "TextEvent.h"
#include "TextIterator.h"
#include "TypingCommand.h"
#include "UserTypingGestureIndicator.h"
@@ -127,6 +128,26 @@ void Editor::handleInputMethodKeydown(KeyboardEvent* event)
c->handleInputMethodKeydown(event);
}
+bool Editor::handleTextEvent(TextEvent* event)
+{
+ if (event->isPaste()) {
+ if (event->pastingFragment())
+ replaceSelectionWithFragment(event->pastingFragment(), false, event->shouldSmartReplace(), event->shouldMatchStyle());
+ else
+ replaceSelectionWithText(event->data(), false, event->shouldSmartReplace());
+ return true;
+ }
+
+ String data = event->data();
+ if (data == "\n") {
+ if (event->isLineBreak())
+ return insertLineBreak();
+ return insertParagraphSeparator();
+ }
+
+ return insertTextWithoutSendingTextEvent(data, false, event);
+}
+
bool Editor::canEdit() const
{
return m_frame->selection()->isContentEditable();
@@ -282,11 +303,29 @@ void Editor::deleteSelectionWithSmartDelete(bool smartDelete)
applyCommand(DeleteSelectionCommand::create(m_frame->document(), smartDelete));
}
+void Editor::pasteAsPlainText(const String& pastingText, bool smartReplace)
+{
+ Node* target = findEventTargetFromSelection();
+ if (!target)
+ return;
+ ExceptionCode ec = 0;
+ target->dispatchEvent(TextEvent::createForPlainTextPaste(m_frame->domWindow(), pastingText, smartReplace), ec);
+}
+
+void Editor::pasteAsFragment(PassRefPtr<DocumentFragment> pastingFragment, bool smartReplace, bool matchStyle)
+{
+ Node* target = findEventTargetFromSelection();
+ if (!target)
+ return;
+ ExceptionCode ec = 0;
+ target->dispatchEvent(TextEvent::createForFragmentPaste(m_frame->domWindow(), pastingFragment, smartReplace, matchStyle), ec);
+}
+
void Editor::pasteAsPlainTextWithPasteboard(Pasteboard* pasteboard)
{
String text = pasteboard->plainText(m_frame);
if (client() && client()->shouldInsertText(text, selectedRange().get(), EditorInsertActionPasted))
- replaceSelectionWithText(text, false, canSmartReplaceWithPasteboard(pasteboard));
+ pasteAsPlainText(text, canSmartReplaceWithPasteboard(pasteboard));
}
void Editor::pasteWithPasteboard(Pasteboard* pasteboard, bool allowPlainText)
@@ -295,7 +334,7 @@ void Editor::pasteWithPasteboard(Pasteboard* pasteboard, bool allowPlainText)
bool chosePlainText;
RefPtr<DocumentFragment> fragment = pasteboard->documentFragment(m_frame, range, allowPlainText, chosePlainText);
if (fragment && shouldInsertFragment(fragment, range, EditorInsertActionPasted))
- replaceSelectionWithFragment(fragment, false, canSmartReplaceWithPasteboard(pasteboard), chosePlainText);
+ pasteAsFragment(fragment, canSmartReplaceWithPasteboard(pasteboard), chosePlainText);
}
bool Editor::canSmartReplaceWithPasteboard(Pasteboard* pasteboard)
@@ -706,12 +745,9 @@ void Editor::clearLastEditCommand()
// the event handler NOT setting the return value to false
bool Editor::dispatchCPPEvent(const AtomicString &eventType, ClipboardAccessPolicy policy)
{
- Node* target = m_frame->selection()->start().element();
- if (!target)
- target = m_frame->document()->body();
+ Node* target = findEventTargetFromSelection();
if (!target)
return true;
- target = target->shadowAncestorNode();
RefPtr<Clipboard> clipboard = newGeneralClipboard(policy, m_frame);
@@ -726,6 +762,16 @@ bool Editor::dispatchCPPEvent(const AtomicString &eventType, ClipboardAccessPoli
return !noDefaultProcessing;
}
+Node* Editor::findEventTargetFromSelection() const
+{
+ Node* target = m_frame->selection()->start().element();
+ if (!target)
+ target = m_frame->document()->body();
+ if (!target)
+ return 0;
+ return target->shadowAncestorNode();
+}
+
void Editor::applyStyle(CSSStyleDeclaration* style, EditAction editingAction)
{
switch (m_frame->selection()->selectionType()) {
@@ -2359,7 +2405,7 @@ bool Editor::spellCheckingEnabledInFocusedNode() const
const Node* node = frame()->document()->focusedNode();
while (node) {
if (node->isElementNode()) {
- const WebCore::AtomicString& value = static_cast<const Element*>(node)->getAttribute(spellcheckAttr);
+ const WTF::AtomicString& value = static_cast<const Element*>(node)->getAttribute(spellcheckAttr);
if (equalIgnoringCase(value, "true"))
return true;
if (equalIgnoringCase(value, "false"))
diff --git a/WebCore/editing/Editor.h b/WebCore/editing/Editor.h
index db249e7..13e6df5 100644
--- a/WebCore/editing/Editor.h
+++ b/WebCore/editing/Editor.h
@@ -49,6 +49,7 @@ class KillRing;
class Pasteboard;
class SimpleFontData;
class Text;
+class TextEvent;
struct CompositionUnderline {
CompositionUnderline()
@@ -77,6 +78,7 @@ public:
void handleKeyboardEvent(KeyboardEvent*);
void handleInputMethodKeydown(KeyboardEvent*);
+ bool handleTextEvent(TextEvent*);
bool canEdit() const;
bool canEditRichly() const;
@@ -293,6 +295,10 @@ public:
PassRefPtr<Range> nextVisibleRange(Range*, const String&, bool forward, bool caseFlag, bool wrapFlag);
void addToKillRing(Range*, bool prepend);
+
+ void pasteAsFragment(PassRefPtr<DocumentFragment>, bool smartReplace, bool matchStyle);
+ void pasteAsPlainText(const String&, bool smartReplace);
+
private:
Frame* m_frame;
OwnPtr<DeleteButtonController> m_deleteButtonController;
@@ -326,6 +332,7 @@ private:
PassRefPtr<Range> lastVisibleRange(const String&, bool caseFlag);
void changeSelectionAfterCommand(const VisibleSelection& newSelection, bool closeTyping, bool clearTypingStyle);
+ Node* findEventTargetFromSelection() const;
};
inline void Editor::setStartNewKillRingSequence(bool flag)
diff --git a/WebCore/editing/HTMLInterchange.h b/WebCore/editing/HTMLInterchange.h
index 3b68efb..4029ea2 100644
--- a/WebCore/editing/HTMLInterchange.h
+++ b/WebCore/editing/HTMLInterchange.h
@@ -26,9 +26,10 @@
#ifndef HTMLInterchange_h
#define HTMLInterchange_h
+#include <wtf/Forward.h>
+
namespace WebCore {
-class String;
class Text;
#define AppleInterchangeNewline "Apple-interchange-newline"
diff --git a/WebCore/editing/RemoveCSSPropertyCommand.cpp b/WebCore/editing/RemoveCSSPropertyCommand.cpp
index 17870a7..8b37db8 100644
--- a/WebCore/editing/RemoveCSSPropertyCommand.cpp
+++ b/WebCore/editing/RemoveCSSPropertyCommand.cpp
@@ -31,25 +31,27 @@
namespace WebCore {
-RemoveCSSPropertyCommand::RemoveCSSPropertyCommand(Document* document, PassRefPtr<CSSMutableStyleDeclaration> style, CSSPropertyID property)
+RemoveCSSPropertyCommand::RemoveCSSPropertyCommand(Document* document, PassRefPtr<StyledElement> element, CSSPropertyID property)
: SimpleEditCommand(document)
- , m_style(style)
+ , m_element(element)
, m_property(property)
, m_important(false)
{
- ASSERT(m_style);
+ ASSERT(m_element);
}
void RemoveCSSPropertyCommand::doApply()
{
- m_oldValue = m_style->getPropertyValue(m_property);
- m_important = m_style->getPropertyPriority(m_property);
- m_style->removeProperty(m_property);
+ CSSMutableStyleDeclaration* style = m_element->inlineStyleDecl();
+ m_oldValue = style->getPropertyValue(m_property);
+ m_important = style->getPropertyPriority(m_property);
+ style->removeProperty(m_property);
}
void RemoveCSSPropertyCommand::doUnapply()
{
- m_style->setProperty(m_property, m_oldValue, m_important);
+ CSSMutableStyleDeclaration* style = m_element->inlineStyleDecl();
+ style->setProperty(m_property, m_oldValue, m_important);
}
} // namespace WebCore
diff --git a/WebCore/editing/RemoveCSSPropertyCommand.h b/WebCore/editing/RemoveCSSPropertyCommand.h
index 836f9d7..46e0498 100644
--- a/WebCore/editing/RemoveCSSPropertyCommand.h
+++ b/WebCore/editing/RemoveCSSPropertyCommand.h
@@ -29,23 +29,24 @@
#include "EditCommand.h"
#include "CSSMutableStyleDeclaration.h"
#include "CSSPropertyNames.h"
+#include "StyledElement.h"
namespace WebCore {
class RemoveCSSPropertyCommand : public SimpleEditCommand {
public:
- static PassRefPtr<RemoveCSSPropertyCommand> create(Document* document, PassRefPtr<CSSMutableStyleDeclaration> style, CSSPropertyID property)
+ static PassRefPtr<RemoveCSSPropertyCommand> create(Document* document, PassRefPtr<StyledElement> element, CSSPropertyID property)
{
- return adoptRef(new RemoveCSSPropertyCommand(document, style, property));
+ return adoptRef(new RemoveCSSPropertyCommand(document, element, property));
}
private:
- RemoveCSSPropertyCommand(Document*, PassRefPtr<CSSMutableStyleDeclaration>, CSSPropertyID property);
+ RemoveCSSPropertyCommand(Document*, PassRefPtr<StyledElement>, CSSPropertyID property);
virtual void doApply();
virtual void doUnapply();
- RefPtr<CSSMutableStyleDeclaration> m_style;
+ RefPtr<StyledElement> m_element;
CSSPropertyID m_property;
String m_oldValue;
bool m_important;
diff --git a/WebCore/editing/TextIterator.cpp b/WebCore/editing/TextIterator.cpp
index f3bd9df..9589bff 100644
--- a/WebCore/editing/TextIterator.cpp
+++ b/WebCore/editing/TextIterator.cpp
@@ -37,6 +37,7 @@
#include "RenderTableCell.h"
#include "RenderTableRow.h"
#include "RenderTextControl.h"
+#include "RenderTextFragment.h"
#include "VisiblePosition.h"
#include "visible_units.h"
@@ -253,10 +254,13 @@ TextIterator::TextIterator()
, m_positionNode(0)
, m_textCharacters(0)
, m_textLength(0)
+ , m_remainingTextBox(0)
+ , m_firstLetterText(0)
, m_lastCharacter(0)
, m_emitsCharactersBetweenAllVisiblePositions(false)
, m_entersTextControls(false)
, m_emitsTextWithoutTranscoding(false)
+ , m_handledFirstLetter(false)
{
}
@@ -268,10 +272,16 @@ TextIterator::TextIterator(const Range* r, TextIteratorBehavior behavior)
, m_positionNode(0)
, m_textCharacters(0)
, m_textLength(0)
+ , m_remainingTextBox(0)
+ , m_firstLetterText(0)
, m_emitsCharactersBetweenAllVisiblePositions(behavior & TextIteratorEmitsCharactersBetweenAllVisiblePositions)
, m_entersTextControls(behavior & TextIteratorEntersTextControls)
, m_emitsTextWithoutTranscoding(behavior & TextIteratorEmitsTextsWithoutTranscoding)
+ , m_handledFirstLetter(false)
{
+ // FIXME: should support TextIteratorEndsAtEditingBoundary http://webkit.org/b/43609
+ ASSERT(behavior != TextIteratorEndsAtEditingBoundary);
+
if (!r)
return;
@@ -344,6 +354,12 @@ void TextIterator::advance()
return;
}
+ if (!m_textBox && m_remainingTextBox) {
+ m_textBox = m_remainingTextBox;
+ m_remainingTextBox = 0;
+ m_firstLetterText = 0;
+ m_offset = 0;
+ }
// handle remembered text box
if (m_textBox) {
handleTextBox();
@@ -417,6 +433,8 @@ void TextIterator::advance()
pushFullyClippedState(m_fullyClippedStack, m_node);
m_handledNode = false;
m_handledChildren = false;
+ m_handledFirstLetter = false;
+ m_firstLetterText = 0;
// how would this ever be?
if (m_positionNode)
@@ -435,8 +453,6 @@ bool TextIterator::handleTextNode()
return false;
RenderText* renderer = toRenderText(m_node->renderer());
- if (renderer->style()->visibility() != VISIBLE)
- return false;
m_lastTextNode = m_node;
String str = renderer->text();
@@ -444,10 +460,22 @@ bool TextIterator::handleTextNode()
// handle pre-formatted text
if (!renderer->style()->collapseWhiteSpace()) {
int runStart = m_offset;
- if (m_lastTextNodeEndedWithCollapsedSpace) {
+ if (m_lastTextNodeEndedWithCollapsedSpace && hasVisibleTextNode(renderer)) {
emitCharacter(' ', m_node, 0, runStart, runStart);
return false;
}
+ if (!m_handledFirstLetter && renderer->isTextFragment()) {
+ handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer));
+ if (m_firstLetterText) {
+ String firstLetter = m_firstLetterText->text();
+ emitText(m_node, m_firstLetterText, m_offset, firstLetter.length());
+ m_firstLetterText = 0;
+ m_textBox = 0;
+ return false;
+ }
+ }
+ if (renderer->style()->visibility() != VISIBLE)
+ return false;
int strLength = str.length();
int end = (m_node == m_endContainer) ? m_endOffset : INT_MAX;
int runEnd = min(strLength, end);
@@ -460,6 +488,15 @@ bool TextIterator::handleTextNode()
}
if (!renderer->firstTextBox() && str.length() > 0) {
+ if (!m_handledFirstLetter && renderer->isTextFragment()) {
+ handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer));
+ if (m_firstLetterText) {
+ handleTextBox();
+ return false;
+ }
+ }
+ if (renderer->style()->visibility() != VISIBLE)
+ return false;
m_lastTextNodeEndedWithCollapsedSpace = true; // entire block is collapsed space
return true;
}
@@ -475,13 +512,19 @@ bool TextIterator::handleTextNode()
}
m_textBox = renderer->containsReversedText() ? (m_sortedTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0]) : renderer->firstTextBox();
+ if (!m_handledFirstLetter && renderer->isTextFragment() && !m_offset)
+ handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer));
handleTextBox();
return true;
}
void TextIterator::handleTextBox()
{
- RenderText* renderer = toRenderText(m_node->renderer());
+ RenderText* renderer = m_firstLetterText ? m_firstLetterText : toRenderText(m_node->renderer());
+ if (renderer->style()->visibility() != VISIBLE) {
+ m_textBox = 0;
+ return;
+ }
String str = renderer->text();
int start = m_offset;
int end = (m_node == m_endContainer) ? m_endOffset : INT_MAX;
@@ -527,7 +570,7 @@ void TextIterator::handleTextBox()
subrunEnd = runEnd;
m_offset = subrunEnd;
- emitText(m_node, runStart, subrunEnd);
+ emitText(m_node, renderer, runStart, subrunEnd);
}
// If we are doing a subrun that doesn't go to the end of the text box,
@@ -549,6 +592,33 @@ void TextIterator::handleTextBox()
if (renderer->containsReversedText())
++m_sortedTextBoxesPosition;
}
+ if (!m_textBox && m_remainingTextBox) {
+ m_textBox = m_remainingTextBox;
+ m_remainingTextBox = 0;
+ m_firstLetterText = 0;
+ m_offset = 0;
+ handleTextBox();
+ }
+}
+
+void TextIterator::handleTextNodeFirstLetter(RenderTextFragment* renderer)
+{
+ if (renderer->firstLetter()) {
+ RenderObject* r = renderer->firstLetter();
+ if (r->style()->visibility() != VISIBLE)
+ return;
+ for (RenderObject *currChild = r->firstChild(); currChild; currChild->nextSibling()) {
+ if (currChild->isText()) {
+ RenderText* firstLetter = toRenderText(currChild);
+ m_handledFirstLetter = true;
+ m_remainingTextBox = m_textBox;
+ m_textBox = firstLetter->firstTextBox();
+ m_firstLetterText = firstLetter;
+ return;
+ }
+ }
+ }
+ m_handledFirstLetter = true;
}
bool TextIterator::handleReplacedElement()
@@ -597,6 +667,18 @@ bool TextIterator::handleReplacedElement()
return true;
}
+bool TextIterator::hasVisibleTextNode(RenderText* renderer)
+{
+ if (renderer->style()->visibility() == VISIBLE)
+ return true;
+ if (renderer->isTextFragment()) {
+ RenderTextFragment* fragment = static_cast<RenderTextFragment*>(renderer);
+ if (fragment->firstLetter() && fragment->firstLetter()->style()->visibility() == VISIBLE)
+ return true;
+ }
+ return false;
+}
+
static bool shouldEmitTabBeforeNode(Node* node)
{
RenderObject* r = node->renderer();
@@ -888,9 +970,9 @@ void TextIterator::emitCharacter(UChar c, Node* textNode, Node* offsetBaseNode,
m_lastCharacter = c;
}
-void TextIterator::emitText(Node* textNode, int textStartOffset, int textEndOffset)
+void TextIterator::emitText(Node* textNode, RenderObject* renderObject, int textStartOffset, int textEndOffset)
{
- RenderText* renderer = toRenderText(m_node->renderer());
+ RenderText* renderer = toRenderText(renderObject);
m_text = m_emitsTextWithoutTranscoding ? renderer->textWithoutTranscoding() : renderer->text();
ASSERT(m_text.characters());
@@ -906,6 +988,11 @@ void TextIterator::emitText(Node* textNode, int textStartOffset, int textEndOffs
m_hasEmitted = true;
}
+void TextIterator::emitText(Node* textNode, int textStartOffset, int textEndOffset)
+{
+ emitText(textNode, m_node->renderer(), textStartOffset, textEndOffset);
+}
+
PassRefPtr<Range> TextIterator::range() const
{
// use the current run information, if we have it
@@ -944,13 +1031,19 @@ Node* TextIterator::node() const
// --------
SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator()
- : m_positionNode(0)
+ : m_behavior(TextIteratorDefaultBehavior)
+ , m_node(0)
+ , m_positionNode(0)
{
}
-SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator(const Range* r)
- : m_positionNode(0)
+SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator(const Range* r, TextIteratorBehavior behavior)
+ : m_behavior(behavior)
+ , m_node(0)
+ , m_positionNode(0)
{
+ ASSERT(m_behavior == TextIteratorDefaultBehavior || m_behavior == TextIteratorEndsAtEditingBoundary);
+
if (!r)
return;
@@ -974,7 +1067,7 @@ SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator(const Range* r)
}
}
- m_node = endNode;
+ setCurrentNode(endNode);
setUpFullyClippedStack(m_fullyClippedStack, m_node);
m_offset = endOffset;
m_handledNode = false;
@@ -1038,12 +1131,9 @@ void SimplifiedBackwardsTextIterator::advance()
}
}
// Exit all other containers.
- next = m_node->previousSibling();
- while (!next) {
- Node* parentNode = parentCrossingShadowBoundaries(m_node);
- if (!parentNode)
+ while (!m_node->previousSibling()) {
+ if (!setCurrentNode(parentCrossingShadowBoundaries(m_node)))
break;
- m_node = parentNode;
m_fullyClippedStack.pop();
exitNode();
if (m_positionNode) {
@@ -1051,14 +1141,17 @@ void SimplifiedBackwardsTextIterator::advance()
m_handledChildren = true;
return;
}
- next = m_node->previousSibling();
}
+
+ next = m_node->previousSibling();
m_fullyClippedStack.pop();
}
- m_node = next;
- if (m_node)
+ if (m_node && setCurrentNode(next))
pushFullyClippedState(m_fullyClippedStack, m_node);
+ else
+ clearCurrentNode();
+
// For the purpose of word boundary detection,
// we should iterate all visible text and trailing (collapsed) whitespaces.
m_offset = m_node ? maxOffsetIncludingCollapsedSpaces(m_node) : 0;
@@ -1137,6 +1230,26 @@ void SimplifiedBackwardsTextIterator::emitCharacter(UChar c, Node* node, int sta
m_lastCharacter = c;
}
+bool SimplifiedBackwardsTextIterator::crossesEditingBoundary(Node* node) const
+{
+ return m_node && m_node->isContentEditable() != node->isContentEditable();
+}
+
+bool SimplifiedBackwardsTextIterator::setCurrentNode(Node* node)
+{
+ if (!node)
+ return false;
+ if (m_behavior == TextIteratorEndsAtEditingBoundary && crossesEditingBoundary(node))
+ return false;
+ m_node = node;
+ return true;
+}
+
+void SimplifiedBackwardsTextIterator::clearCurrentNode()
+{
+ m_node = 0;
+}
+
PassRefPtr<Range> SimplifiedBackwardsTextIterator::range() const
{
if (m_positionNode)
@@ -1262,11 +1375,11 @@ BackwardsCharacterIterator::BackwardsCharacterIterator()
{
}
-BackwardsCharacterIterator::BackwardsCharacterIterator(const Range* range)
+BackwardsCharacterIterator::BackwardsCharacterIterator(const Range* range, TextIteratorBehavior behavior)
: m_offset(0)
, m_runOffset(0)
, m_atBreak(true)
- , m_textIterator(range)
+ , m_textIterator(range, behavior)
{
while (!atEnd() && !m_textIterator.length())
m_textIterator.advance();
diff --git a/WebCore/editing/TextIterator.h b/WebCore/editing/TextIterator.h
index ba381b9..805e060 100644
--- a/WebCore/editing/TextIterator.h
+++ b/WebCore/editing/TextIterator.h
@@ -32,6 +32,9 @@
namespace WebCore {
+class RenderText;
+class RenderTextFragment;
+
// FIXME: Can't really answer this question correctly without knowing the white-space mode.
// FIXME: Move this somewhere else in the editing directory. It doesn't belong here.
inline bool isCollapsibleWhitespace(UChar c)
@@ -73,6 +76,7 @@ enum TextIteratorBehavior {
TextIteratorEmitsCharactersBetweenAllVisiblePositions = 1 << 0,
TextIteratorEntersTextControls = 1 << 1,
TextIteratorEmitsTextsWithoutTranscoding = 1 << 2,
+ TextIteratorEndsAtEditingBoundary = 1 << 3
};
class TextIterator {
@@ -102,7 +106,10 @@ private:
bool handleReplacedElement();
bool handleNonTextNode();
void handleTextBox();
+ void handleTextNodeFirstLetter(RenderTextFragment*);
+ bool hasVisibleTextNode(RenderText*);
void emitCharacter(UChar, Node* textNode, Node* offsetBaseNode, int textStartOffset, int textEndOffset);
+ void emitText(Node* textNode, RenderObject* renderObject, int textStartOffset, int textEndOffset);
void emitText(Node* textNode, int textStartOffset, int textEndOffset);
// Current position, not necessarily of the text being returned, but position
@@ -134,6 +141,11 @@ private:
// are false and 0, we go back to normal iterating.
bool m_needsAnotherNewline;
InlineTextBox* m_textBox;
+ // Used when iteration over :first-letter text to save pointer to
+ // remaining text box.
+ InlineTextBox* m_remainingTextBox;
+ // Used to point to RenderText object for :first-letter.
+ RenderText *m_firstLetterText;
// Used to do the whitespace collapsing logic.
Node* m_lastTextNode;
@@ -159,6 +171,8 @@ private:
// Used when we want texts for copying, pasting, and transposing.
bool m_emitsTextWithoutTranscoding;
+ // Used when deciding text fragment created by :first-letter should be looked into.
+ bool m_handledFirstLetter;
};
// Iterates through the DOM range, returning all the text, and 0-length boundaries
@@ -167,7 +181,7 @@ private:
class SimplifiedBackwardsTextIterator {
public:
SimplifiedBackwardsTextIterator();
- explicit SimplifiedBackwardsTextIterator(const Range*);
+ explicit SimplifiedBackwardsTextIterator(const Range*, TextIteratorBehavior = TextIteratorDefaultBehavior);
bool atEnd() const { return !m_positionNode; }
void advance();
@@ -183,7 +197,11 @@ private:
bool handleReplacedElement();
bool handleNonTextNode();
void emitCharacter(UChar, Node*, int startOffset, int endOffset);
-
+ bool crossesEditingBoundary(Node*) const;
+ bool setCurrentNode(Node*);
+ void clearCurrentNode();
+
+ TextIteratorBehavior m_behavior;
// Current position, not necessarily of the text being returned, but position
// as we walk through the DOM tree.
Node* m_node;
@@ -247,7 +265,7 @@ private:
class BackwardsCharacterIterator {
public:
BackwardsCharacterIterator();
- explicit BackwardsCharacterIterator(const Range*);
+ explicit BackwardsCharacterIterator(const Range*, TextIteratorBehavior = TextIteratorDefaultBehavior);
void advance(int);
@@ -256,6 +274,7 @@ public:
PassRefPtr<Range> range() const;
private:
+ TextIteratorBehavior m_behavior;
int m_offset;
int m_runOffset;
bool m_atBreak;
diff --git a/WebCore/editing/htmlediting.h b/WebCore/editing/htmlediting.h
index e60ada9..8612440 100644
--- a/WebCore/editing/htmlediting.h
+++ b/WebCore/editing/htmlediting.h
@@ -39,7 +39,6 @@ class HTMLElement;
class Node;
class Position;
class Range;
-class String;
class VisiblePosition;
class VisibleSelection;
diff --git a/WebCore/editing/markup.cpp b/WebCore/editing/markup.cpp
index 22e700a..26989c3 100644
--- a/WebCore/editing/markup.cpp
+++ b/WebCore/editing/markup.cpp
@@ -778,7 +778,7 @@ public:
DEFINE_STATIC_LOCAL(const String, styleSpanOpen, ("<span class=\"" AppleStyleSpanClass "\" style=\""));
DEFINE_STATIC_LOCAL(const String, styleSpanClose, ("</span>"));
Vector<UChar> openTag;
- WebCore::append(openTag, isBlock ? divStyle : styleSpanOpen);
+ WTF::append(openTag, isBlock ? divStyle : styleSpanOpen);
appendAttributeValue(openTag, style->cssText(), document->isHTMLDocument());
openTag.append('\"');
openTag.append('>');
@@ -805,10 +805,10 @@ public:
result.reserveInitialCapacity(length);
for (size_t i = preCount; i > 0; --i)
- WebCore::append(result, preMarkups[i - 1]);
+ WTF::append(result, preMarkups[i - 1]);
for (size_t i = 0; i < postCount; ++i)
- WebCore::append(result, postMarkups[i]);
+ WTF::append(result, postMarkups[i]);
return String::adopt(result);
}
@@ -818,6 +818,84 @@ private:
Vector<String> postMarkups;
};
+static Node* serializeNodes(MarkupAccumulatorWrapper& accumulator, Node* startNode, Node* pastEnd, Vector<Node*>* nodes, const Range* range, EAnnotateForInterchange annotate, EAbsoluteURLs absoluteURLs)
+{
+ Vector<Node*> ancestorsToClose;
+ Node* next;
+ Node* lastClosed = 0;
+ for (Node* n = startNode; n != pastEnd; n = next) {
+ // According to <rdar://problem/5730668>, it is possible for n to blow
+ // past pastEnd and become null here. This shouldn't be possible.
+ // This null check will prevent crashes (but create too much markup)
+ // and the ASSERT will hopefully lead us to understanding the problem.
+ ASSERT(n);
+ if (!n)
+ break;
+
+ next = n->traverseNextNode();
+ bool openedTag = false;
+
+ if (isBlock(n) && canHaveChildrenForEditing(n) && next == pastEnd)
+ // Don't write out empty block containers that aren't fully selected.
+ continue;
+
+ if (!n->renderer() && !enclosingNodeWithTag(Position(n, 0), selectTag)) {
+ next = n->traverseNextSibling();
+ // Don't skip over pastEnd.
+ if (pastEnd && pastEnd->isDescendantOf(n))
+ next = pastEnd;
+ } else {
+ // Add the node to the markup if we're not skipping the descendants
+ accumulator.insertOpenTag(n, range, annotate, absoluteURLs);
+ if (nodes)
+ nodes->append(n);
+
+ // If node has no children, close the tag now.
+ if (!n->childNodeCount()) {
+ accumulator.insertEndTag(n);
+ lastClosed = n;
+ } else {
+ openedTag = true;
+ ancestorsToClose.append(n);
+ }
+ }
+
+ // If we didn't insert open tag and there's no more siblings or we're at the end of the traversal, take care of ancestors.
+ // FIXME: What happens if we just inserted open tag and reached the end?
+ if (!openedTag && (!n->nextSibling() || next == pastEnd)) {
+ // Close up the ancestors.
+ while (!ancestorsToClose.isEmpty()) {
+ Node* ancestor = ancestorsToClose.last();
+ if (next != pastEnd && next->isDescendantOf(ancestor))
+ break;
+ // Not at the end of the range, close ancestors up to sibling of next node.
+ accumulator.insertEndTag(ancestor);
+ lastClosed = ancestor;
+ ancestorsToClose.removeLast();
+ }
+
+ // Surround the currently accumulated markup with markup for ancestors we never opened as we leave the subtree(s) rooted at those ancestors.
+ Node* nextParent = next ? next->parentNode() : 0;
+ if (next != pastEnd && n != nextParent) {
+ Node* lastAncestorClosedOrSelf = n->isDescendantOf(lastClosed) ? lastClosed : n;
+ for (Node *parent = lastAncestorClosedOrSelf->parent(); parent && parent != nextParent; parent = parent->parentNode()) {
+ // All ancestors that aren't in the ancestorsToClose list should either be a) unrendered:
+ if (!parent->renderer())
+ continue;
+ // or b) ancestors that we never encountered during a pre-order traversal starting at startNode:
+ ASSERT(startNode->isDescendantOf(parent));
+ accumulator.wrapWithNode(parent, range, annotate, absoluteURLs);
+ if (nodes)
+ nodes->append(parent);
+ lastClosed = parent;
+ }
+ }
+ }
+ }
+
+ return lastClosed;
+}
+
// FIXME: Shouldn't we omit style info when annotate == DoNotAnnotateForInterchange?
// FIXME: At least, annotation and style info should probably not be included in range.markupString()
String createMarkup(const Range* range, Vector<Node*>* nodes, EAnnotateForInterchange annotate, bool convertBlocksToInlines, EAbsoluteURLs absoluteURLs)
@@ -856,9 +934,7 @@ String createMarkup(const Range* range, Vector<Node*>* nodes, EAnnotateForInterc
MarkupAccumulatorWrapper accumulator;
Node* pastEnd = updatedRange->pastLastNode();
- Node* lastClosed = 0;
- Vector<Node*> ancestorsToClose;
-
+
Node* startNode = updatedRange->firstNode();
VisiblePosition visibleStart(updatedRange->startPosition(), VP_DEFAULT_AFFINITY);
VisiblePosition visibleEnd(updatedRange->endPosition(), VP_DEFAULT_AFFINITY);
@@ -879,84 +955,7 @@ String createMarkup(const Range* range, Vector<Node*>* nodes, EAnnotateForInterc
}
}
- Node* next;
- for (Node* n = startNode; n != pastEnd; n = next) {
- // According to <rdar://problem/5730668>, it is possible for n to blow
- // past pastEnd and become null here. This shouldn't be possible.
- // This null check will prevent crashes (but create too much markup)
- // and the ASSERT will hopefully lead us to understanding the problem.
- ASSERT(n);
- if (!n)
- break;
-
- next = n->traverseNextNode();
- bool skipDescendants = false;
- bool addMarkupForNode = true;
-
- if (!n->renderer() && !enclosingNodeWithTag(Position(n, 0), selectTag)) {
- skipDescendants = true;
- addMarkupForNode = false;
- next = n->traverseNextSibling();
- // Don't skip over pastEnd.
- if (pastEnd && pastEnd->isDescendantOf(n))
- next = pastEnd;
- }
-
- if (isBlock(n) && canHaveChildrenForEditing(n) && next == pastEnd)
- // Don't write out empty block containers that aren't fully selected.
- continue;
-
- // Add the node to the markup.
- if (addMarkupForNode) {
-
- accumulator.insertOpenTag(n, updatedRange.get(), annotate, absoluteURLs);
- if (nodes)
- nodes->append(n);
- }
-
- if (n->firstChild() == 0 || skipDescendants) {
- // Node has no children, or we are skipping it's descendants, add its close tag now.
- if (addMarkupForNode) {
- accumulator.insertEndTag(n);
- lastClosed = n;
- }
-
- // Check if the node is the last leaf of a tree.
- if (!n->nextSibling() || next == pastEnd) {
- if (!ancestorsToClose.isEmpty()) {
- // Close up the ancestors.
- do {
- Node *ancestor = ancestorsToClose.last();
- if (next != pastEnd && next->isDescendantOf(ancestor))
- break;
- // Not at the end of the range, close ancestors up to sibling of next node.
- accumulator.insertEndTag(ancestor);
- lastClosed = ancestor;
- ancestorsToClose.removeLast();
- } while (!ancestorsToClose.isEmpty());
- }
-
- // Surround the currently accumulated markup with markup for ancestors we never opened as we leave the subtree(s) rooted at those ancestors.
- Node* nextParent = next ? next->parentNode() : 0;
- if (next != pastEnd && n != nextParent) {
- Node* lastAncestorClosedOrSelf = n->isDescendantOf(lastClosed) ? lastClosed : n;
- for (Node *parent = lastAncestorClosedOrSelf->parent(); parent != 0 && parent != nextParent; parent = parent->parentNode()) {
- // All ancestors that aren't in the ancestorsToClose list should either be a) unrendered:
- if (!parent->renderer())
- continue;
- // or b) ancestors that we never encountered during a pre-order traversal starting at startNode:
- ASSERT(startNode->isDescendantOf(parent));
- accumulator.wrapWithNode(parent, updatedRange.get(), annotate, absoluteURLs);
- if (nodes)
- nodes->append(parent);
- lastClosed = parent;
- }
- }
- }
- } else if (addMarkupForNode && !skipDescendants)
- // We added markup for this node, and we're descending into it. Set it to close eventually.
- ancestorsToClose.append(n);
- }
+ Node* lastClosed = serializeNodes(accumulator, startNode, pastEnd, nodes, range, annotate, absoluteURLs);
// Include ancestors that aren't completely inside the range but are required to retain
// the structure and appearance of the copied markup.
diff --git a/WebCore/editing/markup.h b/WebCore/editing/markup.h
index 5428097..dbf8b80 100644
--- a/WebCore/editing/markup.h
+++ b/WebCore/editing/markup.h
@@ -38,7 +38,6 @@ namespace WebCore {
class KURL;
class Node;
class Range;
- class String;
enum EChildrenOnly { IncludeNode, ChildrenOnly };
enum EAbsoluteURLs { DoNotResolveURLs, AbsoluteURLs };
diff --git a/WebCore/editing/visible_units.cpp b/WebCore/editing/visible_units.cpp
index dd48406..f84fec0 100644
--- a/WebCore/editing/visible_units.cpp
+++ b/WebCore/editing/visible_units.cpp
@@ -75,20 +75,11 @@ typedef unsigned (*BoundarySearchFunction)(const UChar*, unsigned length, unsign
static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearchFunction searchFunction)
{
Position pos = c.deepEquivalent();
- Node *n = pos.node();
- if (!n)
- return VisiblePosition();
- Document *d = n->document();
- Node *de = d->documentElement();
- if (!de)
- return VisiblePosition();
- Node *boundary = n->enclosingBlockFlowElement();
+ Node* boundary = pos.parentEditingBoundary();
if (!boundary)
return VisiblePosition();
- bool isContentEditable = boundary->isContentEditable();
- while (boundary && boundary != de && boundary->parentNode() && isContentEditable == boundary->parentNode()->isContentEditable())
- boundary = boundary->parentNode();
+ Document* d = boundary->document();
Position start = rangeCompliantEquivalent(Position(boundary, 0));
Position end = rangeCompliantEquivalent(pos);
RefPtr<Range> searchRange = Range::create(d);
@@ -121,7 +112,7 @@ static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearch
if (ec)
return VisiblePosition();
- SimplifiedBackwardsTextIterator it(searchRange.get());
+ SimplifiedBackwardsTextIterator it(searchRange.get(), TextIteratorEndsAtEditingBoundary);
unsigned next = 0;
bool inTextSecurityMode = start.node() && start.node()->renderer() && start.node()->renderer()->style()->textSecurity() != TSNONE;
bool needMoreContext = false;
@@ -156,7 +147,7 @@ static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearch
pos = Position(node, next);
else {
// Use the character iterator to translate the next value into a DOM position.
- BackwardsCharacterIterator charIt(searchRange.get());
+ BackwardsCharacterIterator charIt(searchRange.get(), TextIteratorEndsAtEditingBoundary);
charIt.advance(string.size() - suffixLength - next);
pos = charIt.range()->endPosition();
}
@@ -168,20 +159,11 @@ static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearch
static VisiblePosition nextBoundary(const VisiblePosition& c, BoundarySearchFunction searchFunction)
{
Position pos = c.deepEquivalent();
- Node *n = pos.node();
- if (!n)
- return VisiblePosition();
- Document *d = n->document();
- Node *de = d->documentElement();
- if (!de)
- return VisiblePosition();
- Node *boundary = n->enclosingBlockFlowElement();
+ Node* boundary = pos.parentEditingBoundary();
if (!boundary)
return VisiblePosition();
- bool isContentEditable = boundary->isContentEditable();
- while (boundary && boundary != de && boundary->parentNode() && isContentEditable == boundary->parentNode()->isContentEditable())
- boundary = boundary->parentNode();
+ Document* d = boundary->document();
RefPtr<Range> searchRange(d->createRange());
Position start(rangeCompliantEquivalent(pos));
@@ -1019,7 +1001,7 @@ VisiblePosition startOfDocument(const VisiblePosition &c)
VisiblePosition endOfDocument(const Node* node)
{
- if (!node || !node->document())
+ if (!node || !node->document() || !node->document()->documentElement())
return VisiblePosition();
Element* doc = node->document()->documentElement();
diff --git a/WebCore/features.pri b/WebCore/features.pri
new file mode 100644
index 0000000..2a02465
--- /dev/null
+++ b/WebCore/features.pri
@@ -0,0 +1,194 @@
+# Setting up features (enabled/disabled)
+
+CONFIG(minimal) {
+ DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0
+}
+
+## load mobilityconfig if mobility is available
+load(mobilityconfig, true)
+
+## Define default features macros for optional components
+## (look for defs in config.h and included files!)
+# Try to locate sqlite3 source
+CONFIG(QTDIR_build) {
+ SQLITE3SRCDIR = $$QT_SOURCE_TREE/src/3rdparty/sqlite/
+} else {
+ SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
+ isEmpty(SQLITE3SRCDIR) {
+ SQLITE3SRCDIR = $$[QT_INSTALL_PREFIX]/src/3rdparty/sqlite/
+ }
+}
+
+contains(DEFINES, ENABLE_SINGLE_THREADED=1) {
+ DEFINES+=ENABLE_DATABASE=0 ENABLE_DOM_STORAGE=0 ENABLE_ICONDATABASE=0 ENABLE_WORKERS=0 ENABLE_SHARED_WORKERS=0
+}
+
+# turn off SQLITE support if we do not have sqlite3 available
+!CONFIG(QTDIR_build):win32-*:!exists( $${SQLITE3SRCDIR}/sqlite3.c ): DEFINES += ENABLE_SQLITE=0 ENABLE_DATABASE=0 ENABLE_WORKERS=0 ENABLE_SHARED_WORKERS=0 ENABLE_ICONDATABASE=0 ENABLE_OFFLINE_WEB_APPLICATIONS=0 ENABLE_DOM_STORAGE=0
+
+!contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=.): DEFINES += ENABLE_JAVASCRIPT_DEBUGGER=1
+!contains(DEFINES, ENABLE_DATABASE=.): DEFINES += ENABLE_DATABASE=1
+!contains(DEFINES, ENABLE_EVENTSOURCE=.): DEFINES += ENABLE_EVENTSOURCE=1
+!contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=.): DEFINES += ENABLE_OFFLINE_WEB_APPLICATIONS=1
+!contains(DEFINES, ENABLE_DOM_STORAGE=.): DEFINES += ENABLE_DOM_STORAGE=1
+!contains(DEFINES, ENABLE_ICONDATABASE=.): DEFINES += ENABLE_ICONDATABASE=1
+!contains(DEFINES, ENABLE_CHANNEL_MESSAGING=.): DEFINES += ENABLE_CHANNEL_MESSAGING=1
+!contains(DEFINES, ENABLE_ORIENTATION_EVENTS=.): DEFINES += ENABLE_ORIENTATION_EVENTS=0
+!contains(DEFINES, ENABLE_DIRECTORY_UPLOAD=.): DEFINES += ENABLE_DIRECTORY_UPLOAD=0
+!contains(DEFINES, ENABLE_FILE_SYSTEM=.): DEFINES += ENABLE_FILE_SYSTEM=0
+
+# turn on SQLITE support if any of the dependent features are turned on
+!contains(DEFINES, ENABLE_SQLITE=.) {
+ contains(DEFINES, ENABLE_DATABASE=1)|contains(DEFINES, ENABLE_ICONDATABASE=1)|contains(DEFINES, ENABLE_DOM_STORAGE=1)|contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1) {
+ DEFINES += ENABLE_SQLITE=1
+ } else {
+ DEFINES += ENABLE_SQLITE=0
+ }
+}
+
+!contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=.): DEFINES += ENABLE_DASHBOARD_SUPPORT=0
+!contains(DEFINES, ENABLE_FILTERS=.): DEFINES += ENABLE_FILTERS=1
+!contains(DEFINES, ENABLE_XPATH=.): DEFINES += ENABLE_XPATH=1
+#!contains(DEFINES, ENABLE_XBL=.): DEFINES += ENABLE_XBL=1
+!contains(DEFINES, ENABLE_WCSS=.): DEFINES += ENABLE_WCSS=0
+!contains(DEFINES, ENABLE_WML=.): DEFINES += ENABLE_WML=0
+!contains(DEFINES, ENABLE_SHARED_WORKERS=.): DEFINES += ENABLE_SHARED_WORKERS=1
+!contains(DEFINES, ENABLE_WORKERS=.): DEFINES += ENABLE_WORKERS=1
+!contains(DEFINES, ENABLE_XHTMLMP=.): DEFINES += ENABLE_XHTMLMP=0
+!contains(DEFINES, ENABLE_DATAGRID=.): DEFINES += ENABLE_DATAGRID=0
+!contains(DEFINES, ENABLE_RUBY=.): DEFINES += ENABLE_RUBY=1
+!contains(DEFINES, ENABLE_SANDBOX=.): DEFINES += ENABLE_SANDBOX=1
+!contains(DEFINES, ENABLE_METER_TAG=.): DEFINES += ENABLE_METER_TAG=1
+!contains(DEFINES, ENABLE_PROGRESS_TAG=.): DEFINES += ENABLE_PROGRESS_TAG=1
+!contains(DEFINES, ENABLE_BLOB=.): DEFINES += ENABLE_BLOB=0
+!contains(DEFINES, ENABLE_NOTIFICATIONS=.): DEFINES += ENABLE_NOTIFICATIONS=1
+!contains(DEFINES, ENABLE_IMAGE_RESIZER=.): DEFINES += ENABLE_IMAGE_RESIZER=0
+!contains(DEFINES, ENABLE_INPUT_SPEECH=.): DEFINES += ENABLE_INPUT_SPEECH=0
+
+greaterThan(QT_MINOR_VERSION, 5) {
+ !contains(DEFINES, ENABLE_3D_RENDERING=.): DEFINES += ENABLE_3D_RENDERING=1
+}
+
+# SVG support
+!contains(DEFINES, ENABLE_SVG=0) {
+ !contains(DEFINES, ENABLE_SVG=.): DEFINES += ENABLE_SVG=1
+ !contains(DEFINES, ENABLE_SVG_FONTS=.): DEFINES += ENABLE_SVG_FONTS=1
+ !contains(DEFINES, ENABLE_SVG_FOREIGN_OBJECT=.): DEFINES += ENABLE_SVG_FOREIGN_OBJECT=1
+ !contains(DEFINES, ENABLE_SVG_ANIMATION=.): DEFINES += ENABLE_SVG_ANIMATION=1
+ !contains(DEFINES, ENABLE_SVG_AS_IMAGE=.): DEFINES += ENABLE_SVG_AS_IMAGE=1
+ !contains(DEFINES, ENABLE_SVG_USE=.): DEFINES += ENABLE_SVG_USE=1
+} else {
+ DEFINES += ENABLE_SVG_FONTS=0 ENABLE_SVG_FOREIGN_OBJECT=0 ENABLE_SVG_ANIMATION=0 ENABLE_SVG_AS_IMAGE=0 ENABLE_SVG_USE=0
+}
+
+# HTML5 datalist support
+!contains(DEFINES, ENABLE_DATALIST=.): DEFINES += ENABLE_DATALIST=1
+
+# Tiled Backing Store support
+greaterThan(QT_MINOR_VERSION, 5) {
+ !contains(DEFINES, ENABLE_TILED_BACKING_STORE=.): DEFINES += ENABLE_TILED_BACKING_STORE=1
+}
+
+# Nescape plugins support (NPAPI)
+!contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=.) {
+ unix|win32-*:!embedded:!wince*: {
+ DEFINES += ENABLE_NETSCAPE_PLUGIN_API=1
+ } else {
+ DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0
+ }
+}
+
+# Web Socket support.
+!contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=1
+
+# Web Timing support.
+!contains(DEFINES, ENABLE_WEB_TIMING=.): DEFINES += ENABLE_WEB_TIMING=0
+
+# XSLT support with QtXmlPatterns
+!contains(DEFINES, ENABLE_XSLT=.) {
+ contains(QT_CONFIG, xmlpatterns):DEFINES += ENABLE_XSLT=1
+ else:DEFINES += ENABLE_XSLT=0
+}
+
+# geolocation support if QtMobility exists
+!CONFIG(QTDIR_build):!contains(DEFINES, ENABLE_GEOLOCATION=.) {
+ contains(MOBILITY_CONFIG, location) {
+ DEFINES += ENABLE_GEOLOCATION=1
+ }
+}
+
+# Bearer management is part of Qt 4.7
+# for older version, check for mobility with bearer
+!contains(DEFINES, ENABLE_QT_BEARER=.) {
+ !lessThan(QT_MINOR_VERSION, 7) {
+ DEFINES += ENABLE_QT_BEARER=1
+ } else {
+ contains(MOBILITY_CONFIG, bearer) {
+ DEFINES += ENABLE_QT_BEARER=1
+ }
+ }
+}
+
+# Enable touch event support with Qt 4.6
+!lessThan(QT_MINOR_VERSION, 6): DEFINES += ENABLE_TOUCH_EVENTS=1
+
+# HTML5 Media Support
+# We require QtMultimedia or Phonon
+!contains(DEFINES, ENABLE_VIDEO=.) {
+ DEFINES -= ENABLE_VIDEO=1
+ DEFINES += ENABLE_VIDEO=0
+
+ !lessThan(QT_MINOR_VERSION, 6):contains(MOBILITY_CONFIG, multimedia) {
+ DEFINES -= ENABLE_VIDEO=0
+ DEFINES += ENABLE_VIDEO=1
+ } else:contains(QT_CONFIG, phonon) {
+ DEFINES -= ENABLE_VIDEO=0
+ DEFINES += ENABLE_VIDEO=1
+ }
+}
+
+# Used to compute defaults for the build-webkit script
+CONFIG(compute_defaults) {
+ message($$DEFINES)
+ error("Done computing defaults")
+}
+
+contains(DEFINES, ENABLE_WCSS=1) {
+ contains(DEFINES, ENABLE_XHTMLMP=0) {
+ DEFINES -= ENABLE_XHTMLMP=0
+ DEFINES += ENABLE_XHTMLMP=1
+ }
+}
+
+## Forward enabled feature macros to JavaScript enabled features macros
+FEATURE_DEFINES_JAVASCRIPT = LANGUAGE_JAVASCRIPT=1
+contains(DEFINES, ENABLE_CHANNEL_MESSAGING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_CHANNEL_MESSAGING=1
+contains(DEFINES, ENABLE_ORIENTATION_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_ORIENTATION_EVENTS=1
+contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=0): DASHBOARDSUPPORTCSSPROPERTIES -= $$PWD/css/DashboardSupportCSSPropertyNames.in
+contains(DEFINES, ENABLE_DATAGRID=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATAGRID=1
+contains(DEFINES, ENABLE_EVENTSOURCE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_EVENTSOURCE=1
+contains(DEFINES, ENABLE_DATABASE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATABASE=1
+contains(DEFINES, ENABLE_DATALIST=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATALIST=1
+contains(DEFINES, ENABLE_DOM_STORAGE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DOM_STORAGE=1
+contains(DEFINES, ENABLE_SHARED_SCRIPT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_SCRIPT=1
+contains(DEFINES, ENABLE_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WORKERS=1
+contains(DEFINES, ENABLE_SHARED_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_WORKERS=1
+contains(DEFINES, ENABLE_VIDEO=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO=1
+contains(DEFINES, ENABLE_XPATH=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XPATH=1
+contains(DEFINES, ENABLE_XSLT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XSLT=1
+contains(DEFINES, ENABLE_XBL=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XBL=1
+contains(DEFINES, ENABLE_FILTERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_FILTERS=1
+contains(DEFINES, ENABLE_WCSS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WCSS=1
+contains(DEFINES, ENABLE_WML=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WML=1
+contains(DEFINES, ENABLE_XHTMLMP=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XHTMLMP=1
+contains(DEFINES, ENABLE_SVG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG=1
+contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_JAVASCRIPT_DEBUGGER=1
+contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_OFFLINE_WEB_APPLICATIONS=1
+contains(DEFINES, ENABLE_WEB_SOCKETS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_SOCKETS=1
+contains(DEFINES, ENABLE_WEB_TIMING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_TIMING=1
+contains(DEFINES, ENABLE_TOUCH_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TOUCH_EVENTS=1
+contains(DEFINES, ENABLE_TILED_BACKING_STORE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TILED_BACKING_STORE=1
+contains(DEFINES, ENABLE_NOTIFICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_NOTIFICATIONS=1
+contains(DEFINES, ENABLE_METER_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_METER_TAG=1
+contains(DEFINES, ENABLE_PROGRESS_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_PROGRESS_TAG=1
+contains(DEFINES, ENABLE_GEOLOCATION=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_GEOLOCATION=1
diff --git a/WebCore/history/qt/HistoryItemQt.cpp b/WebCore/history/qt/HistoryItemQt.cpp
index beb842c..b3c7ba1 100644
--- a/WebCore/history/qt/HistoryItemQt.cpp
+++ b/WebCore/history/qt/HistoryItemQt.cpp
@@ -30,26 +30,26 @@ bool WebCore::HistoryItem::restoreState(QDataStream& in, int version)
if (version != 1)
return false;
- WebCore::String url;
- WebCore::String title;
- WebCore::String altTitle;
- WebCore::String orginalUrl;
- WebCore::String referrer;
- WebCore::String target;
- WebCore::String parrent;
+ WTF::String url;
+ WTF::String title;
+ WTF::String altTitle;
+ WTF::String orginalUrl;
+ WTF::String referrer;
+ WTF::String target;
+ WTF::String parrent;
double lastVisitedTime;
bool validUserData;
- WebCore::String parent;
+ WTF::String parent;
bool lastVisitWasHTTPNonGet;
bool lastVisitWasFailure;
bool isTargetItem;
int visitCount;
- WTF::Vector<WebCore::String> documentState;
+ WTF::Vector<WTF::String> documentState;
WebCore::IntPoint scrollPoint;
WTF::Vector<int> weeklyVisitCounts;
WTF::Vector<int> dailyVisitCounts;
// bool loadFormdata;
- // WebCore::String formContentType;
+ // WTF::String formContentType;
// WTF::Vector<char> formData;
in >> url >> title >> altTitle >> lastVisitedTime >> orginalUrl >> referrer >> target >> parent;
diff --git a/WebCore/html/Blob.cpp b/WebCore/html/Blob.cpp
index a41fb2e..977ffa6 100644
--- a/WebCore/html/Blob.cpp
+++ b/WebCore/html/Blob.cpp
@@ -70,7 +70,7 @@ const String& Blob::path() const
return m_items[0]->toFileBlobItem()->path();
}
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
PassRefPtr<Blob> Blob::slice(ScriptExecutionContext* scriptExecutionContext, long long start, long long length, const String& contentType) const
{
if (start < 0)
@@ -97,6 +97,6 @@ PassRefPtr<Blob> Blob::slice(ScriptExecutionContext* scriptExecutionContext, lon
}
return Blob::create(scriptExecutionContext, contentType, items);
}
-#endif // ENABLE(BLOB_SLICE)
+#endif // ENABLE(BLOB)
} // namespace WebCore
diff --git a/WebCore/html/Blob.h b/WebCore/html/Blob.h
index 12ccca7..7afc7a0 100644
--- a/WebCore/html/Blob.h
+++ b/WebCore/html/Blob.h
@@ -67,7 +67,7 @@ public:
const BlobItemList& items() const { return m_items; }
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
PassRefPtr<Blob> slice(ScriptExecutionContext*, long long start, long long length, const String& contentType = String()) const;
#endif
diff --git a/WebCore/html/Blob.idl b/WebCore/html/Blob.idl
index 626bb73..e063b6d 100644
--- a/WebCore/html/Blob.idl
+++ b/WebCore/html/Blob.idl
@@ -35,7 +35,7 @@ module html {
readonly attribute DOMString type;
#if !defined(LANGUAGE_OBJECTIVE_C)
-#if defined(ENABLE_BLOB_SLICE) && ENABLE_BLOB_SLICE
+#if defined(ENABLE_BLOB) && ENABLE_BLOB
[CallWith=ScriptExecutionContext] Blob slice(in long long start, in long long length, in [Optional, ConvertUndefinedOrNullToNullString] DOMString contentType);
#endif
#endif
diff --git a/WebCore/html/CollectionCache.h b/WebCore/html/CollectionCache.h
index 70a5af7..df1d1fa 100644
--- a/WebCore/html/CollectionCache.h
+++ b/WebCore/html/CollectionCache.h
@@ -21,12 +21,12 @@
#ifndef CollectionCache_h
#define CollectionCache_h
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/Vector.h>
namespace WebCore {
-class AtomicStringImpl;
class Element;
struct CollectionCache : FastAllocBase {
diff --git a/WebCore/html/DOMFormData.h b/WebCore/html/DOMFormData.h
index f071d4a..6c24858 100644
--- a/WebCore/html/DOMFormData.h
+++ b/WebCore/html/DOMFormData.h
@@ -32,13 +32,13 @@
#define DOMFormData_h
#include "FormDataList.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
class Blob;
-class String;
class TextEncoding;
class DOMFormData : public FormDataList, public RefCounted<DOMFormData> {
diff --git a/WebCore/html/DataGridColumnList.h b/WebCore/html/DataGridColumnList.h
index ed72863..8a7ec75 100644
--- a/WebCore/html/DataGridColumnList.h
+++ b/WebCore/html/DataGridColumnList.h
@@ -5,13 +5,13 @@
#include "DataGridColumn.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
namespace WebCore {
-class AtomicString;
class HTMLDataGridElement;
class DataGridColumnList : public RefCounted<DataGridColumnList> {
diff --git a/WebCore/html/DateComponents.h b/WebCore/html/DateComponents.h
index a15d558..efc3248 100644
--- a/WebCore/html/DateComponents.h
+++ b/WebCore/html/DateComponents.h
@@ -32,12 +32,11 @@
#define DateComponents_h
#include <limits>
+#include <wtf/Forward.h>
#include <wtf/unicode/Unicode.h>
namespace WebCore {
-class String;
-
// A DateComponents instance represents one of the following date and time combinations:
// * Month type: year-month
// * Date type: year-month-day
diff --git a/WebCore/html/FileError.h b/WebCore/html/FileError.h
index 8190883..1c74c07 100644
--- a/WebCore/html/FileError.h
+++ b/WebCore/html/FileError.h
@@ -31,7 +31,7 @@
#ifndef FileError_h
#define FileError_h
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include "ExceptionCode.h"
#include <wtf/PassRefPtr.h>
@@ -55,6 +55,6 @@ private:
} // namespace WebCore
-#endif // ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#endif // ENABLE(BLOB) || ENABLE(FILE_WRITER)
#endif // FileError_h
diff --git a/WebCore/html/FileError.idl b/WebCore/html/FileError.idl
index 555d103..3423e72 100644
--- a/WebCore/html/FileError.idl
+++ b/WebCore/html/FileError.idl
@@ -30,7 +30,7 @@
module html {
interface [
- Conditional=FILE_READER|FILE_WRITER,
+ Conditional=BLOB|FILE_WRITER,
DontCheckEnums
] FileError {
#if !defined(LANGUAGE_OBJECTIVE_C)
diff --git a/WebCore/html/FileReader.cpp b/WebCore/html/FileReader.cpp
index b44ec9d..88f218f 100644
--- a/WebCore/html/FileReader.cpp
+++ b/WebCore/html/FileReader.cpp
@@ -30,7 +30,7 @@
#include "config.h"
-#if ENABLE(FILE_READER)
+#if ENABLE(BLOB)
#include "FileReader.h"
@@ -311,4 +311,4 @@ void FileReader::convertToDataURL()
} // namespace WebCore
-#endif // ENABLE(FILE_READER)
+#endif // ENABLE(BLOB)
diff --git a/WebCore/html/FileReader.h b/WebCore/html/FileReader.h
index 80d425c..a5339a9 100644
--- a/WebCore/html/FileReader.h
+++ b/WebCore/html/FileReader.h
@@ -31,7 +31,7 @@
#ifndef FileReader_h
#define FileReader_h
-#if ENABLE(FILE_READER)
+#if ENABLE(BLOB)
#include "ActiveDOMObject.h"
#include "EventTarget.h"
@@ -138,7 +138,7 @@ private:
ReadType m_readType;
TextEncoding m_encoding;
- // Like XMLHttpRequest.m_responseText, we keep this as a ScriptString, not a WebCore::String.
+ // Like XMLHttpRequest.m_responseText, we keep this as a ScriptString, not a WTF::String.
// That's because these strings can easily get huge (they are filled from the file) and
// because JS can easily observe many intermediate states, so it's very useful to be
// able to share the buffer with JavaScript versions of the whole or partial string.
@@ -166,6 +166,6 @@ private:
} // namespace WebCore
-#endif
+#endif // ENABLE(BLOB)
#endif // FileReader_h
diff --git a/WebCore/html/FileReader.idl b/WebCore/html/FileReader.idl
index ad0e187..fb3b979 100644
--- a/WebCore/html/FileReader.idl
+++ b/WebCore/html/FileReader.idl
@@ -30,7 +30,7 @@
module html {
interface [
- Conditional=FILE_READER,
+ Conditional=BLOB,
CanBeConstructed,
CallWith=ScriptExecutionContext,
EventTarget,
diff --git a/WebCore/html/FileStream.cpp b/WebCore/html/FileStream.cpp
index f859b63..abe7bad 100644
--- a/WebCore/html/FileStream.cpp
+++ b/WebCore/html/FileStream.cpp
@@ -30,7 +30,7 @@
#include "config.h"
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include "FileStream.h"
@@ -98,7 +98,6 @@ void FileStream::openForRead(Blob* blob)
return;
}
-#if ENABLE(BLOB_SLICE)
const FileRangeBlobItem* fileRangeItem = fileItem->toFileRangeBlobItem();
if (fileRangeItem) {
// Check the modificationt time for the possible file change.
@@ -115,7 +114,6 @@ void FileStream::openForRead(Blob* blob)
}
}
}
-#endif
// Get the size.
m_totalBytesToRead = blob->size();
@@ -182,4 +180,4 @@ void FileStream::truncate(long long)
} // namespace WebCore
-#endif // ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#endif // ENABLE(BLOB) || ENABLE(FILE_WRITER)
diff --git a/WebCore/html/FileStream.h b/WebCore/html/FileStream.h
index 9d3f7b8..b5eccd4 100644
--- a/WebCore/html/FileStream.h
+++ b/WebCore/html/FileStream.h
@@ -31,17 +31,17 @@
#ifndef FileStream_h
#define FileStream_h
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include "FileStreamClient.h"
#include "FileSystem.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
class Blob;
-class String;
// All methods are synchronous and should be called on File or Worker thread.
class FileStream : public RefCounted<FileStream> {
@@ -73,6 +73,6 @@ private:
} // namespace WebCore
-#endif // ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#endif // ENABLE(BLOB) || ENABLE(FILE_WRITER)
#endif // FileStream_h
diff --git a/WebCore/html/FileStreamClient.h b/WebCore/html/FileStreamClient.h
index 05c7df5..2e7091f 100644
--- a/WebCore/html/FileStreamClient.h
+++ b/WebCore/html/FileStreamClient.h
@@ -31,7 +31,7 @@
#ifndef FileStreamClient_h
#define FileStreamClient_h
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include "ExceptionCode.h"
@@ -58,6 +58,6 @@ protected:
} // namespace WebCore
-#endif // ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#endif // ENABLE(BLOB) || ENABLE(FILE_WRITER)
#endif // FileStreamClient_h
diff --git a/WebCore/html/FileStreamProxy.cpp b/WebCore/html/FileStreamProxy.cpp
index e2516df..e3b9e79 100644
--- a/WebCore/html/FileStreamProxy.cpp
+++ b/WebCore/html/FileStreamProxy.cpp
@@ -30,7 +30,7 @@
#include "config.h"
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include "FileStreamProxy.h"
@@ -199,4 +199,4 @@ void FileStreamProxy::didStop()
} // namespace WebCore
-#endif // ENABLE(FILE_WRITER)
+#endif // ENABLE(BLOB) || ENABLE(FILE_WRITER)
diff --git a/WebCore/html/FileStreamProxy.h b/WebCore/html/FileStreamProxy.h
index 66d8cb3..8523d4a 100644
--- a/WebCore/html/FileStreamProxy.h
+++ b/WebCore/html/FileStreamProxy.h
@@ -32,9 +32,10 @@
#ifndef FileStreamProxy_h
#define FileStreamProxy_h
-#if ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include "FileStreamClient.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
@@ -45,7 +46,6 @@ class Blob;
class FileStream;
class FileThread;
class ScriptExecutionContext;
-class String;
// A proxy module that calls corresponding FileStream methods on the file thread. Note: you must call stop() first and then release the reference to destruct the FileStreamProxy instance.
class FileStreamProxy : public RefCounted<FileStreamProxy>, public FileStreamClient {
@@ -87,6 +87,6 @@ private:
} // namespace WebCore
-#endif // ENABLE(FILE_READER) || ENABLE(FILE_WRITER)
+#endif // ENABLE(BLOB) || ENABLE(FILE_WRITER)
#endif // FileStreamProxy_h
diff --git a/WebCore/html/FileThread.cpp b/WebCore/html/FileThread.cpp
index 3a3413c..4e48cfb 100644
--- a/WebCore/html/FileThread.cpp
+++ b/WebCore/html/FileThread.cpp
@@ -30,7 +30,7 @@
#include "config.h"
-#if ENABLE(FILE_WRITER) || ENABLE(FILE_READER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include "FileThread.h"
@@ -116,4 +116,4 @@ void* FileThread::runLoop()
} // namespace WebCore
-#endif // ENABLE(FILE_WRITER) || ENABLE(FILE_READER)
+#endif // ENABLE(BLOB) || ENABLE(FILE_WRITER)
diff --git a/WebCore/html/FileThread.h b/WebCore/html/FileThread.h
index 2eba98e..16acacc 100644
--- a/WebCore/html/FileThread.h
+++ b/WebCore/html/FileThread.h
@@ -31,7 +31,7 @@
#ifndef FileThread_h
#define FileThread_h
-#if ENABLE(FILE_WRITER) || ENABLE(FILE_READER)
+#if ENABLE(BLOB) || ENABLE(FILE_WRITER)
#include <wtf/MessageQueue.h>
#include <wtf/PassOwnPtr.h>
@@ -83,6 +83,6 @@ private:
} // namespace WebCore
-#endif // ENABLE(FILE_WRITER) || ENABLE(FILE_READER)
+#endif // ENABLE(BLOB) || ENABLE(FILE_WRITER)
#endif // FileThread_h
diff --git a/WebCore/html/FormDataList.h b/WebCore/html/FormDataList.h
index f4bb905..38b07f9 100644
--- a/WebCore/html/FormDataList.h
+++ b/WebCore/html/FormDataList.h
@@ -23,6 +23,7 @@
#include "Blob.h"
#include "TextEncoding.h"
+#include <wtf/Forward.h>
#include <wtf/text/CString.h>
namespace WebCore {
@@ -36,7 +37,7 @@ public:
appendString(key);
appendString(value);
}
- void appendData(const String& key, const WTF::CString& value)
+ void appendData(const String& key, const CString& value)
{
appendString(key);
appendString(value);
@@ -52,7 +53,7 @@ public:
const TextEncoding& encoding() const { return m_encoding; }
private:
- void appendString(const WTF::CString&);
+ void appendString(const CString&);
void appendString(const String&);
TextEncoding m_encoding;
diff --git a/WebCore/html/HTMLAnchorElement.cpp b/WebCore/html/HTMLAnchorElement.cpp
index 6f9b17c..0d2e92d 100644
--- a/WebCore/html/HTMLAnchorElement.cpp
+++ b/WebCore/html/HTMLAnchorElement.cpp
@@ -237,8 +237,7 @@ void HTMLAnchorElement::setActive(bool down, bool pause)
// Don't set the link to be active if the current selection is in the same editable block as
// this link
case EditableLinkLiveWhenNotFocused:
- if (down && document()->frame() && document()->frame()->selection() &&
- document()->frame()->selection()->rootEditableElement() == rootEditableElement())
+ if (down && document()->frame() && document()->frame()->selection()->rootEditableElement() == rootEditableElement())
return;
break;
diff --git a/WebCore/html/HTMLCanvasElement.cpp b/WebCore/html/HTMLCanvasElement.cpp
index 6b5a3a3..ef5574a 100644
--- a/WebCore/html/HTMLCanvasElement.cpp
+++ b/WebCore/html/HTMLCanvasElement.cpp
@@ -169,6 +169,12 @@ CanvasRenderingContext* HTMLCanvasElement::getContext(const String& type, Canvas
usesDashbardCompatibilityMode = settings->usesDashboardBackwardCompatibilityMode();
#endif
m_context = new CanvasRenderingContext2D(this, document()->inCompatMode(), usesDashbardCompatibilityMode);
+#if ENABLE(ACCELERATED_2D_CANVAS) && USE(ACCELERATED_COMPOSITING)
+ if (m_context) {
+ // Need to make sure a RenderLayer and compositing layer get created for the Canvas
+ setNeedsStyleRecalc(SyntheticStyleChange);
+ }
+#endif
}
return m_context.get();
}
@@ -216,7 +222,7 @@ void HTMLCanvasElement::willDraw(const FloatRect& rect)
m_dirtyRect.unite(r);
ro->repaintRectangle(enclosingIntRect(m_dirtyRect));
}
-
+
if (m_observer)
m_observer->canvasChanged(this, rect);
}
@@ -299,12 +305,8 @@ bool HTMLCanvasElement::is3D() const
void HTMLCanvasElement::makeRenderingResultsAvailable()
{
-#if ENABLE(3D_CANVAS)
- if (is3D()) {
- WebGLRenderingContext* context3d = reinterpret_cast<WebGLRenderingContext*>(renderingContext());
- context3d->paintRenderingResultsToCanvas();
- }
-#endif
+ if (m_context)
+ m_context->paintRenderingResultsToCanvas();
}
void HTMLCanvasElement::recalcStyle(StyleChange change)
diff --git a/WebCore/html/HTMLCollection.h b/WebCore/html/HTMLCollection.h
index eea1777..4359724 100644
--- a/WebCore/html/HTMLCollection.h
+++ b/WebCore/html/HTMLCollection.h
@@ -31,12 +31,9 @@
namespace WebCore {
-class AtomicString;
-class AtomicStringImpl;
class Element;
class Node;
class NodeList;
-class String;
struct CollectionCache;
diff --git a/WebCore/html/HTMLConstructionSite.cpp b/WebCore/html/HTMLConstructionSite.cpp
index 0b17086..1a9a373 100644
--- a/WebCore/html/HTMLConstructionSite.cpp
+++ b/WebCore/html/HTMLConstructionSite.cpp
@@ -141,6 +141,13 @@ HTMLConstructionSite::~HTMLConstructionSite()
{
}
+void HTMLConstructionSite::setForm(HTMLFormElement* form)
+{
+ // This method should only be needed for HTMLTreeBuilder in the fragment case.
+ ASSERT(!m_form);
+ m_form = form;
+}
+
PassRefPtr<HTMLFormElement> HTMLConstructionSite::takeForm()
{
return m_form.release();
@@ -182,7 +189,6 @@ void HTMLConstructionSite::insertHTMLHtmlStartTagInBody(AtomicHTMLToken& token)
void HTMLConstructionSite::insertHTMLBodyStartTagInBody(AtomicHTMLToken& token)
{
// FIXME: parse error
- notImplemented(); // fragment case
mergeAttributesFromTokenIntoElement(token, m_openElements.bodyElement());
}
diff --git a/WebCore/html/HTMLConstructionSite.h b/WebCore/html/HTMLConstructionSite.h
index d9c8ac5..16ba56b 100644
--- a/WebCore/html/HTMLConstructionSite.h
+++ b/WebCore/html/HTMLConstructionSite.h
@@ -84,6 +84,7 @@ public:
Element* head() const { return m_head.get(); }
+ void setForm(HTMLFormElement*);
HTMLFormElement* form() const { return m_form.get(); }
PassRefPtr<HTMLFormElement> takeForm();
diff --git a/WebCore/html/HTMLDocumentParser.cpp b/WebCore/html/HTMLDocumentParser.cpp
index ee1c8af..bd2c590 100644
--- a/WebCore/html/HTMLDocumentParser.cpp
+++ b/WebCore/html/HTMLDocumentParser.cpp
@@ -29,6 +29,7 @@
#include "DocumentFragment.h"
#include "Element.h"
#include "Frame.h"
+#include "HTMLNames.h"
#include "HTMLParserScheduler.h"
#include "HTMLTokenizer.h"
#include "HTMLPreloadScanner.h"
@@ -48,6 +49,8 @@
namespace WebCore {
+using namespace HTMLNames;
+
namespace {
class NestingLevelIncrementer : public Noncopyable {
@@ -67,6 +70,31 @@ private:
int* m_counter;
};
+// This is a direct transcription of step 4 from:
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#fragment-case
+HTMLTokenizer::State tokenizerStateForContextElement(Element* contextElement, bool reportErrors)
+{
+ if (!contextElement)
+ return HTMLTokenizer::DataState;
+
+ const QualifiedName& contextTag = contextElement->tagQName();
+
+ if (contextTag.matches(titleTag) || contextTag.matches(textareaTag))
+ return HTMLTokenizer::RCDATAState;
+ if (contextTag.matches(styleTag)
+ || contextTag.matches(xmpTag)
+ || contextTag.matches(iframeTag)
+ || (contextTag.matches(noembedTag) && HTMLTreeBuilder::pluginsEnabled(contextElement->document()->frame()))
+ || (contextTag.matches(noscriptTag) && HTMLTreeBuilder::scriptEnabled(contextElement->document()->frame()))
+ || contextTag.matches(noframesTag))
+ return reportErrors ? HTMLTokenizer::RAWTEXTState : HTMLTokenizer::PLAINTEXTState;
+ if (contextTag.matches(scriptTag))
+ return reportErrors ? HTMLTokenizer::ScriptDataState : HTMLTokenizer::PLAINTEXTState;
+ if (contextTag.matches(plaintextTag))
+ return HTMLTokenizer::PLAINTEXTState;
+ return HTMLTokenizer::DataState;
+}
+
} // namespace
HTMLDocumentParser::HTMLDocumentParser(HTMLDocument* document, bool reportErrors)
@@ -78,19 +106,19 @@ HTMLDocumentParser::HTMLDocumentParser(HTMLDocument* document, bool reportErrors
, m_endWasDelayed(false)
, m_writeNestingLevel(0)
{
- begin();
}
// FIXME: Member variables should be grouped into self-initializing structs to
// minimize code duplication between these constructors.
-HTMLDocumentParser::HTMLDocumentParser(DocumentFragment* fragment, FragmentScriptingPermission scriptingPermission)
+HTMLDocumentParser::HTMLDocumentParser(DocumentFragment* fragment, Element* contextElement, FragmentScriptingPermission scriptingPermission)
: ScriptableDocumentParser(fragment->document())
, m_tokenizer(new HTMLTokenizer)
- , m_treeBuilder(new HTMLTreeBuilder(m_tokenizer.get(), fragment, scriptingPermission))
+ , m_treeBuilder(new HTMLTreeBuilder(m_tokenizer.get(), fragment, contextElement, scriptingPermission))
, m_endWasDelayed(false)
, m_writeNestingLevel(0)
{
- begin();
+ bool reportErrors = false; // For now document fragment parsing never reports errors.
+ m_tokenizer->setState(tokenizerStateForContextElement(contextElement, reportErrors));
}
HTMLDocumentParser::~HTMLDocumentParser()
@@ -101,11 +129,6 @@ HTMLDocumentParser::~HTMLDocumentParser()
// then we could ASSERT some invariants here.
}
-void HTMLDocumentParser::begin()
-{
- // FIXME: Should we reset the tokenizer?
-}
-
void HTMLDocumentParser::stopParsing()
{
DocumentParser::stopParsing();
@@ -427,9 +450,9 @@ ScriptController* HTMLDocumentParser::script() const
return m_document->frame() ? m_document->frame()->script() : 0;
}
-void HTMLDocumentParser::parseDocumentFragment(const String& source, DocumentFragment* fragment, FragmentScriptingPermission scriptingPermission)
+void HTMLDocumentParser::parseDocumentFragment(const String& source, DocumentFragment* fragment, Element* contextElement, FragmentScriptingPermission scriptingPermission)
{
- HTMLDocumentParser parser(fragment, scriptingPermission);
+ HTMLDocumentParser parser(fragment, contextElement, scriptingPermission);
parser.insert(source); // Use insert() so that the parser will not yield.
parser.finish();
ASSERT(!parser.processingData()); // Make sure we're done. <rdar://problem/3963151>
diff --git a/WebCore/html/HTMLDocumentParser.h b/WebCore/html/HTMLDocumentParser.h
index cc46d31..d055861 100644
--- a/WebCore/html/HTMLDocumentParser.h
+++ b/WebCore/html/HTMLDocumentParser.h
@@ -54,13 +54,13 @@ class HTMLDocumentParser : public ScriptableDocumentParser, HTMLScriptRunnerHos
public:
// FIXME: These constructors should be made private and replaced by create() methods.
HTMLDocumentParser(HTMLDocument*, bool reportErrors);
- HTMLDocumentParser(DocumentFragment*, FragmentScriptingPermission);
+ HTMLDocumentParser(DocumentFragment*, Element* contextElement, FragmentScriptingPermission);
virtual ~HTMLDocumentParser();
// Exposed for HTMLParserScheduler
void resumeParsingAfterYield();
- static void parseDocumentFragment(const String&, DocumentFragment*, FragmentScriptingPermission = FragmentScriptingAllowed);
+ static void parseDocumentFragment(const String&, DocumentFragment*, Element* contextElement, FragmentScriptingPermission = FragmentScriptingAllowed);
private:
// DocumentParser
diff --git a/WebCore/html/HTMLElement.cpp b/WebCore/html/HTMLElement.cpp
index fb1bcc2..6fc53a2 100644
--- a/WebCore/html/HTMLElement.cpp
+++ b/WebCore/html/HTMLElement.cpp
@@ -275,6 +275,7 @@ String HTMLElement::outerHTML() const
return createMarkup(this);
}
+// FIXME: This method is unecessary with the new HTMLDocumentParser.
PassRefPtr<DocumentFragment> HTMLElement::createContextualFragment(const String& markup, FragmentScriptingPermission scriptingPermission)
{
// The following is in accordance with the definition as used by IE.
@@ -340,6 +341,7 @@ static void replaceChildrenWithText(HTMLElement* element, const String& text, Ex
void HTMLElement::setInnerHTML(const String& html, ExceptionCode& ec)
{
+ // FIXME: This code can be removed, it's handled by the HTMLDocumentParser correctly.
if (hasLocalName(scriptTag) || hasLocalName(styleTag)) {
// Script and CSS source shouldn't be parsed as HTML.
removeChildren();
@@ -551,7 +553,7 @@ void HTMLElement::insertAdjacentHTML(const String& where, const String& markup,
{
RefPtr<DocumentFragment> fragment = document()->createDocumentFragment();
if (document()->isHTMLDocument())
- fragment->parseHTML(markup);
+ fragment->parseHTML(markup, this);
else {
if (!fragment->parseXML(markup, this))
// FIXME: We should propagate a syntax error exception out here.
@@ -986,7 +988,7 @@ bool HTMLElement::checkDTD(const Node* newChild)
return true;
return inEitherTagList(newChild);
}
-
+
bool HTMLElement::rendererIsNeeded(RenderStyle *style)
{
#if !ENABLE(XHTMLMP)
@@ -994,11 +996,16 @@ bool HTMLElement::rendererIsNeeded(RenderStyle *style)
Frame* frame = document()->frame();
if (frame && frame->script()->canExecuteScripts(NotAboutToExecuteScript))
return false;
- }
+ } else
#endif
+ if (hasLocalName(noembedTag)) {
+ Frame* frame = document()->frame();
+ if (frame && frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin))
+ return false;
+ }
return StyledElement::rendererIsNeeded(style);
}
-
+
RenderObject* HTMLElement::createRenderer(RenderArena* arena, RenderStyle* style)
{
if (hasLocalName(wbrTag))
diff --git a/WebCore/html/HTMLElementStack.cpp b/WebCore/html/HTMLElementStack.cpp
index 531a3b4..194753b 100644
--- a/WebCore/html/HTMLElementStack.cpp
+++ b/WebCore/html/HTMLElementStack.cpp
@@ -138,6 +138,23 @@ HTMLElementStack::~HTMLElementStack()
{
}
+bool HTMLElementStack::hasOnlyOneElement() const
+{
+ return !topRecord()->next();
+}
+
+bool HTMLElementStack::secondElementIsHTMLBodyElement() const
+{
+ // This is used the fragment case of <body> and <frameset> in the "in body"
+ // insertion mode.
+ // http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#parsing-main-inbody
+ ASSERT(m_htmlElement);
+ // If we have a body element, it must always be the second element on the
+ // stack, as we always start with an html element, and any other element
+ // would cause the implicit creation of a body element.
+ return !!m_bodyElement;
+}
+
void HTMLElementStack::popHTMLHeadElement()
{
ASSERT(top() == m_headElement);
diff --git a/WebCore/html/HTMLElementStack.h b/WebCore/html/HTMLElementStack.h
index 62d031f..73cfcb1 100644
--- a/WebCore/html/HTMLElementStack.h
+++ b/WebCore/html/HTMLElementStack.h
@@ -26,6 +26,7 @@
#ifndef HTMLElementStack_h
#define HTMLElementStack_h
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
@@ -33,7 +34,6 @@
namespace WebCore {
-class AtomicString;
class Element;
class QualifiedName;
@@ -121,6 +121,9 @@ public:
bool hasOnlyHTMLElementsInScope() const;
bool hasNumberedHeaderElementInScope() const;
+ bool hasOnlyOneElement() const;
+ bool secondElementIsHTMLBodyElement() const;
+
Element* htmlElement() const;
Element* headElement() const;
Element* bodyElement() const;
diff --git a/WebCore/html/HTMLEntityNames.json b/WebCore/html/HTMLEntityNames.json
index 7be8c5b..da3b881 100644
--- a/WebCore/html/HTMLEntityNames.json
+++ b/WebCore/html/HTMLEntityNames.json
@@ -1,8554 +1,8554 @@
[
{
- entity: "AElig;",
- value: "U+000C6"
+ "entity": "AElig;",
+ "value": "U+000C6"
},
{
- entity: "AElig",
- value: "U+000C6"
+ "entity": "AElig",
+ "value": "U+000C6"
},
{
- entity: "AMP;",
- value: "U+00026"
+ "entity": "AMP;",
+ "value": "U+00026"
},
{
- entity: "AMP",
- value: "U+00026"
+ "entity": "AMP",
+ "value": "U+00026"
},
{
- entity: "Aacute;",
- value: "U+000C1"
+ "entity": "Aacute;",
+ "value": "U+000C1"
},
{
- entity: "Aacute",
- value: "U+000C1"
+ "entity": "Aacute",
+ "value": "U+000C1"
},
{
- entity: "Abreve;",
- value: "U+00102"
+ "entity": "Abreve;",
+ "value": "U+00102"
},
{
- entity: "Acirc;",
- value: "U+000C2"
+ "entity": "Acirc;",
+ "value": "U+000C2"
},
{
- entity: "Acirc",
- value: "U+000C2"
+ "entity": "Acirc",
+ "value": "U+000C2"
},
{
- entity: "Acy;",
- value: "U+00410"
+ "entity": "Acy;",
+ "value": "U+00410"
},
{
- entity: "Afr;",
- value: "U+1D504"
+ "entity": "Afr;",
+ "value": "U+1D504"
},
{
- entity: "Agrave;",
- value: "U+000C0"
+ "entity": "Agrave;",
+ "value": "U+000C0"
},
{
- entity: "Agrave",
- value: "U+000C0"
+ "entity": "Agrave",
+ "value": "U+000C0"
},
{
- entity: "Alpha;",
- value: "U+00391"
+ "entity": "Alpha;",
+ "value": "U+00391"
},
{
- entity: "Amacr;",
- value: "U+00100"
+ "entity": "Amacr;",
+ "value": "U+00100"
},
{
- entity: "And;",
- value: "U+02A53"
+ "entity": "And;",
+ "value": "U+02A53"
},
{
- entity: "Aogon;",
- value: "U+00104"
+ "entity": "Aogon;",
+ "value": "U+00104"
},
{
- entity: "Aopf;",
- value: "U+1D538"
+ "entity": "Aopf;",
+ "value": "U+1D538"
},
{
- entity: "ApplyFunction;",
- value: "U+02061"
+ "entity": "ApplyFunction;",
+ "value": "U+02061"
},
{
- entity: "Aring;",
- value: "U+000C5"
+ "entity": "Aring;",
+ "value": "U+000C5"
},
{
- entity: "Aring",
- value: "U+000C5"
+ "entity": "Aring",
+ "value": "U+000C5"
},
{
- entity: "Ascr;",
- value: "U+1D49C"
+ "entity": "Ascr;",
+ "value": "U+1D49C"
},
{
- entity: "Assign;",
- value: "U+02254"
+ "entity": "Assign;",
+ "value": "U+02254"
},
{
- entity: "Atilde;",
- value: "U+000C3"
+ "entity": "Atilde;",
+ "value": "U+000C3"
},
{
- entity: "Atilde",
- value: "U+000C3"
+ "entity": "Atilde",
+ "value": "U+000C3"
},
{
- entity: "Auml;",
- value: "U+000C4"
+ "entity": "Auml;",
+ "value": "U+000C4"
},
{
- entity: "Auml",
- value: "U+000C4"
+ "entity": "Auml",
+ "value": "U+000C4"
},
{
- entity: "Backslash;",
- value: "U+02216"
+ "entity": "Backslash;",
+ "value": "U+02216"
},
{
- entity: "Barv;",
- value: "U+02AE7"
+ "entity": "Barv;",
+ "value": "U+02AE7"
},
{
- entity: "Barwed;",
- value: "U+02306"
+ "entity": "Barwed;",
+ "value": "U+02306"
},
{
- entity: "Bcy;",
- value: "U+00411"
+ "entity": "Bcy;",
+ "value": "U+00411"
},
{
- entity: "Because;",
- value: "U+02235"
+ "entity": "Because;",
+ "value": "U+02235"
},
{
- entity: "Bernoullis;",
- value: "U+0212C"
+ "entity": "Bernoullis;",
+ "value": "U+0212C"
},
{
- entity: "Beta;",
- value: "U+00392"
+ "entity": "Beta;",
+ "value": "U+00392"
},
{
- entity: "Bfr;",
- value: "U+1D505"
+ "entity": "Bfr;",
+ "value": "U+1D505"
},
{
- entity: "Bopf;",
- value: "U+1D539"
+ "entity": "Bopf;",
+ "value": "U+1D539"
},
{
- entity: "Breve;",
- value: "U+002D8"
+ "entity": "Breve;",
+ "value": "U+002D8"
},
{
- entity: "Bscr;",
- value: "U+0212C"
+ "entity": "Bscr;",
+ "value": "U+0212C"
},
{
- entity: "Bumpeq;",
- value: "U+0224E"
+ "entity": "Bumpeq;",
+ "value": "U+0224E"
},
{
- entity: "CHcy;",
- value: "U+00427"
+ "entity": "CHcy;",
+ "value": "U+00427"
},
{
- entity: "COPY;",
- value: "U+000A9"
+ "entity": "COPY;",
+ "value": "U+000A9"
},
{
- entity: "COPY",
- value: "U+000A9"
+ "entity": "COPY",
+ "value": "U+000A9"
},
{
- entity: "Cacute;",
- value: "U+00106"
+ "entity": "Cacute;",
+ "value": "U+00106"
},
{
- entity: "Cap;",
- value: "U+022D2"
+ "entity": "Cap;",
+ "value": "U+022D2"
},
{
- entity: "CapitalDifferentialD;",
- value: "U+02145"
+ "entity": "CapitalDifferentialD;",
+ "value": "U+02145"
},
{
- entity: "Cayleys;",
- value: "U+0212D"
+ "entity": "Cayleys;",
+ "value": "U+0212D"
},
{
- entity: "Ccaron;",
- value: "U+0010C"
+ "entity": "Ccaron;",
+ "value": "U+0010C"
},
{
- entity: "Ccedil;",
- value: "U+000C7"
+ "entity": "Ccedil;",
+ "value": "U+000C7"
},
{
- entity: "Ccedil",
- value: "U+000C7"
+ "entity": "Ccedil",
+ "value": "U+000C7"
},
{
- entity: "Ccirc;",
- value: "U+00108"
+ "entity": "Ccirc;",
+ "value": "U+00108"
},
{
- entity: "Cconint;",
- value: "U+02230"
+ "entity": "Cconint;",
+ "value": "U+02230"
},
{
- entity: "Cdot;",
- value: "U+0010A"
+ "entity": "Cdot;",
+ "value": "U+0010A"
},
{
- entity: "Cedilla;",
- value: "U+000B8"
+ "entity": "Cedilla;",
+ "value": "U+000B8"
},
{
- entity: "CenterDot;",
- value: "U+000B7"
+ "entity": "CenterDot;",
+ "value": "U+000B7"
},
{
- entity: "Cfr;",
- value: "U+0212D"
+ "entity": "Cfr;",
+ "value": "U+0212D"
},
{
- entity: "Chi;",
- value: "U+003A7"
+ "entity": "Chi;",
+ "value": "U+003A7"
},
{
- entity: "CircleDot;",
- value: "U+02299"
+ "entity": "CircleDot;",
+ "value": "U+02299"
},
{
- entity: "CircleMinus;",
- value: "U+02296"
+ "entity": "CircleMinus;",
+ "value": "U+02296"
},
{
- entity: "CirclePlus;",
- value: "U+02295"
+ "entity": "CirclePlus;",
+ "value": "U+02295"
},
{
- entity: "CircleTimes;",
- value: "U+02297"
+ "entity": "CircleTimes;",
+ "value": "U+02297"
},
{
- entity: "ClockwiseContourIntegral;",
- value: "U+02232"
+ "entity": "ClockwiseContourIntegral;",
+ "value": "U+02232"
},
{
- entity: "CloseCurlyDoubleQuote;",
- value: "U+0201D"
+ "entity": "CloseCurlyDoubleQuote;",
+ "value": "U+0201D"
},
{
- entity: "CloseCurlyQuote;",
- value: "U+02019"
+ "entity": "CloseCurlyQuote;",
+ "value": "U+02019"
},
{
- entity: "Colon;",
- value: "U+02237"
+ "entity": "Colon;",
+ "value": "U+02237"
},
{
- entity: "Colone;",
- value: "U+02A74"
+ "entity": "Colone;",
+ "value": "U+02A74"
},
{
- entity: "Congruent;",
- value: "U+02261"
+ "entity": "Congruent;",
+ "value": "U+02261"
},
{
- entity: "Conint;",
- value: "U+0222F"
+ "entity": "Conint;",
+ "value": "U+0222F"
},
{
- entity: "ContourIntegral;",
- value: "U+0222E"
+ "entity": "ContourIntegral;",
+ "value": "U+0222E"
},
{
- entity: "Copf;",
- value: "U+02102"
+ "entity": "Copf;",
+ "value": "U+02102"
},
{
- entity: "Coproduct;",
- value: "U+02210"
+ "entity": "Coproduct;",
+ "value": "U+02210"
},
{
- entity: "CounterClockwiseContourIntegral;",
- value: "U+02233"
+ "entity": "CounterClockwiseContourIntegral;",
+ "value": "U+02233"
},
{
- entity: "Cross;",
- value: "U+02A2F"
+ "entity": "Cross;",
+ "value": "U+02A2F"
},
{
- entity: "Cscr;",
- value: "U+1D49E"
+ "entity": "Cscr;",
+ "value": "U+1D49E"
},
{
- entity: "Cup;",
- value: "U+022D3"
+ "entity": "Cup;",
+ "value": "U+022D3"
},
{
- entity: "CupCap;",
- value: "U+0224D"
+ "entity": "CupCap;",
+ "value": "U+0224D"
},
{
- entity: "DD;",
- value: "U+02145"
+ "entity": "DD;",
+ "value": "U+02145"
},
{
- entity: "DDotrahd;",
- value: "U+02911"
+ "entity": "DDotrahd;",
+ "value": "U+02911"
},
{
- entity: "DJcy;",
- value: "U+00402"
+ "entity": "DJcy;",
+ "value": "U+00402"
},
{
- entity: "DScy;",
- value: "U+00405"
+ "entity": "DScy;",
+ "value": "U+00405"
},
{
- entity: "DZcy;",
- value: "U+0040F"
+ "entity": "DZcy;",
+ "value": "U+0040F"
},
{
- entity: "Dagger;",
- value: "U+02021"
+ "entity": "Dagger;",
+ "value": "U+02021"
},
{
- entity: "Darr;",
- value: "U+021A1"
+ "entity": "Darr;",
+ "value": "U+021A1"
},
{
- entity: "Dashv;",
- value: "U+02AE4"
+ "entity": "Dashv;",
+ "value": "U+02AE4"
},
{
- entity: "Dcaron;",
- value: "U+0010E"
+ "entity": "Dcaron;",
+ "value": "U+0010E"
},
{
- entity: "Dcy;",
- value: "U+00414"
+ "entity": "Dcy;",
+ "value": "U+00414"
},
{
- entity: "Del;",
- value: "U+02207"
+ "entity": "Del;",
+ "value": "U+02207"
},
{
- entity: "Delta;",
- value: "U+00394"
+ "entity": "Delta;",
+ "value": "U+00394"
},
{
- entity: "Dfr;",
- value: "U+1D507"
+ "entity": "Dfr;",
+ "value": "U+1D507"
},
{
- entity: "DiacriticalAcute;",
- value: "U+000B4"
+ "entity": "DiacriticalAcute;",
+ "value": "U+000B4"
},
{
- entity: "DiacriticalDot;",
- value: "U+002D9"
+ "entity": "DiacriticalDot;",
+ "value": "U+002D9"
},
{
- entity: "DiacriticalDoubleAcute;",
- value: "U+002DD"
+ "entity": "DiacriticalDoubleAcute;",
+ "value": "U+002DD"
},
{
- entity: "DiacriticalGrave;",
- value: "U+00060"
+ "entity": "DiacriticalGrave;",
+ "value": "U+00060"
},
{
- entity: "DiacriticalTilde;",
- value: "U+002DC"
+ "entity": "DiacriticalTilde;",
+ "value": "U+002DC"
},
{
- entity: "Diamond;",
- value: "U+022C4"
+ "entity": "Diamond;",
+ "value": "U+022C4"
},
{
- entity: "DifferentialD;",
- value: "U+02146"
+ "entity": "DifferentialD;",
+ "value": "U+02146"
},
{
- entity: "Dopf;",
- value: "U+1D53B"
+ "entity": "Dopf;",
+ "value": "U+1D53B"
},
{
- entity: "Dot;",
- value: "U+000A8"
+ "entity": "Dot;",
+ "value": "U+000A8"
},
{
- entity: "DotDot;",
- value: "U+020DC"
+ "entity": "DotDot;",
+ "value": "U+020DC"
},
{
- entity: "DotEqual;",
- value: "U+02250"
+ "entity": "DotEqual;",
+ "value": "U+02250"
},
{
- entity: "DoubleContourIntegral;",
- value: "U+0222F"
+ "entity": "DoubleContourIntegral;",
+ "value": "U+0222F"
},
{
- entity: "DoubleDot;",
- value: "U+000A8"
+ "entity": "DoubleDot;",
+ "value": "U+000A8"
},
{
- entity: "DoubleDownArrow;",
- value: "U+021D3"
+ "entity": "DoubleDownArrow;",
+ "value": "U+021D3"
},
{
- entity: "DoubleLeftArrow;",
- value: "U+021D0"
+ "entity": "DoubleLeftArrow;",
+ "value": "U+021D0"
},
{
- entity: "DoubleLeftRightArrow;",
- value: "U+021D4"
+ "entity": "DoubleLeftRightArrow;",
+ "value": "U+021D4"
},
{
- entity: "DoubleLeftTee;",
- value: "U+02AE4"
+ "entity": "DoubleLeftTee;",
+ "value": "U+02AE4"
},
{
- entity: "DoubleLongLeftArrow;",
- value: "U+027F8"
+ "entity": "DoubleLongLeftArrow;",
+ "value": "U+027F8"
},
{
- entity: "DoubleLongLeftRightArrow;",
- value: "U+027FA"
+ "entity": "DoubleLongLeftRightArrow;",
+ "value": "U+027FA"
},
{
- entity: "DoubleLongRightArrow;",
- value: "U+027F9"
+ "entity": "DoubleLongRightArrow;",
+ "value": "U+027F9"
},
{
- entity: "DoubleRightArrow;",
- value: "U+021D2"
+ "entity": "DoubleRightArrow;",
+ "value": "U+021D2"
},
{
- entity: "DoubleRightTee;",
- value: "U+022A8"
+ "entity": "DoubleRightTee;",
+ "value": "U+022A8"
},
{
- entity: "DoubleUpArrow;",
- value: "U+021D1"
+ "entity": "DoubleUpArrow;",
+ "value": "U+021D1"
},
{
- entity: "DoubleUpDownArrow;",
- value: "U+021D5"
+ "entity": "DoubleUpDownArrow;",
+ "value": "U+021D5"
},
{
- entity: "DoubleVerticalBar;",
- value: "U+02225"
+ "entity": "DoubleVerticalBar;",
+ "value": "U+02225"
},
{
- entity: "DownArrow;",
- value: "U+02193"
+ "entity": "DownArrow;",
+ "value": "U+02193"
},
{
- entity: "DownArrowBar;",
- value: "U+02913"
+ "entity": "DownArrowBar;",
+ "value": "U+02913"
},
{
- entity: "DownArrowUpArrow;",
- value: "U+021F5"
+ "entity": "DownArrowUpArrow;",
+ "value": "U+021F5"
},
{
- entity: "DownBreve;",
- value: "U+00311"
+ "entity": "DownBreve;",
+ "value": "U+00311"
},
{
- entity: "DownLeftRightVector;",
- value: "U+02950"
+ "entity": "DownLeftRightVector;",
+ "value": "U+02950"
},
{
- entity: "DownLeftTeeVector;",
- value: "U+0295E"
+ "entity": "DownLeftTeeVector;",
+ "value": "U+0295E"
},
{
- entity: "DownLeftVector;",
- value: "U+021BD"
+ "entity": "DownLeftVector;",
+ "value": "U+021BD"
},
{
- entity: "DownLeftVectorBar;",
- value: "U+02956"
+ "entity": "DownLeftVectorBar;",
+ "value": "U+02956"
},
{
- entity: "DownRightTeeVector;",
- value: "U+0295F"
+ "entity": "DownRightTeeVector;",
+ "value": "U+0295F"
},
{
- entity: "DownRightVector;",
- value: "U+021C1"
+ "entity": "DownRightVector;",
+ "value": "U+021C1"
},
{
- entity: "DownRightVectorBar;",
- value: "U+02957"
+ "entity": "DownRightVectorBar;",
+ "value": "U+02957"
},
{
- entity: "DownTee;",
- value: "U+022A4"
+ "entity": "DownTee;",
+ "value": "U+022A4"
},
{
- entity: "DownTeeArrow;",
- value: "U+021A7"
+ "entity": "DownTeeArrow;",
+ "value": "U+021A7"
},
{
- entity: "Downarrow;",
- value: "U+021D3"
+ "entity": "Downarrow;",
+ "value": "U+021D3"
},
{
- entity: "Dscr;",
- value: "U+1D49F"
+ "entity": "Dscr;",
+ "value": "U+1D49F"
},
{
- entity: "Dstrok;",
- value: "U+00110"
+ "entity": "Dstrok;",
+ "value": "U+00110"
},
{
- entity: "ENG;",
- value: "U+0014A"
+ "entity": "ENG;",
+ "value": "U+0014A"
},
{
- entity: "ETH;",
- value: "U+000D0"
+ "entity": "ETH;",
+ "value": "U+000D0"
},
{
- entity: "ETH",
- value: "U+000D0"
+ "entity": "ETH",
+ "value": "U+000D0"
},
{
- entity: "Eacute;",
- value: "U+000C9"
+ "entity": "Eacute;",
+ "value": "U+000C9"
},
{
- entity: "Eacute",
- value: "U+000C9"
+ "entity": "Eacute",
+ "value": "U+000C9"
},
{
- entity: "Ecaron;",
- value: "U+0011A"
+ "entity": "Ecaron;",
+ "value": "U+0011A"
},
{
- entity: "Ecirc;",
- value: "U+000CA"
+ "entity": "Ecirc;",
+ "value": "U+000CA"
},
{
- entity: "Ecirc",
- value: "U+000CA"
+ "entity": "Ecirc",
+ "value": "U+000CA"
},
{
- entity: "Ecy;",
- value: "U+0042D"
+ "entity": "Ecy;",
+ "value": "U+0042D"
},
{
- entity: "Edot;",
- value: "U+00116"
+ "entity": "Edot;",
+ "value": "U+00116"
},
{
- entity: "Efr;",
- value: "U+1D508"
+ "entity": "Efr;",
+ "value": "U+1D508"
},
{
- entity: "Egrave;",
- value: "U+000C8"
+ "entity": "Egrave;",
+ "value": "U+000C8"
},
{
- entity: "Egrave",
- value: "U+000C8"
+ "entity": "Egrave",
+ "value": "U+000C8"
},
{
- entity: "Element;",
- value: "U+02208"
+ "entity": "Element;",
+ "value": "U+02208"
},
{
- entity: "Emacr;",
- value: "U+00112"
+ "entity": "Emacr;",
+ "value": "U+00112"
},
{
- entity: "EmptySmallSquare;",
- value: "U+025FB"
+ "entity": "EmptySmallSquare;",
+ "value": "U+025FB"
},
{
- entity: "EmptyVerySmallSquare;",
- value: "U+025AB"
+ "entity": "EmptyVerySmallSquare;",
+ "value": "U+025AB"
},
{
- entity: "Eogon;",
- value: "U+00118"
+ "entity": "Eogon;",
+ "value": "U+00118"
},
{
- entity: "Eopf;",
- value: "U+1D53C"
+ "entity": "Eopf;",
+ "value": "U+1D53C"
},
{
- entity: "Epsilon;",
- value: "U+00395"
+ "entity": "Epsilon;",
+ "value": "U+00395"
},
{
- entity: "Equal;",
- value: "U+02A75"
+ "entity": "Equal;",
+ "value": "U+02A75"
},
{
- entity: "EqualTilde;",
- value: "U+02242"
+ "entity": "EqualTilde;",
+ "value": "U+02242"
},
{
- entity: "Equilibrium;",
- value: "U+021CC"
+ "entity": "Equilibrium;",
+ "value": "U+021CC"
},
{
- entity: "Escr;",
- value: "U+02130"
+ "entity": "Escr;",
+ "value": "U+02130"
},
{
- entity: "Esim;",
- value: "U+02A73"
+ "entity": "Esim;",
+ "value": "U+02A73"
},
{
- entity: "Eta;",
- value: "U+00397"
+ "entity": "Eta;",
+ "value": "U+00397"
},
{
- entity: "Euml;",
- value: "U+000CB"
+ "entity": "Euml;",
+ "value": "U+000CB"
},
{
- entity: "Euml",
- value: "U+000CB"
+ "entity": "Euml",
+ "value": "U+000CB"
},
{
- entity: "Exists;",
- value: "U+02203"
+ "entity": "Exists;",
+ "value": "U+02203"
},
{
- entity: "ExponentialE;",
- value: "U+02147"
+ "entity": "ExponentialE;",
+ "value": "U+02147"
},
{
- entity: "Fcy;",
- value: "U+00424"
+ "entity": "Fcy;",
+ "value": "U+00424"
},
{
- entity: "Ffr;",
- value: "U+1D509"
+ "entity": "Ffr;",
+ "value": "U+1D509"
},
{
- entity: "FilledSmallSquare;",
- value: "U+025FC"
+ "entity": "FilledSmallSquare;",
+ "value": "U+025FC"
},
{
- entity: "FilledVerySmallSquare;",
- value: "U+025AA"
+ "entity": "FilledVerySmallSquare;",
+ "value": "U+025AA"
},
{
- entity: "Fopf;",
- value: "U+1D53D"
+ "entity": "Fopf;",
+ "value": "U+1D53D"
},
{
- entity: "ForAll;",
- value: "U+02200"
+ "entity": "ForAll;",
+ "value": "U+02200"
},
{
- entity: "Fouriertrf;",
- value: "U+02131"
+ "entity": "Fouriertrf;",
+ "value": "U+02131"
},
{
- entity: "Fscr;",
- value: "U+02131"
+ "entity": "Fscr;",
+ "value": "U+02131"
},
{
- entity: "GJcy;",
- value: "U+00403"
+ "entity": "GJcy;",
+ "value": "U+00403"
},
{
- entity: "GT;",
- value: "U+0003E"
+ "entity": "GT;",
+ "value": "U+0003E"
},
{
- entity: "GT",
- value: "U+0003E"
+ "entity": "GT",
+ "value": "U+0003E"
},
{
- entity: "Gamma;",
- value: "U+00393"
+ "entity": "Gamma;",
+ "value": "U+00393"
},
{
- entity: "Gammad;",
- value: "U+003DC"
+ "entity": "Gammad;",
+ "value": "U+003DC"
},
{
- entity: "Gbreve;",
- value: "U+0011E"
+ "entity": "Gbreve;",
+ "value": "U+0011E"
},
{
- entity: "Gcedil;",
- value: "U+00122"
+ "entity": "Gcedil;",
+ "value": "U+00122"
},
{
- entity: "Gcirc;",
- value: "U+0011C"
+ "entity": "Gcirc;",
+ "value": "U+0011C"
},
{
- entity: "Gcy;",
- value: "U+00413"
+ "entity": "Gcy;",
+ "value": "U+00413"
},
{
- entity: "Gdot;",
- value: "U+00120"
+ "entity": "Gdot;",
+ "value": "U+00120"
},
{
- entity: "Gfr;",
- value: "U+1D50A"
+ "entity": "Gfr;",
+ "value": "U+1D50A"
},
{
- entity: "Gg;",
- value: "U+022D9"
+ "entity": "Gg;",
+ "value": "U+022D9"
},
{
- entity: "Gopf;",
- value: "U+1D53E"
+ "entity": "Gopf;",
+ "value": "U+1D53E"
},
{
- entity: "GreaterEqual;",
- value: "U+02265"
+ "entity": "GreaterEqual;",
+ "value": "U+02265"
},
{
- entity: "GreaterEqualLess;",
- value: "U+022DB"
+ "entity": "GreaterEqualLess;",
+ "value": "U+022DB"
},
{
- entity: "GreaterFullEqual;",
- value: "U+02267"
+ "entity": "GreaterFullEqual;",
+ "value": "U+02267"
},
{
- entity: "GreaterGreater;",
- value: "U+02AA2"
+ "entity": "GreaterGreater;",
+ "value": "U+02AA2"
},
{
- entity: "GreaterLess;",
- value: "U+02277"
+ "entity": "GreaterLess;",
+ "value": "U+02277"
},
{
- entity: "GreaterSlantEqual;",
- value: "U+02A7E"
+ "entity": "GreaterSlantEqual;",
+ "value": "U+02A7E"
},
{
- entity: "GreaterTilde;",
- value: "U+02273"
+ "entity": "GreaterTilde;",
+ "value": "U+02273"
},
{
- entity: "Gscr;",
- value: "U+1D4A2"
+ "entity": "Gscr;",
+ "value": "U+1D4A2"
},
{
- entity: "Gt;",
- value: "U+0226B"
+ "entity": "Gt;",
+ "value": "U+0226B"
},
{
- entity: "HARDcy;",
- value: "U+0042A"
+ "entity": "HARDcy;",
+ "value": "U+0042A"
},
{
- entity: "Hacek;",
- value: "U+002C7"
+ "entity": "Hacek;",
+ "value": "U+002C7"
},
{
- entity: "Hat;",
- value: "U+0005E"
+ "entity": "Hat;",
+ "value": "U+0005E"
},
{
- entity: "Hcirc;",
- value: "U+00124"
+ "entity": "Hcirc;",
+ "value": "U+00124"
},
{
- entity: "Hfr;",
- value: "U+0210C"
+ "entity": "Hfr;",
+ "value": "U+0210C"
},
{
- entity: "HilbertSpace;",
- value: "U+0210B"
+ "entity": "HilbertSpace;",
+ "value": "U+0210B"
},
{
- entity: "Hopf;",
- value: "U+0210D"
+ "entity": "Hopf;",
+ "value": "U+0210D"
},
{
- entity: "HorizontalLine;",
- value: "U+02500"
+ "entity": "HorizontalLine;",
+ "value": "U+02500"
},
{
- entity: "Hscr;",
- value: "U+0210B"
+ "entity": "Hscr;",
+ "value": "U+0210B"
},
{
- entity: "Hstrok;",
- value: "U+00126"
+ "entity": "Hstrok;",
+ "value": "U+00126"
},
{
- entity: "HumpDownHump;",
- value: "U+0224E"
+ "entity": "HumpDownHump;",
+ "value": "U+0224E"
},
{
- entity: "HumpEqual;",
- value: "U+0224F"
+ "entity": "HumpEqual;",
+ "value": "U+0224F"
},
{
- entity: "IEcy;",
- value: "U+00415"
+ "entity": "IEcy;",
+ "value": "U+00415"
},
{
- entity: "IJlig;",
- value: "U+00132"
+ "entity": "IJlig;",
+ "value": "U+00132"
},
{
- entity: "IOcy;",
- value: "U+00401"
+ "entity": "IOcy;",
+ "value": "U+00401"
},
{
- entity: "Iacute;",
- value: "U+000CD"
+ "entity": "Iacute;",
+ "value": "U+000CD"
},
{
- entity: "Iacute",
- value: "U+000CD"
+ "entity": "Iacute",
+ "value": "U+000CD"
},
{
- entity: "Icirc;",
- value: "U+000CE"
+ "entity": "Icirc;",
+ "value": "U+000CE"
},
{
- entity: "Icirc",
- value: "U+000CE"
+ "entity": "Icirc",
+ "value": "U+000CE"
},
{
- entity: "Icy;",
- value: "U+00418"
+ "entity": "Icy;",
+ "value": "U+00418"
},
{
- entity: "Idot;",
- value: "U+00130"
+ "entity": "Idot;",
+ "value": "U+00130"
},
{
- entity: "Ifr;",
- value: "U+02111"
+ "entity": "Ifr;",
+ "value": "U+02111"
},
{
- entity: "Igrave;",
- value: "U+000CC"
+ "entity": "Igrave;",
+ "value": "U+000CC"
},
{
- entity: "Igrave",
- value: "U+000CC"
+ "entity": "Igrave",
+ "value": "U+000CC"
},
{
- entity: "Im;",
- value: "U+02111"
+ "entity": "Im;",
+ "value": "U+02111"
},
{
- entity: "Imacr;",
- value: "U+0012A"
+ "entity": "Imacr;",
+ "value": "U+0012A"
},
{
- entity: "ImaginaryI;",
- value: "U+02148"
+ "entity": "ImaginaryI;",
+ "value": "U+02148"
},
{
- entity: "Implies;",
- value: "U+021D2"
+ "entity": "Implies;",
+ "value": "U+021D2"
},
{
- entity: "Int;",
- value: "U+0222C"
+ "entity": "Int;",
+ "value": "U+0222C"
},
{
- entity: "Integral;",
- value: "U+0222B"
+ "entity": "Integral;",
+ "value": "U+0222B"
},
{
- entity: "Intersection;",
- value: "U+022C2"
+ "entity": "Intersection;",
+ "value": "U+022C2"
},
{
- entity: "InvisibleComma;",
- value: "U+02063"
+ "entity": "InvisibleComma;",
+ "value": "U+02063"
},
{
- entity: "InvisibleTimes;",
- value: "U+02062"
+ "entity": "InvisibleTimes;",
+ "value": "U+02062"
},
{
- entity: "Iogon;",
- value: "U+0012E"
+ "entity": "Iogon;",
+ "value": "U+0012E"
},
{
- entity: "Iopf;",
- value: "U+1D540"
+ "entity": "Iopf;",
+ "value": "U+1D540"
},
{
- entity: "Iota;",
- value: "U+00399"
+ "entity": "Iota;",
+ "value": "U+00399"
},
{
- entity: "Iscr;",
- value: "U+02110"
+ "entity": "Iscr;",
+ "value": "U+02110"
},
{
- entity: "Itilde;",
- value: "U+00128"
+ "entity": "Itilde;",
+ "value": "U+00128"
},
{
- entity: "Iukcy;",
- value: "U+00406"
+ "entity": "Iukcy;",
+ "value": "U+00406"
},
{
- entity: "Iuml;",
- value: "U+000CF"
+ "entity": "Iuml;",
+ "value": "U+000CF"
},
{
- entity: "Iuml",
- value: "U+000CF"
+ "entity": "Iuml",
+ "value": "U+000CF"
},
{
- entity: "Jcirc;",
- value: "U+00134"
+ "entity": "Jcirc;",
+ "value": "U+00134"
},
{
- entity: "Jcy;",
- value: "U+00419"
+ "entity": "Jcy;",
+ "value": "U+00419"
},
{
- entity: "Jfr;",
- value: "U+1D50D"
+ "entity": "Jfr;",
+ "value": "U+1D50D"
},
{
- entity: "Jopf;",
- value: "U+1D541"
+ "entity": "Jopf;",
+ "value": "U+1D541"
},
{
- entity: "Jscr;",
- value: "U+1D4A5"
+ "entity": "Jscr;",
+ "value": "U+1D4A5"
},
{
- entity: "Jsercy;",
- value: "U+00408"
+ "entity": "Jsercy;",
+ "value": "U+00408"
},
{
- entity: "Jukcy;",
- value: "U+00404"
+ "entity": "Jukcy;",
+ "value": "U+00404"
},
{
- entity: "KHcy;",
- value: "U+00425"
+ "entity": "KHcy;",
+ "value": "U+00425"
},
{
- entity: "KJcy;",
- value: "U+0040C"
+ "entity": "KJcy;",
+ "value": "U+0040C"
},
{
- entity: "Kappa;",
- value: "U+0039A"
+ "entity": "Kappa;",
+ "value": "U+0039A"
},
{
- entity: "Kcedil;",
- value: "U+00136"
+ "entity": "Kcedil;",
+ "value": "U+00136"
},
{
- entity: "Kcy;",
- value: "U+0041A"
+ "entity": "Kcy;",
+ "value": "U+0041A"
},
{
- entity: "Kfr;",
- value: "U+1D50E"
+ "entity": "Kfr;",
+ "value": "U+1D50E"
},
{
- entity: "Kopf;",
- value: "U+1D542"
+ "entity": "Kopf;",
+ "value": "U+1D542"
},
{
- entity: "Kscr;",
- value: "U+1D4A6"
+ "entity": "Kscr;",
+ "value": "U+1D4A6"
},
{
- entity: "LJcy;",
- value: "U+00409"
+ "entity": "LJcy;",
+ "value": "U+00409"
},
{
- entity: "LT;",
- value: "U+0003C"
+ "entity": "LT;",
+ "value": "U+0003C"
},
{
- entity: "LT",
- value: "U+0003C"
+ "entity": "LT",
+ "value": "U+0003C"
},
{
- entity: "Lacute;",
- value: "U+00139"
+ "entity": "Lacute;",
+ "value": "U+00139"
},
{
- entity: "Lambda;",
- value: "U+0039B"
+ "entity": "Lambda;",
+ "value": "U+0039B"
},
{
- entity: "Lang;",
- value: "U+027EA"
+ "entity": "Lang;",
+ "value": "U+027EA"
},
{
- entity: "Laplacetrf;",
- value: "U+02112"
+ "entity": "Laplacetrf;",
+ "value": "U+02112"
},
{
- entity: "Larr;",
- value: "U+0219E"
+ "entity": "Larr;",
+ "value": "U+0219E"
},
{
- entity: "Lcaron;",
- value: "U+0013D"
+ "entity": "Lcaron;",
+ "value": "U+0013D"
},
{
- entity: "Lcedil;",
- value: "U+0013B"
+ "entity": "Lcedil;",
+ "value": "U+0013B"
},
{
- entity: "Lcy;",
- value: "U+0041B"
+ "entity": "Lcy;",
+ "value": "U+0041B"
},
{
- entity: "LeftAngleBracket;",
- value: "U+027E8"
+ "entity": "LeftAngleBracket;",
+ "value": "U+027E8"
},
{
- entity: "LeftArrow;",
- value: "U+02190"
+ "entity": "LeftArrow;",
+ "value": "U+02190"
},
{
- entity: "LeftArrowBar;",
- value: "U+021E4"
+ "entity": "LeftArrowBar;",
+ "value": "U+021E4"
},
{
- entity: "LeftArrowRightArrow;",
- value: "U+021C6"
+ "entity": "LeftArrowRightArrow;",
+ "value": "U+021C6"
},
{
- entity: "LeftCeiling;",
- value: "U+02308"
+ "entity": "LeftCeiling;",
+ "value": "U+02308"
},
{
- entity: "LeftDoubleBracket;",
- value: "U+027E6"
+ "entity": "LeftDoubleBracket;",
+ "value": "U+027E6"
},
{
- entity: "LeftDownTeeVector;",
- value: "U+02961"
+ "entity": "LeftDownTeeVector;",
+ "value": "U+02961"
},
{
- entity: "LeftDownVector;",
- value: "U+021C3"
+ "entity": "LeftDownVector;",
+ "value": "U+021C3"
},
{
- entity: "LeftDownVectorBar;",
- value: "U+02959"
+ "entity": "LeftDownVectorBar;",
+ "value": "U+02959"
},
{
- entity: "LeftFloor;",
- value: "U+0230A"
+ "entity": "LeftFloor;",
+ "value": "U+0230A"
},
{
- entity: "LeftRightArrow;",
- value: "U+02194"
+ "entity": "LeftRightArrow;",
+ "value": "U+02194"
},
{
- entity: "LeftRightVector;",
- value: "U+0294E"
+ "entity": "LeftRightVector;",
+ "value": "U+0294E"
},
{
- entity: "LeftTee;",
- value: "U+022A3"
+ "entity": "LeftTee;",
+ "value": "U+022A3"
},
{
- entity: "LeftTeeArrow;",
- value: "U+021A4"
+ "entity": "LeftTeeArrow;",
+ "value": "U+021A4"
},
{
- entity: "LeftTeeVector;",
- value: "U+0295A"
+ "entity": "LeftTeeVector;",
+ "value": "U+0295A"
},
{
- entity: "LeftTriangle;",
- value: "U+022B2"
+ "entity": "LeftTriangle;",
+ "value": "U+022B2"
},
{
- entity: "LeftTriangleBar;",
- value: "U+029CF"
+ "entity": "LeftTriangleBar;",
+ "value": "U+029CF"
},
{
- entity: "LeftTriangleEqual;",
- value: "U+022B4"
+ "entity": "LeftTriangleEqual;",
+ "value": "U+022B4"
},
{
- entity: "LeftUpDownVector;",
- value: "U+02951"
+ "entity": "LeftUpDownVector;",
+ "value": "U+02951"
},
{
- entity: "LeftUpTeeVector;",
- value: "U+02960"
+ "entity": "LeftUpTeeVector;",
+ "value": "U+02960"
},
{
- entity: "LeftUpVector;",
- value: "U+021BF"
+ "entity": "LeftUpVector;",
+ "value": "U+021BF"
},
{
- entity: "LeftUpVectorBar;",
- value: "U+02958"
+ "entity": "LeftUpVectorBar;",
+ "value": "U+02958"
},
{
- entity: "LeftVector;",
- value: "U+021BC"
+ "entity": "LeftVector;",
+ "value": "U+021BC"
},
{
- entity: "LeftVectorBar;",
- value: "U+02952"
+ "entity": "LeftVectorBar;",
+ "value": "U+02952"
},
{
- entity: "Leftarrow;",
- value: "U+021D0"
+ "entity": "Leftarrow;",
+ "value": "U+021D0"
},
{
- entity: "Leftrightarrow;",
- value: "U+021D4"
+ "entity": "Leftrightarrow;",
+ "value": "U+021D4"
},
{
- entity: "LessEqualGreater;",
- value: "U+022DA"
+ "entity": "LessEqualGreater;",
+ "value": "U+022DA"
},
{
- entity: "LessFullEqual;",
- value: "U+02266"
+ "entity": "LessFullEqual;",
+ "value": "U+02266"
},
{
- entity: "LessGreater;",
- value: "U+02276"
+ "entity": "LessGreater;",
+ "value": "U+02276"
},
{
- entity: "LessLess;",
- value: "U+02AA1"
+ "entity": "LessLess;",
+ "value": "U+02AA1"
},
{
- entity: "LessSlantEqual;",
- value: "U+02A7D"
+ "entity": "LessSlantEqual;",
+ "value": "U+02A7D"
},
{
- entity: "LessTilde;",
- value: "U+02272"
+ "entity": "LessTilde;",
+ "value": "U+02272"
},
{
- entity: "Lfr;",
- value: "U+1D50F"
+ "entity": "Lfr;",
+ "value": "U+1D50F"
},
{
- entity: "Ll;",
- value: "U+022D8"
+ "entity": "Ll;",
+ "value": "U+022D8"
},
{
- entity: "Lleftarrow;",
- value: "U+021DA"
+ "entity": "Lleftarrow;",
+ "value": "U+021DA"
},
{
- entity: "Lmidot;",
- value: "U+0013F"
+ "entity": "Lmidot;",
+ "value": "U+0013F"
},
{
- entity: "LongLeftArrow;",
- value: "U+027F5"
+ "entity": "LongLeftArrow;",
+ "value": "U+027F5"
},
{
- entity: "LongLeftRightArrow;",
- value: "U+027F7"
+ "entity": "LongLeftRightArrow;",
+ "value": "U+027F7"
},
{
- entity: "LongRightArrow;",
- value: "U+027F6"
+ "entity": "LongRightArrow;",
+ "value": "U+027F6"
},
{
- entity: "Longleftarrow;",
- value: "U+027F8"
+ "entity": "Longleftarrow;",
+ "value": "U+027F8"
},
{
- entity: "Longleftrightarrow;",
- value: "U+027FA"
+ "entity": "Longleftrightarrow;",
+ "value": "U+027FA"
},
{
- entity: "Longrightarrow;",
- value: "U+027F9"
+ "entity": "Longrightarrow;",
+ "value": "U+027F9"
},
{
- entity: "Lopf;",
- value: "U+1D543"
+ "entity": "Lopf;",
+ "value": "U+1D543"
},
{
- entity: "LowerLeftArrow;",
- value: "U+02199"
+ "entity": "LowerLeftArrow;",
+ "value": "U+02199"
},
{
- entity: "LowerRightArrow;",
- value: "U+02198"
+ "entity": "LowerRightArrow;",
+ "value": "U+02198"
},
{
- entity: "Lscr;",
- value: "U+02112"
+ "entity": "Lscr;",
+ "value": "U+02112"
},
{
- entity: "Lsh;",
- value: "U+021B0"
+ "entity": "Lsh;",
+ "value": "U+021B0"
},
{
- entity: "Lstrok;",
- value: "U+00141"
+ "entity": "Lstrok;",
+ "value": "U+00141"
},
{
- entity: "Lt;",
- value: "U+0226A"
+ "entity": "Lt;",
+ "value": "U+0226A"
},
{
- entity: "Map;",
- value: "U+02905"
+ "entity": "Map;",
+ "value": "U+02905"
},
{
- entity: "Mcy;",
- value: "U+0041C"
+ "entity": "Mcy;",
+ "value": "U+0041C"
},
{
- entity: "MediumSpace;",
- value: "U+0205F"
+ "entity": "MediumSpace;",
+ "value": "U+0205F"
},
{
- entity: "Mellintrf;",
- value: "U+02133"
+ "entity": "Mellintrf;",
+ "value": "U+02133"
},
{
- entity: "Mfr;",
- value: "U+1D510"
+ "entity": "Mfr;",
+ "value": "U+1D510"
},
{
- entity: "MinusPlus;",
- value: "U+02213"
+ "entity": "MinusPlus;",
+ "value": "U+02213"
},
{
- entity: "Mopf;",
- value: "U+1D544"
+ "entity": "Mopf;",
+ "value": "U+1D544"
},
{
- entity: "Mscr;",
- value: "U+02133"
+ "entity": "Mscr;",
+ "value": "U+02133"
},
{
- entity: "Mu;",
- value: "U+0039C"
+ "entity": "Mu;",
+ "value": "U+0039C"
},
{
- entity: "NJcy;",
- value: "U+0040A"
+ "entity": "NJcy;",
+ "value": "U+0040A"
},
{
- entity: "Nacute;",
- value: "U+00143"
+ "entity": "Nacute;",
+ "value": "U+00143"
},
{
- entity: "Ncaron;",
- value: "U+00147"
+ "entity": "Ncaron;",
+ "value": "U+00147"
},
{
- entity: "Ncedil;",
- value: "U+00145"
+ "entity": "Ncedil;",
+ "value": "U+00145"
},
{
- entity: "Ncy;",
- value: "U+0041D"
+ "entity": "Ncy;",
+ "value": "U+0041D"
},
{
- entity: "NegativeMediumSpace;",
- value: "U+0200B"
+ "entity": "NegativeMediumSpace;",
+ "value": "U+0200B"
},
{
- entity: "NegativeThickSpace;",
- value: "U+0200B"
+ "entity": "NegativeThickSpace;",
+ "value": "U+0200B"
},
{
- entity: "NegativeThinSpace;",
- value: "U+0200B"
+ "entity": "NegativeThinSpace;",
+ "value": "U+0200B"
},
{
- entity: "NegativeVeryThinSpace;",
- value: "U+0200B"
+ "entity": "NegativeVeryThinSpace;",
+ "value": "U+0200B"
},
{
- entity: "NestedGreaterGreater;",
- value: "U+0226B"
+ "entity": "NestedGreaterGreater;",
+ "value": "U+0226B"
},
{
- entity: "NestedLessLess;",
- value: "U+0226A"
+ "entity": "NestedLessLess;",
+ "value": "U+0226A"
},
{
- entity: "NewLine;",
- value: "U+0000A"
+ "entity": "NewLine;",
+ "value": "U+0000A"
},
{
- entity: "Nfr;",
- value: "U+1D511"
+ "entity": "Nfr;",
+ "value": "U+1D511"
},
{
- entity: "NoBreak;",
- value: "U+02060"
+ "entity": "NoBreak;",
+ "value": "U+02060"
},
{
- entity: "NonBreakingSpace;",
- value: "U+000A0"
+ "entity": "NonBreakingSpace;",
+ "value": "U+000A0"
},
{
- entity: "Nopf;",
- value: "U+02115"
+ "entity": "Nopf;",
+ "value": "U+02115"
},
{
- entity: "Not;",
- value: "U+02AEC"
+ "entity": "Not;",
+ "value": "U+02AEC"
},
{
- entity: "NotCongruent;",
- value: "U+02262"
+ "entity": "NotCongruent;",
+ "value": "U+02262"
},
{
- entity: "NotCupCap;",
- value: "U+0226D"
+ "entity": "NotCupCap;",
+ "value": "U+0226D"
},
{
- entity: "NotDoubleVerticalBar;",
- value: "U+02226"
+ "entity": "NotDoubleVerticalBar;",
+ "value": "U+02226"
},
{
- entity: "NotElement;",
- value: "U+02209"
+ "entity": "NotElement;",
+ "value": "U+02209"
},
{
- entity: "NotEqual;",
- value: "U+02260"
+ "entity": "NotEqual;",
+ "value": "U+02260"
},
{
- entity: "NotExists;",
- value: "U+02204"
+ "entity": "NotExists;",
+ "value": "U+02204"
},
{
- entity: "NotGreater;",
- value: "U+0226F"
+ "entity": "NotGreater;",
+ "value": "U+0226F"
},
{
- entity: "NotGreaterEqual;",
- value: "U+02271"
+ "entity": "NotGreaterEqual;",
+ "value": "U+02271"
},
{
- entity: "NotGreaterLess;",
- value: "U+02279"
+ "entity": "NotGreaterLess;",
+ "value": "U+02279"
},
{
- entity: "NotGreaterTilde;",
- value: "U+02275"
+ "entity": "NotGreaterTilde;",
+ "value": "U+02275"
},
{
- entity: "NotLeftTriangle;",
- value: "U+022EA"
+ "entity": "NotLeftTriangle;",
+ "value": "U+022EA"
},
{
- entity: "NotLeftTriangleEqual;",
- value: "U+022EC"
+ "entity": "NotLeftTriangleEqual;",
+ "value": "U+022EC"
},
{
- entity: "NotLess;",
- value: "U+0226E"
+ "entity": "NotLess;",
+ "value": "U+0226E"
},
{
- entity: "NotLessEqual;",
- value: "U+02270"
+ "entity": "NotLessEqual;",
+ "value": "U+02270"
},
{
- entity: "NotLessGreater;",
- value: "U+02278"
+ "entity": "NotLessGreater;",
+ "value": "U+02278"
},
{
- entity: "NotLessTilde;",
- value: "U+02274"
+ "entity": "NotLessTilde;",
+ "value": "U+02274"
},
{
- entity: "NotPrecedes;",
- value: "U+02280"
+ "entity": "NotPrecedes;",
+ "value": "U+02280"
},
{
- entity: "NotPrecedesSlantEqual;",
- value: "U+022E0"
+ "entity": "NotPrecedesSlantEqual;",
+ "value": "U+022E0"
},
{
- entity: "NotReverseElement;",
- value: "U+0220C"
+ "entity": "NotReverseElement;",
+ "value": "U+0220C"
},
{
- entity: "NotRightTriangle;",
- value: "U+022EB"
+ "entity": "NotRightTriangle;",
+ "value": "U+022EB"
},
{
- entity: "NotRightTriangleEqual;",
- value: "U+022ED"
+ "entity": "NotRightTriangleEqual;",
+ "value": "U+022ED"
},
{
- entity: "NotSquareSubsetEqual;",
- value: "U+022E2"
+ "entity": "NotSquareSubsetEqual;",
+ "value": "U+022E2"
},
{
- entity: "NotSquareSupersetEqual;",
- value: "U+022E3"
+ "entity": "NotSquareSupersetEqual;",
+ "value": "U+022E3"
},
{
- entity: "NotSubsetEqual;",
- value: "U+02288"
+ "entity": "NotSubsetEqual;",
+ "value": "U+02288"
},
{
- entity: "NotSucceeds;",
- value: "U+02281"
+ "entity": "NotSucceeds;",
+ "value": "U+02281"
},
{
- entity: "NotSucceedsSlantEqual;",
- value: "U+022E1"
+ "entity": "NotSucceedsSlantEqual;",
+ "value": "U+022E1"
},
{
- entity: "NotSupersetEqual;",
- value: "U+02289"
+ "entity": "NotSupersetEqual;",
+ "value": "U+02289"
},
{
- entity: "NotTilde;",
- value: "U+02241"
+ "entity": "NotTilde;",
+ "value": "U+02241"
},
{
- entity: "NotTildeEqual;",
- value: "U+02244"
+ "entity": "NotTildeEqual;",
+ "value": "U+02244"
},
{
- entity: "NotTildeFullEqual;",
- value: "U+02247"
+ "entity": "NotTildeFullEqual;",
+ "value": "U+02247"
},
{
- entity: "NotTildeTilde;",
- value: "U+02249"
+ "entity": "NotTildeTilde;",
+ "value": "U+02249"
},
{
- entity: "NotVerticalBar;",
- value: "U+02224"
+ "entity": "NotVerticalBar;",
+ "value": "U+02224"
},
{
- entity: "Nscr;",
- value: "U+1D4A9"
+ "entity": "Nscr;",
+ "value": "U+1D4A9"
},
{
- entity: "Ntilde;",
- value: "U+000D1"
+ "entity": "Ntilde;",
+ "value": "U+000D1"
},
{
- entity: "Ntilde",
- value: "U+000D1"
+ "entity": "Ntilde",
+ "value": "U+000D1"
},
{
- entity: "Nu;",
- value: "U+0039D"
+ "entity": "Nu;",
+ "value": "U+0039D"
},
{
- entity: "OElig;",
- value: "U+00152"
+ "entity": "OElig;",
+ "value": "U+00152"
},
{
- entity: "Oacute;",
- value: "U+000D3"
+ "entity": "Oacute;",
+ "value": "U+000D3"
},
{
- entity: "Oacute",
- value: "U+000D3"
+ "entity": "Oacute",
+ "value": "U+000D3"
},
{
- entity: "Ocirc;",
- value: "U+000D4"
+ "entity": "Ocirc;",
+ "value": "U+000D4"
},
{
- entity: "Ocirc",
- value: "U+000D4"
+ "entity": "Ocirc",
+ "value": "U+000D4"
},
{
- entity: "Ocy;",
- value: "U+0041E"
+ "entity": "Ocy;",
+ "value": "U+0041E"
},
{
- entity: "Odblac;",
- value: "U+00150"
+ "entity": "Odblac;",
+ "value": "U+00150"
},
{
- entity: "Ofr;",
- value: "U+1D512"
+ "entity": "Ofr;",
+ "value": "U+1D512"
},
{
- entity: "Ograve;",
- value: "U+000D2"
+ "entity": "Ograve;",
+ "value": "U+000D2"
},
{
- entity: "Ograve",
- value: "U+000D2"
+ "entity": "Ograve",
+ "value": "U+000D2"
},
{
- entity: "Omacr;",
- value: "U+0014C"
+ "entity": "Omacr;",
+ "value": "U+0014C"
},
{
- entity: "Omega;",
- value: "U+003A9"
+ "entity": "Omega;",
+ "value": "U+003A9"
},
{
- entity: "Omicron;",
- value: "U+0039F"
+ "entity": "Omicron;",
+ "value": "U+0039F"
},
{
- entity: "Oopf;",
- value: "U+1D546"
+ "entity": "Oopf;",
+ "value": "U+1D546"
},
{
- entity: "OpenCurlyDoubleQuote;",
- value: "U+0201C"
+ "entity": "OpenCurlyDoubleQuote;",
+ "value": "U+0201C"
},
{
- entity: "OpenCurlyQuote;",
- value: "U+02018"
+ "entity": "OpenCurlyQuote;",
+ "value": "U+02018"
},
{
- entity: "Or;",
- value: "U+02A54"
+ "entity": "Or;",
+ "value": "U+02A54"
},
{
- entity: "Oscr;",
- value: "U+1D4AA"
+ "entity": "Oscr;",
+ "value": "U+1D4AA"
},
{
- entity: "Oslash;",
- value: "U+000D8"
+ "entity": "Oslash;",
+ "value": "U+000D8"
},
{
- entity: "Oslash",
- value: "U+000D8"
+ "entity": "Oslash",
+ "value": "U+000D8"
},
{
- entity: "Otilde;",
- value: "U+000D5"
+ "entity": "Otilde;",
+ "value": "U+000D5"
},
{
- entity: "Otilde",
- value: "U+000D5"
+ "entity": "Otilde",
+ "value": "U+000D5"
},
{
- entity: "Otimes;",
- value: "U+02A37"
+ "entity": "Otimes;",
+ "value": "U+02A37"
},
{
- entity: "Ouml;",
- value: "U+000D6"
+ "entity": "Ouml;",
+ "value": "U+000D6"
},
{
- entity: "Ouml",
- value: "U+000D6"
+ "entity": "Ouml",
+ "value": "U+000D6"
},
{
- entity: "OverBar;",
- value: "U+0203E"
+ "entity": "OverBar;",
+ "value": "U+0203E"
},
{
- entity: "OverBrace;",
- value: "U+023DE"
+ "entity": "OverBrace;",
+ "value": "U+023DE"
},
{
- entity: "OverBracket;",
- value: "U+023B4"
+ "entity": "OverBracket;",
+ "value": "U+023B4"
},
{
- entity: "OverParenthesis;",
- value: "U+023DC"
+ "entity": "OverParenthesis;",
+ "value": "U+023DC"
},
{
- entity: "PartialD;",
- value: "U+02202"
+ "entity": "PartialD;",
+ "value": "U+02202"
},
{
- entity: "Pcy;",
- value: "U+0041F"
+ "entity": "Pcy;",
+ "value": "U+0041F"
},
{
- entity: "Pfr;",
- value: "U+1D513"
+ "entity": "Pfr;",
+ "value": "U+1D513"
},
{
- entity: "Phi;",
- value: "U+003A6"
+ "entity": "Phi;",
+ "value": "U+003A6"
},
{
- entity: "Pi;",
- value: "U+003A0"
+ "entity": "Pi;",
+ "value": "U+003A0"
},
{
- entity: "PlusMinus;",
- value: "U+000B1"
+ "entity": "PlusMinus;",
+ "value": "U+000B1"
},
{
- entity: "Poincareplane;",
- value: "U+0210C"
+ "entity": "Poincareplane;",
+ "value": "U+0210C"
},
{
- entity: "Popf;",
- value: "U+02119"
+ "entity": "Popf;",
+ "value": "U+02119"
},
{
- entity: "Pr;",
- value: "U+02ABB"
+ "entity": "Pr;",
+ "value": "U+02ABB"
},
{
- entity: "Precedes;",
- value: "U+0227A"
+ "entity": "Precedes;",
+ "value": "U+0227A"
},
{
- entity: "PrecedesEqual;",
- value: "U+02AAF"
+ "entity": "PrecedesEqual;",
+ "value": "U+02AAF"
},
{
- entity: "PrecedesSlantEqual;",
- value: "U+0227C"
+ "entity": "PrecedesSlantEqual;",
+ "value": "U+0227C"
},
{
- entity: "PrecedesTilde;",
- value: "U+0227E"
+ "entity": "PrecedesTilde;",
+ "value": "U+0227E"
},
{
- entity: "Prime;",
- value: "U+02033"
+ "entity": "Prime;",
+ "value": "U+02033"
},
{
- entity: "Product;",
- value: "U+0220F"
+ "entity": "Product;",
+ "value": "U+0220F"
},
{
- entity: "Proportion;",
- value: "U+02237"
+ "entity": "Proportion;",
+ "value": "U+02237"
},
{
- entity: "Proportional;",
- value: "U+0221D"
+ "entity": "Proportional;",
+ "value": "U+0221D"
},
{
- entity: "Pscr;",
- value: "U+1D4AB"
+ "entity": "Pscr;",
+ "value": "U+1D4AB"
},
{
- entity: "Psi;",
- value: "U+003A8"
+ "entity": "Psi;",
+ "value": "U+003A8"
},
{
- entity: "QUOT;",
- value: "U+00022"
+ "entity": "QUOT;",
+ "value": "U+00022"
},
{
- entity: "QUOT",
- value: "U+00022"
+ "entity": "QUOT",
+ "value": "U+00022"
},
{
- entity: "Qfr;",
- value: "U+1D514"
+ "entity": "Qfr;",
+ "value": "U+1D514"
},
{
- entity: "Qopf;",
- value: "U+0211A"
+ "entity": "Qopf;",
+ "value": "U+0211A"
},
{
- entity: "Qscr;",
- value: "U+1D4AC"
+ "entity": "Qscr;",
+ "value": "U+1D4AC"
},
{
- entity: "RBarr;",
- value: "U+02910"
+ "entity": "RBarr;",
+ "value": "U+02910"
},
{
- entity: "REG;",
- value: "U+000AE"
+ "entity": "REG;",
+ "value": "U+000AE"
},
{
- entity: "REG",
- value: "U+000AE"
+ "entity": "REG",
+ "value": "U+000AE"
},
{
- entity: "Racute;",
- value: "U+00154"
+ "entity": "Racute;",
+ "value": "U+00154"
},
{
- entity: "Rang;",
- value: "U+027EB"
+ "entity": "Rang;",
+ "value": "U+027EB"
},
{
- entity: "Rarr;",
- value: "U+021A0"
+ "entity": "Rarr;",
+ "value": "U+021A0"
},
{
- entity: "Rarrtl;",
- value: "U+02916"
+ "entity": "Rarrtl;",
+ "value": "U+02916"
},
{
- entity: "Rcaron;",
- value: "U+00158"
+ "entity": "Rcaron;",
+ "value": "U+00158"
},
{
- entity: "Rcedil;",
- value: "U+00156"
+ "entity": "Rcedil;",
+ "value": "U+00156"
},
{
- entity: "Rcy;",
- value: "U+00420"
+ "entity": "Rcy;",
+ "value": "U+00420"
},
{
- entity: "Re;",
- value: "U+0211C"
+ "entity": "Re;",
+ "value": "U+0211C"
},
{
- entity: "ReverseElement;",
- value: "U+0220B"
+ "entity": "ReverseElement;",
+ "value": "U+0220B"
},
{
- entity: "ReverseEquilibrium;",
- value: "U+021CB"
+ "entity": "ReverseEquilibrium;",
+ "value": "U+021CB"
},
{
- entity: "ReverseUpEquilibrium;",
- value: "U+0296F"
+ "entity": "ReverseUpEquilibrium;",
+ "value": "U+0296F"
},
{
- entity: "Rfr;",
- value: "U+0211C"
+ "entity": "Rfr;",
+ "value": "U+0211C"
},
{
- entity: "Rho;",
- value: "U+003A1"
+ "entity": "Rho;",
+ "value": "U+003A1"
},
{
- entity: "RightAngleBracket;",
- value: "U+027E9"
+ "entity": "RightAngleBracket;",
+ "value": "U+027E9"
},
{
- entity: "RightArrow;",
- value: "U+02192"
+ "entity": "RightArrow;",
+ "value": "U+02192"
},
{
- entity: "RightArrowBar;",
- value: "U+021E5"
+ "entity": "RightArrowBar;",
+ "value": "U+021E5"
},
{
- entity: "RightArrowLeftArrow;",
- value: "U+021C4"
+ "entity": "RightArrowLeftArrow;",
+ "value": "U+021C4"
},
{
- entity: "RightCeiling;",
- value: "U+02309"
+ "entity": "RightCeiling;",
+ "value": "U+02309"
},
{
- entity: "RightDoubleBracket;",
- value: "U+027E7"
+ "entity": "RightDoubleBracket;",
+ "value": "U+027E7"
},
{
- entity: "RightDownTeeVector;",
- value: "U+0295D"
+ "entity": "RightDownTeeVector;",
+ "value": "U+0295D"
},
{
- entity: "RightDownVector;",
- value: "U+021C2"
+ "entity": "RightDownVector;",
+ "value": "U+021C2"
},
{
- entity: "RightDownVectorBar;",
- value: "U+02955"
+ "entity": "RightDownVectorBar;",
+ "value": "U+02955"
},
{
- entity: "RightFloor;",
- value: "U+0230B"
+ "entity": "RightFloor;",
+ "value": "U+0230B"
},
{
- entity: "RightTee;",
- value: "U+022A2"
+ "entity": "RightTee;",
+ "value": "U+022A2"
},
{
- entity: "RightTeeArrow;",
- value: "U+021A6"
+ "entity": "RightTeeArrow;",
+ "value": "U+021A6"
},
{
- entity: "RightTeeVector;",
- value: "U+0295B"
+ "entity": "RightTeeVector;",
+ "value": "U+0295B"
},
{
- entity: "RightTriangle;",
- value: "U+022B3"
+ "entity": "RightTriangle;",
+ "value": "U+022B3"
},
{
- entity: "RightTriangleBar;",
- value: "U+029D0"
+ "entity": "RightTriangleBar;",
+ "value": "U+029D0"
},
{
- entity: "RightTriangleEqual;",
- value: "U+022B5"
+ "entity": "RightTriangleEqual;",
+ "value": "U+022B5"
},
{
- entity: "RightUpDownVector;",
- value: "U+0294F"
+ "entity": "RightUpDownVector;",
+ "value": "U+0294F"
},
{
- entity: "RightUpTeeVector;",
- value: "U+0295C"
+ "entity": "RightUpTeeVector;",
+ "value": "U+0295C"
},
{
- entity: "RightUpVector;",
- value: "U+021BE"
+ "entity": "RightUpVector;",
+ "value": "U+021BE"
},
{
- entity: "RightUpVectorBar;",
- value: "U+02954"
+ "entity": "RightUpVectorBar;",
+ "value": "U+02954"
},
{
- entity: "RightVector;",
- value: "U+021C0"
+ "entity": "RightVector;",
+ "value": "U+021C0"
},
{
- entity: "RightVectorBar;",
- value: "U+02953"
+ "entity": "RightVectorBar;",
+ "value": "U+02953"
},
{
- entity: "Rightarrow;",
- value: "U+021D2"
+ "entity": "Rightarrow;",
+ "value": "U+021D2"
},
{
- entity: "Ropf;",
- value: "U+0211D"
+ "entity": "Ropf;",
+ "value": "U+0211D"
},
{
- entity: "RoundImplies;",
- value: "U+02970"
+ "entity": "RoundImplies;",
+ "value": "U+02970"
},
{
- entity: "Rrightarrow;",
- value: "U+021DB"
+ "entity": "Rrightarrow;",
+ "value": "U+021DB"
},
{
- entity: "Rscr;",
- value: "U+0211B"
+ "entity": "Rscr;",
+ "value": "U+0211B"
},
{
- entity: "Rsh;",
- value: "U+021B1"
+ "entity": "Rsh;",
+ "value": "U+021B1"
},
{
- entity: "RuleDelayed;",
- value: "U+029F4"
+ "entity": "RuleDelayed;",
+ "value": "U+029F4"
},
{
- entity: "SHCHcy;",
- value: "U+00429"
+ "entity": "SHCHcy;",
+ "value": "U+00429"
},
{
- entity: "SHcy;",
- value: "U+00428"
+ "entity": "SHcy;",
+ "value": "U+00428"
},
{
- entity: "SOFTcy;",
- value: "U+0042C"
+ "entity": "SOFTcy;",
+ "value": "U+0042C"
},
{
- entity: "Sacute;",
- value: "U+0015A"
+ "entity": "Sacute;",
+ "value": "U+0015A"
},
{
- entity: "Sc;",
- value: "U+02ABC"
+ "entity": "Sc;",
+ "value": "U+02ABC"
},
{
- entity: "Scaron;",
- value: "U+00160"
+ "entity": "Scaron;",
+ "value": "U+00160"
},
{
- entity: "Scedil;",
- value: "U+0015E"
+ "entity": "Scedil;",
+ "value": "U+0015E"
},
{
- entity: "Scirc;",
- value: "U+0015C"
+ "entity": "Scirc;",
+ "value": "U+0015C"
},
{
- entity: "Scy;",
- value: "U+00421"
+ "entity": "Scy;",
+ "value": "U+00421"
},
{
- entity: "Sfr;",
- value: "U+1D516"
+ "entity": "Sfr;",
+ "value": "U+1D516"
},
{
- entity: "ShortDownArrow;",
- value: "U+02193"
+ "entity": "ShortDownArrow;",
+ "value": "U+02193"
},
{
- entity: "ShortLeftArrow;",
- value: "U+02190"
+ "entity": "ShortLeftArrow;",
+ "value": "U+02190"
},
{
- entity: "ShortRightArrow;",
- value: "U+02192"
+ "entity": "ShortRightArrow;",
+ "value": "U+02192"
},
{
- entity: "ShortUpArrow;",
- value: "U+02191"
+ "entity": "ShortUpArrow;",
+ "value": "U+02191"
},
{
- entity: "Sigma;",
- value: "U+003A3"
+ "entity": "Sigma;",
+ "value": "U+003A3"
},
{
- entity: "SmallCircle;",
- value: "U+02218"
+ "entity": "SmallCircle;",
+ "value": "U+02218"
},
{
- entity: "Sopf;",
- value: "U+1D54A"
+ "entity": "Sopf;",
+ "value": "U+1D54A"
},
{
- entity: "Sqrt;",
- value: "U+0221A"
+ "entity": "Sqrt;",
+ "value": "U+0221A"
},
{
- entity: "Square;",
- value: "U+025A1"
+ "entity": "Square;",
+ "value": "U+025A1"
},
{
- entity: "SquareIntersection;",
- value: "U+02293"
+ "entity": "SquareIntersection;",
+ "value": "U+02293"
},
{
- entity: "SquareSubset;",
- value: "U+0228F"
+ "entity": "SquareSubset;",
+ "value": "U+0228F"
},
{
- entity: "SquareSubsetEqual;",
- value: "U+02291"
+ "entity": "SquareSubsetEqual;",
+ "value": "U+02291"
},
{
- entity: "SquareSuperset;",
- value: "U+02290"
+ "entity": "SquareSuperset;",
+ "value": "U+02290"
},
{
- entity: "SquareSupersetEqual;",
- value: "U+02292"
+ "entity": "SquareSupersetEqual;",
+ "value": "U+02292"
},
{
- entity: "SquareUnion;",
- value: "U+02294"
+ "entity": "SquareUnion;",
+ "value": "U+02294"
},
{
- entity: "Sscr;",
- value: "U+1D4AE"
+ "entity": "Sscr;",
+ "value": "U+1D4AE"
},
{
- entity: "Star;",
- value: "U+022C6"
+ "entity": "Star;",
+ "value": "U+022C6"
},
{
- entity: "Sub;",
- value: "U+022D0"
+ "entity": "Sub;",
+ "value": "U+022D0"
},
{
- entity: "Subset;",
- value: "U+022D0"
+ "entity": "Subset;",
+ "value": "U+022D0"
},
{
- entity: "SubsetEqual;",
- value: "U+02286"
+ "entity": "SubsetEqual;",
+ "value": "U+02286"
},
{
- entity: "Succeeds;",
- value: "U+0227B"
+ "entity": "Succeeds;",
+ "value": "U+0227B"
},
{
- entity: "SucceedsEqual;",
- value: "U+02AB0"
+ "entity": "SucceedsEqual;",
+ "value": "U+02AB0"
},
{
- entity: "SucceedsSlantEqual;",
- value: "U+0227D"
+ "entity": "SucceedsSlantEqual;",
+ "value": "U+0227D"
},
{
- entity: "SucceedsTilde;",
- value: "U+0227F"
+ "entity": "SucceedsTilde;",
+ "value": "U+0227F"
},
{
- entity: "SuchThat;",
- value: "U+0220B"
+ "entity": "SuchThat;",
+ "value": "U+0220B"
},
{
- entity: "Sum;",
- value: "U+02211"
+ "entity": "Sum;",
+ "value": "U+02211"
},
{
- entity: "Sup;",
- value: "U+022D1"
+ "entity": "Sup;",
+ "value": "U+022D1"
},
{
- entity: "Superset;",
- value: "U+02283"
+ "entity": "Superset;",
+ "value": "U+02283"
},
{
- entity: "SupersetEqual;",
- value: "U+02287"
+ "entity": "SupersetEqual;",
+ "value": "U+02287"
},
{
- entity: "Supset;",
- value: "U+022D1"
+ "entity": "Supset;",
+ "value": "U+022D1"
},
{
- entity: "THORN;",
- value: "U+000DE"
+ "entity": "THORN;",
+ "value": "U+000DE"
},
{
- entity: "THORN",
- value: "U+000DE"
+ "entity": "THORN",
+ "value": "U+000DE"
},
{
- entity: "TRADE;",
- value: "U+02122"
+ "entity": "TRADE;",
+ "value": "U+02122"
},
{
- entity: "TSHcy;",
- value: "U+0040B"
+ "entity": "TSHcy;",
+ "value": "U+0040B"
},
{
- entity: "TScy;",
- value: "U+00426"
+ "entity": "TScy;",
+ "value": "U+00426"
},
{
- entity: "Tab;",
- value: "U+00009"
+ "entity": "Tab;",
+ "value": "U+00009"
},
{
- entity: "Tau;",
- value: "U+003A4"
+ "entity": "Tau;",
+ "value": "U+003A4"
},
{
- entity: "Tcaron;",
- value: "U+00164"
+ "entity": "Tcaron;",
+ "value": "U+00164"
},
{
- entity: "Tcedil;",
- value: "U+00162"
+ "entity": "Tcedil;",
+ "value": "U+00162"
},
{
- entity: "Tcy;",
- value: "U+00422"
+ "entity": "Tcy;",
+ "value": "U+00422"
},
{
- entity: "Tfr;",
- value: "U+1D517"
+ "entity": "Tfr;",
+ "value": "U+1D517"
},
{
- entity: "Therefore;",
- value: "U+02234"
+ "entity": "Therefore;",
+ "value": "U+02234"
},
{
- entity: "Theta;",
- value: "U+00398"
+ "entity": "Theta;",
+ "value": "U+00398"
},
{
- entity: "ThinSpace;",
- value: "U+02009"
+ "entity": "ThinSpace;",
+ "value": "U+02009"
},
{
- entity: "Tilde;",
- value: "U+0223C"
+ "entity": "Tilde;",
+ "value": "U+0223C"
},
{
- entity: "TildeEqual;",
- value: "U+02243"
+ "entity": "TildeEqual;",
+ "value": "U+02243"
},
{
- entity: "TildeFullEqual;",
- value: "U+02245"
+ "entity": "TildeFullEqual;",
+ "value": "U+02245"
},
{
- entity: "TildeTilde;",
- value: "U+02248"
+ "entity": "TildeTilde;",
+ "value": "U+02248"
},
{
- entity: "Topf;",
- value: "U+1D54B"
+ "entity": "Topf;",
+ "value": "U+1D54B"
},
{
- entity: "TripleDot;",
- value: "U+020DB"
+ "entity": "TripleDot;",
+ "value": "U+020DB"
},
{
- entity: "Tscr;",
- value: "U+1D4AF"
+ "entity": "Tscr;",
+ "value": "U+1D4AF"
},
{
- entity: "Tstrok;",
- value: "U+00166"
+ "entity": "Tstrok;",
+ "value": "U+00166"
},
{
- entity: "Uacute;",
- value: "U+000DA"
+ "entity": "Uacute;",
+ "value": "U+000DA"
},
{
- entity: "Uacute",
- value: "U+000DA"
+ "entity": "Uacute",
+ "value": "U+000DA"
},
{
- entity: "Uarr;",
- value: "U+0219F"
+ "entity": "Uarr;",
+ "value": "U+0219F"
},
{
- entity: "Uarrocir;",
- value: "U+02949"
+ "entity": "Uarrocir;",
+ "value": "U+02949"
},
{
- entity: "Ubrcy;",
- value: "U+0040E"
+ "entity": "Ubrcy;",
+ "value": "U+0040E"
},
{
- entity: "Ubreve;",
- value: "U+0016C"
+ "entity": "Ubreve;",
+ "value": "U+0016C"
},
{
- entity: "Ucirc;",
- value: "U+000DB"
+ "entity": "Ucirc;",
+ "value": "U+000DB"
},
{
- entity: "Ucirc",
- value: "U+000DB"
+ "entity": "Ucirc",
+ "value": "U+000DB"
},
{
- entity: "Ucy;",
- value: "U+00423"
+ "entity": "Ucy;",
+ "value": "U+00423"
},
{
- entity: "Udblac;",
- value: "U+00170"
+ "entity": "Udblac;",
+ "value": "U+00170"
},
{
- entity: "Ufr;",
- value: "U+1D518"
+ "entity": "Ufr;",
+ "value": "U+1D518"
},
{
- entity: "Ugrave;",
- value: "U+000D9"
+ "entity": "Ugrave;",
+ "value": "U+000D9"
},
{
- entity: "Ugrave",
- value: "U+000D9"
+ "entity": "Ugrave",
+ "value": "U+000D9"
},
{
- entity: "Umacr;",
- value: "U+0016A"
+ "entity": "Umacr;",
+ "value": "U+0016A"
},
{
- entity: "UnderBar;",
- value: "U+0005F"
+ "entity": "UnderBar;",
+ "value": "U+0005F"
},
{
- entity: "UnderBrace;",
- value: "U+023DF"
+ "entity": "UnderBrace;",
+ "value": "U+023DF"
},
{
- entity: "UnderBracket;",
- value: "U+023B5"
+ "entity": "UnderBracket;",
+ "value": "U+023B5"
},
{
- entity: "UnderParenthesis;",
- value: "U+023DD"
+ "entity": "UnderParenthesis;",
+ "value": "U+023DD"
},
{
- entity: "Union;",
- value: "U+022C3"
+ "entity": "Union;",
+ "value": "U+022C3"
},
{
- entity: "UnionPlus;",
- value: "U+0228E"
+ "entity": "UnionPlus;",
+ "value": "U+0228E"
},
{
- entity: "Uogon;",
- value: "U+00172"
+ "entity": "Uogon;",
+ "value": "U+00172"
},
{
- entity: "Uopf;",
- value: "U+1D54C"
+ "entity": "Uopf;",
+ "value": "U+1D54C"
},
{
- entity: "UpArrow;",
- value: "U+02191"
+ "entity": "UpArrow;",
+ "value": "U+02191"
},
{
- entity: "UpArrowBar;",
- value: "U+02912"
+ "entity": "UpArrowBar;",
+ "value": "U+02912"
},
{
- entity: "UpArrowDownArrow;",
- value: "U+021C5"
+ "entity": "UpArrowDownArrow;",
+ "value": "U+021C5"
},
{
- entity: "UpDownArrow;",
- value: "U+02195"
+ "entity": "UpDownArrow;",
+ "value": "U+02195"
},
{
- entity: "UpEquilibrium;",
- value: "U+0296E"
+ "entity": "UpEquilibrium;",
+ "value": "U+0296E"
},
{
- entity: "UpTee;",
- value: "U+022A5"
+ "entity": "UpTee;",
+ "value": "U+022A5"
},
{
- entity: "UpTeeArrow;",
- value: "U+021A5"
+ "entity": "UpTeeArrow;",
+ "value": "U+021A5"
},
{
- entity: "Uparrow;",
- value: "U+021D1"
+ "entity": "Uparrow;",
+ "value": "U+021D1"
},
{
- entity: "Updownarrow;",
- value: "U+021D5"
+ "entity": "Updownarrow;",
+ "value": "U+021D5"
},
{
- entity: "UpperLeftArrow;",
- value: "U+02196"
+ "entity": "UpperLeftArrow;",
+ "value": "U+02196"
},
{
- entity: "UpperRightArrow;",
- value: "U+02197"
+ "entity": "UpperRightArrow;",
+ "value": "U+02197"
},
{
- entity: "Upsi;",
- value: "U+003D2"
+ "entity": "Upsi;",
+ "value": "U+003D2"
},
{
- entity: "Upsilon;",
- value: "U+003A5"
+ "entity": "Upsilon;",
+ "value": "U+003A5"
},
{
- entity: "Uring;",
- value: "U+0016E"
+ "entity": "Uring;",
+ "value": "U+0016E"
},
{
- entity: "Uscr;",
- value: "U+1D4B0"
+ "entity": "Uscr;",
+ "value": "U+1D4B0"
},
{
- entity: "Utilde;",
- value: "U+00168"
+ "entity": "Utilde;",
+ "value": "U+00168"
},
{
- entity: "Uuml;",
- value: "U+000DC"
+ "entity": "Uuml;",
+ "value": "U+000DC"
},
{
- entity: "Uuml",
- value: "U+000DC"
+ "entity": "Uuml",
+ "value": "U+000DC"
},
{
- entity: "VDash;",
- value: "U+022AB"
+ "entity": "VDash;",
+ "value": "U+022AB"
},
{
- entity: "Vbar;",
- value: "U+02AEB"
+ "entity": "Vbar;",
+ "value": "U+02AEB"
},
{
- entity: "Vcy;",
- value: "U+00412"
+ "entity": "Vcy;",
+ "value": "U+00412"
},
{
- entity: "Vdash;",
- value: "U+022A9"
+ "entity": "Vdash;",
+ "value": "U+022A9"
},
{
- entity: "Vdashl;",
- value: "U+02AE6"
+ "entity": "Vdashl;",
+ "value": "U+02AE6"
},
{
- entity: "Vee;",
- value: "U+022C1"
+ "entity": "Vee;",
+ "value": "U+022C1"
},
{
- entity: "Verbar;",
- value: "U+02016"
+ "entity": "Verbar;",
+ "value": "U+02016"
},
{
- entity: "Vert;",
- value: "U+02016"
+ "entity": "Vert;",
+ "value": "U+02016"
},
{
- entity: "VerticalBar;",
- value: "U+02223"
+ "entity": "VerticalBar;",
+ "value": "U+02223"
},
{
- entity: "VerticalLine;",
- value: "U+0007C"
+ "entity": "VerticalLine;",
+ "value": "U+0007C"
},
{
- entity: "VerticalSeparator;",
- value: "U+02758"
+ "entity": "VerticalSeparator;",
+ "value": "U+02758"
},
{
- entity: "VerticalTilde;",
- value: "U+02240"
+ "entity": "VerticalTilde;",
+ "value": "U+02240"
},
{
- entity: "VeryThinSpace;",
- value: "U+0200A"
+ "entity": "VeryThinSpace;",
+ "value": "U+0200A"
},
{
- entity: "Vfr;",
- value: "U+1D519"
+ "entity": "Vfr;",
+ "value": "U+1D519"
},
{
- entity: "Vopf;",
- value: "U+1D54D"
+ "entity": "Vopf;",
+ "value": "U+1D54D"
},
{
- entity: "Vscr;",
- value: "U+1D4B1"
+ "entity": "Vscr;",
+ "value": "U+1D4B1"
},
{
- entity: "Vvdash;",
- value: "U+022AA"
+ "entity": "Vvdash;",
+ "value": "U+022AA"
},
{
- entity: "Wcirc;",
- value: "U+00174"
+ "entity": "Wcirc;",
+ "value": "U+00174"
},
{
- entity: "Wedge;",
- value: "U+022C0"
+ "entity": "Wedge;",
+ "value": "U+022C0"
},
{
- entity: "Wfr;",
- value: "U+1D51A"
+ "entity": "Wfr;",
+ "value": "U+1D51A"
},
{
- entity: "Wopf;",
- value: "U+1D54E"
+ "entity": "Wopf;",
+ "value": "U+1D54E"
},
{
- entity: "Wscr;",
- value: "U+1D4B2"
+ "entity": "Wscr;",
+ "value": "U+1D4B2"
},
{
- entity: "Xfr;",
- value: "U+1D51B"
+ "entity": "Xfr;",
+ "value": "U+1D51B"
},
{
- entity: "Xi;",
- value: "U+0039E"
+ "entity": "Xi;",
+ "value": "U+0039E"
},
{
- entity: "Xopf;",
- value: "U+1D54F"
+ "entity": "Xopf;",
+ "value": "U+1D54F"
},
{
- entity: "Xscr;",
- value: "U+1D4B3"
+ "entity": "Xscr;",
+ "value": "U+1D4B3"
},
{
- entity: "YAcy;",
- value: "U+0042F"
+ "entity": "YAcy;",
+ "value": "U+0042F"
},
{
- entity: "YIcy;",
- value: "U+00407"
+ "entity": "YIcy;",
+ "value": "U+00407"
},
{
- entity: "YUcy;",
- value: "U+0042E"
+ "entity": "YUcy;",
+ "value": "U+0042E"
},
{
- entity: "Yacute;",
- value: "U+000DD"
+ "entity": "Yacute;",
+ "value": "U+000DD"
},
{
- entity: "Yacute",
- value: "U+000DD"
+ "entity": "Yacute",
+ "value": "U+000DD"
},
{
- entity: "Ycirc;",
- value: "U+00176"
+ "entity": "Ycirc;",
+ "value": "U+00176"
},
{
- entity: "Ycy;",
- value: "U+0042B"
+ "entity": "Ycy;",
+ "value": "U+0042B"
},
{
- entity: "Yfr;",
- value: "U+1D51C"
+ "entity": "Yfr;",
+ "value": "U+1D51C"
},
{
- entity: "Yopf;",
- value: "U+1D550"
+ "entity": "Yopf;",
+ "value": "U+1D550"
},
{
- entity: "Yscr;",
- value: "U+1D4B4"
+ "entity": "Yscr;",
+ "value": "U+1D4B4"
},
{
- entity: "Yuml;",
- value: "U+00178"
+ "entity": "Yuml;",
+ "value": "U+00178"
},
{
- entity: "ZHcy;",
- value: "U+00416"
+ "entity": "ZHcy;",
+ "value": "U+00416"
},
{
- entity: "Zacute;",
- value: "U+00179"
+ "entity": "Zacute;",
+ "value": "U+00179"
},
{
- entity: "Zcaron;",
- value: "U+0017D"
+ "entity": "Zcaron;",
+ "value": "U+0017D"
},
{
- entity: "Zcy;",
- value: "U+00417"
+ "entity": "Zcy;",
+ "value": "U+00417"
},
{
- entity: "Zdot;",
- value: "U+0017B"
+ "entity": "Zdot;",
+ "value": "U+0017B"
},
{
- entity: "ZeroWidthSpace;",
- value: "U+0200B"
+ "entity": "ZeroWidthSpace;",
+ "value": "U+0200B"
},
{
- entity: "Zeta;",
- value: "U+00396"
+ "entity": "Zeta;",
+ "value": "U+00396"
},
{
- entity: "Zfr;",
- value: "U+02128"
+ "entity": "Zfr;",
+ "value": "U+02128"
},
{
- entity: "Zopf;",
- value: "U+02124"
+ "entity": "Zopf;",
+ "value": "U+02124"
},
{
- entity: "Zscr;",
- value: "U+1D4B5"
+ "entity": "Zscr;",
+ "value": "U+1D4B5"
},
{
- entity: "aacute;",
- value: "U+000E1"
+ "entity": "aacute;",
+ "value": "U+000E1"
},
{
- entity: "aacute",
- value: "U+000E1"
+ "entity": "aacute",
+ "value": "U+000E1"
},
{
- entity: "abreve;",
- value: "U+00103"
+ "entity": "abreve;",
+ "value": "U+00103"
},
{
- entity: "ac;",
- value: "U+0223E"
+ "entity": "ac;",
+ "value": "U+0223E"
},
{
- entity: "acd;",
- value: "U+0223F"
+ "entity": "acd;",
+ "value": "U+0223F"
},
{
- entity: "acirc;",
- value: "U+000E2"
+ "entity": "acirc;",
+ "value": "U+000E2"
},
{
- entity: "acirc",
- value: "U+000E2"
+ "entity": "acirc",
+ "value": "U+000E2"
},
{
- entity: "acute;",
- value: "U+000B4"
+ "entity": "acute;",
+ "value": "U+000B4"
},
{
- entity: "acute",
- value: "U+000B4"
+ "entity": "acute",
+ "value": "U+000B4"
},
{
- entity: "acy;",
- value: "U+00430"
+ "entity": "acy;",
+ "value": "U+00430"
},
{
- entity: "aelig;",
- value: "U+000E6"
+ "entity": "aelig;",
+ "value": "U+000E6"
},
{
- entity: "aelig",
- value: "U+000E6"
+ "entity": "aelig",
+ "value": "U+000E6"
},
{
- entity: "af;",
- value: "U+02061"
+ "entity": "af;",
+ "value": "U+02061"
},
{
- entity: "afr;",
- value: "U+1D51E"
+ "entity": "afr;",
+ "value": "U+1D51E"
},
{
- entity: "agrave;",
- value: "U+000E0"
+ "entity": "agrave;",
+ "value": "U+000E0"
},
{
- entity: "agrave",
- value: "U+000E0"
+ "entity": "agrave",
+ "value": "U+000E0"
},
{
- entity: "alefsym;",
- value: "U+02135"
+ "entity": "alefsym;",
+ "value": "U+02135"
},
{
- entity: "aleph;",
- value: "U+02135"
+ "entity": "aleph;",
+ "value": "U+02135"
},
{
- entity: "alpha;",
- value: "U+003B1"
+ "entity": "alpha;",
+ "value": "U+003B1"
},
{
- entity: "amacr;",
- value: "U+00101"
+ "entity": "amacr;",
+ "value": "U+00101"
},
{
- entity: "amalg;",
- value: "U+02A3F"
+ "entity": "amalg;",
+ "value": "U+02A3F"
},
{
- entity: "amp;",
- value: "U+00026"
+ "entity": "amp;",
+ "value": "U+00026"
},
{
- entity: "amp",
- value: "U+00026"
+ "entity": "amp",
+ "value": "U+00026"
},
{
- entity: "and;",
- value: "U+02227"
+ "entity": "and;",
+ "value": "U+02227"
},
{
- entity: "andand;",
- value: "U+02A55"
+ "entity": "andand;",
+ "value": "U+02A55"
},
{
- entity: "andd;",
- value: "U+02A5C"
+ "entity": "andd;",
+ "value": "U+02A5C"
},
{
- entity: "andslope;",
- value: "U+02A58"
+ "entity": "andslope;",
+ "value": "U+02A58"
},
{
- entity: "andv;",
- value: "U+02A5A"
+ "entity": "andv;",
+ "value": "U+02A5A"
},
{
- entity: "ang;",
- value: "U+02220"
+ "entity": "ang;",
+ "value": "U+02220"
},
{
- entity: "ange;",
- value: "U+029A4"
+ "entity": "ange;",
+ "value": "U+029A4"
},
{
- entity: "angle;",
- value: "U+02220"
+ "entity": "angle;",
+ "value": "U+02220"
},
{
- entity: "angmsd;",
- value: "U+02221"
+ "entity": "angmsd;",
+ "value": "U+02221"
},
{
- entity: "angmsdaa;",
- value: "U+029A8"
+ "entity": "angmsdaa;",
+ "value": "U+029A8"
},
{
- entity: "angmsdab;",
- value: "U+029A9"
+ "entity": "angmsdab;",
+ "value": "U+029A9"
},
{
- entity: "angmsdac;",
- value: "U+029AA"
+ "entity": "angmsdac;",
+ "value": "U+029AA"
},
{
- entity: "angmsdad;",
- value: "U+029AB"
+ "entity": "angmsdad;",
+ "value": "U+029AB"
},
{
- entity: "angmsdae;",
- value: "U+029AC"
+ "entity": "angmsdae;",
+ "value": "U+029AC"
},
{
- entity: "angmsdaf;",
- value: "U+029AD"
+ "entity": "angmsdaf;",
+ "value": "U+029AD"
},
{
- entity: "angmsdag;",
- value: "U+029AE"
+ "entity": "angmsdag;",
+ "value": "U+029AE"
},
{
- entity: "angmsdah;",
- value: "U+029AF"
+ "entity": "angmsdah;",
+ "value": "U+029AF"
},
{
- entity: "angrt;",
- value: "U+0221F"
+ "entity": "angrt;",
+ "value": "U+0221F"
},
{
- entity: "angrtvb;",
- value: "U+022BE"
+ "entity": "angrtvb;",
+ "value": "U+022BE"
},
{
- entity: "angrtvbd;",
- value: "U+0299D"
+ "entity": "angrtvbd;",
+ "value": "U+0299D"
},
{
- entity: "angsph;",
- value: "U+02222"
+ "entity": "angsph;",
+ "value": "U+02222"
},
{
- entity: "angst;",
- value: "U+000C5"
+ "entity": "angst;",
+ "value": "U+000C5"
},
{
- entity: "angzarr;",
- value: "U+0237C"
+ "entity": "angzarr;",
+ "value": "U+0237C"
},
{
- entity: "aogon;",
- value: "U+00105"
+ "entity": "aogon;",
+ "value": "U+00105"
},
{
- entity: "aopf;",
- value: "U+1D552"
+ "entity": "aopf;",
+ "value": "U+1D552"
},
{
- entity: "ap;",
- value: "U+02248"
+ "entity": "ap;",
+ "value": "U+02248"
},
{
- entity: "apE;",
- value: "U+02A70"
+ "entity": "apE;",
+ "value": "U+02A70"
},
{
- entity: "apacir;",
- value: "U+02A6F"
+ "entity": "apacir;",
+ "value": "U+02A6F"
},
{
- entity: "ape;",
- value: "U+0224A"
+ "entity": "ape;",
+ "value": "U+0224A"
},
{
- entity: "apid;",
- value: "U+0224B"
+ "entity": "apid;",
+ "value": "U+0224B"
},
{
- entity: "apos;",
- value: "U+00027"
+ "entity": "apos;",
+ "value": "U+00027"
},
{
- entity: "approx;",
- value: "U+02248"
+ "entity": "approx;",
+ "value": "U+02248"
},
{
- entity: "approxeq;",
- value: "U+0224A"
+ "entity": "approxeq;",
+ "value": "U+0224A"
},
{
- entity: "aring;",
- value: "U+000E5"
+ "entity": "aring;",
+ "value": "U+000E5"
},
{
- entity: "aring",
- value: "U+000E5"
+ "entity": "aring",
+ "value": "U+000E5"
},
{
- entity: "ascr;",
- value: "U+1D4B6"
+ "entity": "ascr;",
+ "value": "U+1D4B6"
},
{
- entity: "ast;",
- value: "U+0002A"
+ "entity": "ast;",
+ "value": "U+0002A"
},
{
- entity: "asymp;",
- value: "U+02248"
+ "entity": "asymp;",
+ "value": "U+02248"
},
{
- entity: "asympeq;",
- value: "U+0224D"
+ "entity": "asympeq;",
+ "value": "U+0224D"
},
{
- entity: "atilde;",
- value: "U+000E3"
+ "entity": "atilde;",
+ "value": "U+000E3"
},
{
- entity: "atilde",
- value: "U+000E3"
+ "entity": "atilde",
+ "value": "U+000E3"
},
{
- entity: "auml;",
- value: "U+000E4"
+ "entity": "auml;",
+ "value": "U+000E4"
},
{
- entity: "auml",
- value: "U+000E4"
+ "entity": "auml",
+ "value": "U+000E4"
},
{
- entity: "awconint;",
- value: "U+02233"
+ "entity": "awconint;",
+ "value": "U+02233"
},
{
- entity: "awint;",
- value: "U+02A11"
+ "entity": "awint;",
+ "value": "U+02A11"
},
{
- entity: "bNot;",
- value: "U+02AED"
+ "entity": "bNot;",
+ "value": "U+02AED"
},
{
- entity: "backcong;",
- value: "U+0224C"
+ "entity": "backcong;",
+ "value": "U+0224C"
},
{
- entity: "backepsilon;",
- value: "U+003F6"
+ "entity": "backepsilon;",
+ "value": "U+003F6"
},
{
- entity: "backprime;",
- value: "U+02035"
+ "entity": "backprime;",
+ "value": "U+02035"
},
{
- entity: "backsim;",
- value: "U+0223D"
+ "entity": "backsim;",
+ "value": "U+0223D"
},
{
- entity: "backsimeq;",
- value: "U+022CD"
+ "entity": "backsimeq;",
+ "value": "U+022CD"
},
{
- entity: "barvee;",
- value: "U+022BD"
+ "entity": "barvee;",
+ "value": "U+022BD"
},
{
- entity: "barwed;",
- value: "U+02305"
+ "entity": "barwed;",
+ "value": "U+02305"
},
{
- entity: "barwedge;",
- value: "U+02305"
+ "entity": "barwedge;",
+ "value": "U+02305"
},
{
- entity: "bbrk;",
- value: "U+023B5"
+ "entity": "bbrk;",
+ "value": "U+023B5"
},
{
- entity: "bbrktbrk;",
- value: "U+023B6"
+ "entity": "bbrktbrk;",
+ "value": "U+023B6"
},
{
- entity: "bcong;",
- value: "U+0224C"
+ "entity": "bcong;",
+ "value": "U+0224C"
},
{
- entity: "bcy;",
- value: "U+00431"
+ "entity": "bcy;",
+ "value": "U+00431"
},
{
- entity: "bdquo;",
- value: "U+0201E"
+ "entity": "bdquo;",
+ "value": "U+0201E"
},
{
- entity: "becaus;",
- value: "U+02235"
+ "entity": "becaus;",
+ "value": "U+02235"
},
{
- entity: "because;",
- value: "U+02235"
+ "entity": "because;",
+ "value": "U+02235"
},
{
- entity: "bemptyv;",
- value: "U+029B0"
+ "entity": "bemptyv;",
+ "value": "U+029B0"
},
{
- entity: "bepsi;",
- value: "U+003F6"
+ "entity": "bepsi;",
+ "value": "U+003F6"
},
{
- entity: "bernou;",
- value: "U+0212C"
+ "entity": "bernou;",
+ "value": "U+0212C"
},
{
- entity: "beta;",
- value: "U+003B2"
+ "entity": "beta;",
+ "value": "U+003B2"
},
{
- entity: "beth;",
- value: "U+02136"
+ "entity": "beth;",
+ "value": "U+02136"
},
{
- entity: "between;",
- value: "U+0226C"
+ "entity": "between;",
+ "value": "U+0226C"
},
{
- entity: "bfr;",
- value: "U+1D51F"
+ "entity": "bfr;",
+ "value": "U+1D51F"
},
{
- entity: "bigcap;",
- value: "U+022C2"
+ "entity": "bigcap;",
+ "value": "U+022C2"
},
{
- entity: "bigcirc;",
- value: "U+025EF"
+ "entity": "bigcirc;",
+ "value": "U+025EF"
},
{
- entity: "bigcup;",
- value: "U+022C3"
+ "entity": "bigcup;",
+ "value": "U+022C3"
},
{
- entity: "bigodot;",
- value: "U+02A00"
+ "entity": "bigodot;",
+ "value": "U+02A00"
},
{
- entity: "bigoplus;",
- value: "U+02A01"
+ "entity": "bigoplus;",
+ "value": "U+02A01"
},
{
- entity: "bigotimes;",
- value: "U+02A02"
+ "entity": "bigotimes;",
+ "value": "U+02A02"
},
{
- entity: "bigsqcup;",
- value: "U+02A06"
+ "entity": "bigsqcup;",
+ "value": "U+02A06"
},
{
- entity: "bigstar;",
- value: "U+02605"
+ "entity": "bigstar;",
+ "value": "U+02605"
},
{
- entity: "bigtriangledown;",
- value: "U+025BD"
+ "entity": "bigtriangledown;",
+ "value": "U+025BD"
},
{
- entity: "bigtriangleup;",
- value: "U+025B3"
+ "entity": "bigtriangleup;",
+ "value": "U+025B3"
},
{
- entity: "biguplus;",
- value: "U+02A04"
+ "entity": "biguplus;",
+ "value": "U+02A04"
},
{
- entity: "bigvee;",
- value: "U+022C1"
+ "entity": "bigvee;",
+ "value": "U+022C1"
},
{
- entity: "bigwedge;",
- value: "U+022C0"
+ "entity": "bigwedge;",
+ "value": "U+022C0"
},
{
- entity: "bkarow;",
- value: "U+0290D"
+ "entity": "bkarow;",
+ "value": "U+0290D"
},
{
- entity: "blacklozenge;",
- value: "U+029EB"
+ "entity": "blacklozenge;",
+ "value": "U+029EB"
},
{
- entity: "blacksquare;",
- value: "U+025AA"
+ "entity": "blacksquare;",
+ "value": "U+025AA"
},
{
- entity: "blacktriangle;",
- value: "U+025B4"
+ "entity": "blacktriangle;",
+ "value": "U+025B4"
},
{
- entity: "blacktriangledown;",
- value: "U+025BE"
+ "entity": "blacktriangledown;",
+ "value": "U+025BE"
},
{
- entity: "blacktriangleleft;",
- value: "U+025C2"
+ "entity": "blacktriangleleft;",
+ "value": "U+025C2"
},
{
- entity: "blacktriangleright;",
- value: "U+025B8"
+ "entity": "blacktriangleright;",
+ "value": "U+025B8"
},
{
- entity: "blank;",
- value: "U+02423"
+ "entity": "blank;",
+ "value": "U+02423"
},
{
- entity: "blk12;",
- value: "U+02592"
+ "entity": "blk12;",
+ "value": "U+02592"
},
{
- entity: "blk14;",
- value: "U+02591"
+ "entity": "blk14;",
+ "value": "U+02591"
},
{
- entity: "blk34;",
- value: "U+02593"
+ "entity": "blk34;",
+ "value": "U+02593"
},
{
- entity: "block;",
- value: "U+02588"
+ "entity": "block;",
+ "value": "U+02588"
},
{
- entity: "bnot;",
- value: "U+02310"
+ "entity": "bnot;",
+ "value": "U+02310"
},
{
- entity: "bopf;",
- value: "U+1D553"
+ "entity": "bopf;",
+ "value": "U+1D553"
},
{
- entity: "bot;",
- value: "U+022A5"
+ "entity": "bot;",
+ "value": "U+022A5"
},
{
- entity: "bottom;",
- value: "U+022A5"
+ "entity": "bottom;",
+ "value": "U+022A5"
},
{
- entity: "bowtie;",
- value: "U+022C8"
+ "entity": "bowtie;",
+ "value": "U+022C8"
},
{
- entity: "boxDL;",
- value: "U+02557"
+ "entity": "boxDL;",
+ "value": "U+02557"
},
{
- entity: "boxDR;",
- value: "U+02554"
+ "entity": "boxDR;",
+ "value": "U+02554"
},
{
- entity: "boxDl;",
- value: "U+02556"
+ "entity": "boxDl;",
+ "value": "U+02556"
},
{
- entity: "boxDr;",
- value: "U+02553"
+ "entity": "boxDr;",
+ "value": "U+02553"
},
{
- entity: "boxH;",
- value: "U+02550"
+ "entity": "boxH;",
+ "value": "U+02550"
},
{
- entity: "boxHD;",
- value: "U+02566"
+ "entity": "boxHD;",
+ "value": "U+02566"
},
{
- entity: "boxHU;",
- value: "U+02569"
+ "entity": "boxHU;",
+ "value": "U+02569"
},
{
- entity: "boxHd;",
- value: "U+02564"
+ "entity": "boxHd;",
+ "value": "U+02564"
},
{
- entity: "boxHu;",
- value: "U+02567"
+ "entity": "boxHu;",
+ "value": "U+02567"
},
{
- entity: "boxUL;",
- value: "U+0255D"
+ "entity": "boxUL;",
+ "value": "U+0255D"
},
{
- entity: "boxUR;",
- value: "U+0255A"
+ "entity": "boxUR;",
+ "value": "U+0255A"
},
{
- entity: "boxUl;",
- value: "U+0255C"
+ "entity": "boxUl;",
+ "value": "U+0255C"
},
{
- entity: "boxUr;",
- value: "U+02559"
+ "entity": "boxUr;",
+ "value": "U+02559"
},
{
- entity: "boxV;",
- value: "U+02551"
+ "entity": "boxV;",
+ "value": "U+02551"
},
{
- entity: "boxVH;",
- value: "U+0256C"
+ "entity": "boxVH;",
+ "value": "U+0256C"
},
{
- entity: "boxVL;",
- value: "U+02563"
+ "entity": "boxVL;",
+ "value": "U+02563"
},
{
- entity: "boxVR;",
- value: "U+02560"
+ "entity": "boxVR;",
+ "value": "U+02560"
},
{
- entity: "boxVh;",
- value: "U+0256B"
+ "entity": "boxVh;",
+ "value": "U+0256B"
},
{
- entity: "boxVl;",
- value: "U+02562"
+ "entity": "boxVl;",
+ "value": "U+02562"
},
{
- entity: "boxVr;",
- value: "U+0255F"
+ "entity": "boxVr;",
+ "value": "U+0255F"
},
{
- entity: "boxbox;",
- value: "U+029C9"
+ "entity": "boxbox;",
+ "value": "U+029C9"
},
{
- entity: "boxdL;",
- value: "U+02555"
+ "entity": "boxdL;",
+ "value": "U+02555"
},
{
- entity: "boxdR;",
- value: "U+02552"
+ "entity": "boxdR;",
+ "value": "U+02552"
},
{
- entity: "boxdl;",
- value: "U+02510"
+ "entity": "boxdl;",
+ "value": "U+02510"
},
{
- entity: "boxdr;",
- value: "U+0250C"
+ "entity": "boxdr;",
+ "value": "U+0250C"
},
{
- entity: "boxh;",
- value: "U+02500"
+ "entity": "boxh;",
+ "value": "U+02500"
},
{
- entity: "boxhD;",
- value: "U+02565"
+ "entity": "boxhD;",
+ "value": "U+02565"
},
{
- entity: "boxhU;",
- value: "U+02568"
+ "entity": "boxhU;",
+ "value": "U+02568"
},
{
- entity: "boxhd;",
- value: "U+0252C"
+ "entity": "boxhd;",
+ "value": "U+0252C"
},
{
- entity: "boxhu;",
- value: "U+02534"
+ "entity": "boxhu;",
+ "value": "U+02534"
},
{
- entity: "boxminus;",
- value: "U+0229F"
+ "entity": "boxminus;",
+ "value": "U+0229F"
},
{
- entity: "boxplus;",
- value: "U+0229E"
+ "entity": "boxplus;",
+ "value": "U+0229E"
},
{
- entity: "boxtimes;",
- value: "U+022A0"
+ "entity": "boxtimes;",
+ "value": "U+022A0"
},
{
- entity: "boxuL;",
- value: "U+0255B"
+ "entity": "boxuL;",
+ "value": "U+0255B"
},
{
- entity: "boxuR;",
- value: "U+02558"
+ "entity": "boxuR;",
+ "value": "U+02558"
},
{
- entity: "boxul;",
- value: "U+02518"
+ "entity": "boxul;",
+ "value": "U+02518"
},
{
- entity: "boxur;",
- value: "U+02514"
+ "entity": "boxur;",
+ "value": "U+02514"
},
{
- entity: "boxv;",
- value: "U+02502"
+ "entity": "boxv;",
+ "value": "U+02502"
},
{
- entity: "boxvH;",
- value: "U+0256A"
+ "entity": "boxvH;",
+ "value": "U+0256A"
},
{
- entity: "boxvL;",
- value: "U+02561"
+ "entity": "boxvL;",
+ "value": "U+02561"
},
{
- entity: "boxvR;",
- value: "U+0255E"
+ "entity": "boxvR;",
+ "value": "U+0255E"
},
{
- entity: "boxvh;",
- value: "U+0253C"
+ "entity": "boxvh;",
+ "value": "U+0253C"
},
{
- entity: "boxvl;",
- value: "U+02524"
+ "entity": "boxvl;",
+ "value": "U+02524"
},
{
- entity: "boxvr;",
- value: "U+0251C"
+ "entity": "boxvr;",
+ "value": "U+0251C"
},
{
- entity: "bprime;",
- value: "U+02035"
+ "entity": "bprime;",
+ "value": "U+02035"
},
{
- entity: "breve;",
- value: "U+002D8"
+ "entity": "breve;",
+ "value": "U+002D8"
},
{
- entity: "brvbar;",
- value: "U+000A6"
+ "entity": "brvbar;",
+ "value": "U+000A6"
},
{
- entity: "brvbar",
- value: "U+000A6"
+ "entity": "brvbar",
+ "value": "U+000A6"
},
{
- entity: "bscr;",
- value: "U+1D4B7"
+ "entity": "bscr;",
+ "value": "U+1D4B7"
},
{
- entity: "bsemi;",
- value: "U+0204F"
+ "entity": "bsemi;",
+ "value": "U+0204F"
},
{
- entity: "bsim;",
- value: "U+0223D"
+ "entity": "bsim;",
+ "value": "U+0223D"
},
{
- entity: "bsime;",
- value: "U+022CD"
+ "entity": "bsime;",
+ "value": "U+022CD"
},
{
- entity: "bsol;",
- value: "U+0005C"
+ "entity": "bsol;",
+ "value": "U+0005C"
},
{
- entity: "bsolb;",
- value: "U+029C5"
+ "entity": "bsolb;",
+ "value": "U+029C5"
},
{
- entity: "bsolhsub;",
- value: "U+027C8"
+ "entity": "bsolhsub;",
+ "value": "U+027C8"
},
{
- entity: "bull;",
- value: "U+02022"
+ "entity": "bull;",
+ "value": "U+02022"
},
{
- entity: "bullet;",
- value: "U+02022"
+ "entity": "bullet;",
+ "value": "U+02022"
},
{
- entity: "bump;",
- value: "U+0224E"
+ "entity": "bump;",
+ "value": "U+0224E"
},
{
- entity: "bumpE;",
- value: "U+02AAE"
+ "entity": "bumpE;",
+ "value": "U+02AAE"
},
{
- entity: "bumpe;",
- value: "U+0224F"
+ "entity": "bumpe;",
+ "value": "U+0224F"
},
{
- entity: "bumpeq;",
- value: "U+0224F"
+ "entity": "bumpeq;",
+ "value": "U+0224F"
},
{
- entity: "cacute;",
- value: "U+00107"
+ "entity": "cacute;",
+ "value": "U+00107"
},
{
- entity: "cap;",
- value: "U+02229"
+ "entity": "cap;",
+ "value": "U+02229"
},
{
- entity: "capand;",
- value: "U+02A44"
+ "entity": "capand;",
+ "value": "U+02A44"
},
{
- entity: "capbrcup;",
- value: "U+02A49"
+ "entity": "capbrcup;",
+ "value": "U+02A49"
},
{
- entity: "capcap;",
- value: "U+02A4B"
+ "entity": "capcap;",
+ "value": "U+02A4B"
},
{
- entity: "capcup;",
- value: "U+02A47"
+ "entity": "capcup;",
+ "value": "U+02A47"
},
{
- entity: "capdot;",
- value: "U+02A40"
+ "entity": "capdot;",
+ "value": "U+02A40"
},
{
- entity: "caret;",
- value: "U+02041"
+ "entity": "caret;",
+ "value": "U+02041"
},
{
- entity: "caron;",
- value: "U+002C7"
+ "entity": "caron;",
+ "value": "U+002C7"
},
{
- entity: "ccaps;",
- value: "U+02A4D"
+ "entity": "ccaps;",
+ "value": "U+02A4D"
},
{
- entity: "ccaron;",
- value: "U+0010D"
+ "entity": "ccaron;",
+ "value": "U+0010D"
},
{
- entity: "ccedil;",
- value: "U+000E7"
+ "entity": "ccedil;",
+ "value": "U+000E7"
},
{
- entity: "ccedil",
- value: "U+000E7"
+ "entity": "ccedil",
+ "value": "U+000E7"
},
{
- entity: "ccirc;",
- value: "U+00109"
+ "entity": "ccirc;",
+ "value": "U+00109"
},
{
- entity: "ccups;",
- value: "U+02A4C"
+ "entity": "ccups;",
+ "value": "U+02A4C"
},
{
- entity: "ccupssm;",
- value: "U+02A50"
+ "entity": "ccupssm;",
+ "value": "U+02A50"
},
{
- entity: "cdot;",
- value: "U+0010B"
+ "entity": "cdot;",
+ "value": "U+0010B"
},
{
- entity: "cedil;",
- value: "U+000B8"
+ "entity": "cedil;",
+ "value": "U+000B8"
},
{
- entity: "cedil",
- value: "U+000B8"
+ "entity": "cedil",
+ "value": "U+000B8"
},
{
- entity: "cemptyv;",
- value: "U+029B2"
+ "entity": "cemptyv;",
+ "value": "U+029B2"
},
{
- entity: "cent;",
- value: "U+000A2"
+ "entity": "cent;",
+ "value": "U+000A2"
},
{
- entity: "cent",
- value: "U+000A2"
+ "entity": "cent",
+ "value": "U+000A2"
},
{
- entity: "centerdot;",
- value: "U+000B7"
+ "entity": "centerdot;",
+ "value": "U+000B7"
},
{
- entity: "cfr;",
- value: "U+1D520"
+ "entity": "cfr;",
+ "value": "U+1D520"
},
{
- entity: "chcy;",
- value: "U+00447"
+ "entity": "chcy;",
+ "value": "U+00447"
},
{
- entity: "check;",
- value: "U+02713"
+ "entity": "check;",
+ "value": "U+02713"
},
{
- entity: "checkmark;",
- value: "U+02713"
+ "entity": "checkmark;",
+ "value": "U+02713"
},
{
- entity: "chi;",
- value: "U+003C7"
+ "entity": "chi;",
+ "value": "U+003C7"
},
{
- entity: "cir;",
- value: "U+025CB"
+ "entity": "cir;",
+ "value": "U+025CB"
},
{
- entity: "cirE;",
- value: "U+029C3"
+ "entity": "cirE;",
+ "value": "U+029C3"
},
{
- entity: "circ;",
- value: "U+002C6"
+ "entity": "circ;",
+ "value": "U+002C6"
},
{
- entity: "circeq;",
- value: "U+02257"
+ "entity": "circeq;",
+ "value": "U+02257"
},
{
- entity: "circlearrowleft;",
- value: "U+021BA"
+ "entity": "circlearrowleft;",
+ "value": "U+021BA"
},
{
- entity: "circlearrowright;",
- value: "U+021BB"
+ "entity": "circlearrowright;",
+ "value": "U+021BB"
},
{
- entity: "circledR;",
- value: "U+000AE"
+ "entity": "circledR;",
+ "value": "U+000AE"
},
{
- entity: "circledS;",
- value: "U+024C8"
+ "entity": "circledS;",
+ "value": "U+024C8"
},
{
- entity: "circledast;",
- value: "U+0229B"
+ "entity": "circledast;",
+ "value": "U+0229B"
},
{
- entity: "circledcirc;",
- value: "U+0229A"
+ "entity": "circledcirc;",
+ "value": "U+0229A"
},
{
- entity: "circleddash;",
- value: "U+0229D"
+ "entity": "circleddash;",
+ "value": "U+0229D"
},
{
- entity: "cire;",
- value: "U+02257"
+ "entity": "cire;",
+ "value": "U+02257"
},
{
- entity: "cirfnint;",
- value: "U+02A10"
+ "entity": "cirfnint;",
+ "value": "U+02A10"
},
{
- entity: "cirmid;",
- value: "U+02AEF"
+ "entity": "cirmid;",
+ "value": "U+02AEF"
},
{
- entity: "cirscir;",
- value: "U+029C2"
+ "entity": "cirscir;",
+ "value": "U+029C2"
},
{
- entity: "clubs;",
- value: "U+02663"
+ "entity": "clubs;",
+ "value": "U+02663"
},
{
- entity: "clubsuit;",
- value: "U+02663"
+ "entity": "clubsuit;",
+ "value": "U+02663"
},
{
- entity: "colon;",
- value: "U+0003A"
+ "entity": "colon;",
+ "value": "U+0003A"
},
{
- entity: "colone;",
- value: "U+02254"
+ "entity": "colone;",
+ "value": "U+02254"
},
{
- entity: "coloneq;",
- value: "U+02254"
+ "entity": "coloneq;",
+ "value": "U+02254"
},
{
- entity: "comma;",
- value: "U+0002C"
+ "entity": "comma;",
+ "value": "U+0002C"
},
{
- entity: "commat;",
- value: "U+00040"
+ "entity": "commat;",
+ "value": "U+00040"
},
{
- entity: "comp;",
- value: "U+02201"
+ "entity": "comp;",
+ "value": "U+02201"
},
{
- entity: "compfn;",
- value: "U+02218"
+ "entity": "compfn;",
+ "value": "U+02218"
},
{
- entity: "complement;",
- value: "U+02201"
+ "entity": "complement;",
+ "value": "U+02201"
},
{
- entity: "complexes;",
- value: "U+02102"
+ "entity": "complexes;",
+ "value": "U+02102"
},
{
- entity: "cong;",
- value: "U+02245"
+ "entity": "cong;",
+ "value": "U+02245"
},
{
- entity: "congdot;",
- value: "U+02A6D"
+ "entity": "congdot;",
+ "value": "U+02A6D"
},
{
- entity: "conint;",
- value: "U+0222E"
+ "entity": "conint;",
+ "value": "U+0222E"
},
{
- entity: "copf;",
- value: "U+1D554"
+ "entity": "copf;",
+ "value": "U+1D554"
},
{
- entity: "coprod;",
- value: "U+02210"
+ "entity": "coprod;",
+ "value": "U+02210"
},
{
- entity: "copy;",
- value: "U+000A9"
+ "entity": "copy;",
+ "value": "U+000A9"
},
{
- entity: "copy",
- value: "U+000A9"
+ "entity": "copy",
+ "value": "U+000A9"
},
{
- entity: "copysr;",
- value: "U+02117"
+ "entity": "copysr;",
+ "value": "U+02117"
},
{
- entity: "crarr;",
- value: "U+021B5"
+ "entity": "crarr;",
+ "value": "U+021B5"
},
{
- entity: "cross;",
- value: "U+02717"
+ "entity": "cross;",
+ "value": "U+02717"
},
{
- entity: "cscr;",
- value: "U+1D4B8"
+ "entity": "cscr;",
+ "value": "U+1D4B8"
},
{
- entity: "csub;",
- value: "U+02ACF"
+ "entity": "csub;",
+ "value": "U+02ACF"
},
{
- entity: "csube;",
- value: "U+02AD1"
+ "entity": "csube;",
+ "value": "U+02AD1"
},
{
- entity: "csup;",
- value: "U+02AD0"
+ "entity": "csup;",
+ "value": "U+02AD0"
},
{
- entity: "csupe;",
- value: "U+02AD2"
+ "entity": "csupe;",
+ "value": "U+02AD2"
},
{
- entity: "ctdot;",
- value: "U+022EF"
+ "entity": "ctdot;",
+ "value": "U+022EF"
},
{
- entity: "cudarrl;",
- value: "U+02938"
+ "entity": "cudarrl;",
+ "value": "U+02938"
},
{
- entity: "cudarrr;",
- value: "U+02935"
+ "entity": "cudarrr;",
+ "value": "U+02935"
},
{
- entity: "cuepr;",
- value: "U+022DE"
+ "entity": "cuepr;",
+ "value": "U+022DE"
},
{
- entity: "cuesc;",
- value: "U+022DF"
+ "entity": "cuesc;",
+ "value": "U+022DF"
},
{
- entity: "cularr;",
- value: "U+021B6"
+ "entity": "cularr;",
+ "value": "U+021B6"
},
{
- entity: "cularrp;",
- value: "U+0293D"
+ "entity": "cularrp;",
+ "value": "U+0293D"
},
{
- entity: "cup;",
- value: "U+0222A"
+ "entity": "cup;",
+ "value": "U+0222A"
},
{
- entity: "cupbrcap;",
- value: "U+02A48"
+ "entity": "cupbrcap;",
+ "value": "U+02A48"
},
{
- entity: "cupcap;",
- value: "U+02A46"
+ "entity": "cupcap;",
+ "value": "U+02A46"
},
{
- entity: "cupcup;",
- value: "U+02A4A"
+ "entity": "cupcup;",
+ "value": "U+02A4A"
},
{
- entity: "cupdot;",
- value: "U+0228D"
+ "entity": "cupdot;",
+ "value": "U+0228D"
},
{
- entity: "cupor;",
- value: "U+02A45"
+ "entity": "cupor;",
+ "value": "U+02A45"
},
{
- entity: "curarr;",
- value: "U+021B7"
+ "entity": "curarr;",
+ "value": "U+021B7"
},
{
- entity: "curarrm;",
- value: "U+0293C"
+ "entity": "curarrm;",
+ "value": "U+0293C"
},
{
- entity: "curlyeqprec;",
- value: "U+022DE"
+ "entity": "curlyeqprec;",
+ "value": "U+022DE"
},
{
- entity: "curlyeqsucc;",
- value: "U+022DF"
+ "entity": "curlyeqsucc;",
+ "value": "U+022DF"
},
{
- entity: "curlyvee;",
- value: "U+022CE"
+ "entity": "curlyvee;",
+ "value": "U+022CE"
},
{
- entity: "curlywedge;",
- value: "U+022CF"
+ "entity": "curlywedge;",
+ "value": "U+022CF"
},
{
- entity: "curren;",
- value: "U+000A4"
+ "entity": "curren;",
+ "value": "U+000A4"
},
{
- entity: "curren",
- value: "U+000A4"
+ "entity": "curren",
+ "value": "U+000A4"
},
{
- entity: "curvearrowleft;",
- value: "U+021B6"
+ "entity": "curvearrowleft;",
+ "value": "U+021B6"
},
{
- entity: "curvearrowright;",
- value: "U+021B7"
+ "entity": "curvearrowright;",
+ "value": "U+021B7"
},
{
- entity: "cuvee;",
- value: "U+022CE"
+ "entity": "cuvee;",
+ "value": "U+022CE"
},
{
- entity: "cuwed;",
- value: "U+022CF"
+ "entity": "cuwed;",
+ "value": "U+022CF"
},
{
- entity: "cwconint;",
- value: "U+02232"
+ "entity": "cwconint;",
+ "value": "U+02232"
},
{
- entity: "cwint;",
- value: "U+02231"
+ "entity": "cwint;",
+ "value": "U+02231"
},
{
- entity: "cylcty;",
- value: "U+0232D"
+ "entity": "cylcty;",
+ "value": "U+0232D"
},
{
- entity: "dArr;",
- value: "U+021D3"
+ "entity": "dArr;",
+ "value": "U+021D3"
},
{
- entity: "dHar;",
- value: "U+02965"
+ "entity": "dHar;",
+ "value": "U+02965"
},
{
- entity: "dagger;",
- value: "U+02020"
+ "entity": "dagger;",
+ "value": "U+02020"
},
{
- entity: "daleth;",
- value: "U+02138"
+ "entity": "daleth;",
+ "value": "U+02138"
},
{
- entity: "darr;",
- value: "U+02193"
+ "entity": "darr;",
+ "value": "U+02193"
},
{
- entity: "dash;",
- value: "U+02010"
+ "entity": "dash;",
+ "value": "U+02010"
},
{
- entity: "dashv;",
- value: "U+022A3"
+ "entity": "dashv;",
+ "value": "U+022A3"
},
{
- entity: "dbkarow;",
- value: "U+0290F"
+ "entity": "dbkarow;",
+ "value": "U+0290F"
},
{
- entity: "dblac;",
- value: "U+002DD"
+ "entity": "dblac;",
+ "value": "U+002DD"
},
{
- entity: "dcaron;",
- value: "U+0010F"
+ "entity": "dcaron;",
+ "value": "U+0010F"
},
{
- entity: "dcy;",
- value: "U+00434"
+ "entity": "dcy;",
+ "value": "U+00434"
},
{
- entity: "dd;",
- value: "U+02146"
+ "entity": "dd;",
+ "value": "U+02146"
},
{
- entity: "ddagger;",
- value: "U+02021"
+ "entity": "ddagger;",
+ "value": "U+02021"
},
{
- entity: "ddarr;",
- value: "U+021CA"
+ "entity": "ddarr;",
+ "value": "U+021CA"
},
{
- entity: "ddotseq;",
- value: "U+02A77"
+ "entity": "ddotseq;",
+ "value": "U+02A77"
},
{
- entity: "deg;",
- value: "U+000B0"
+ "entity": "deg;",
+ "value": "U+000B0"
},
{
- entity: "deg",
- value: "U+000B0"
+ "entity": "deg",
+ "value": "U+000B0"
},
{
- entity: "delta;",
- value: "U+003B4"
+ "entity": "delta;",
+ "value": "U+003B4"
},
{
- entity: "demptyv;",
- value: "U+029B1"
+ "entity": "demptyv;",
+ "value": "U+029B1"
},
{
- entity: "dfisht;",
- value: "U+0297F"
+ "entity": "dfisht;",
+ "value": "U+0297F"
},
{
- entity: "dfr;",
- value: "U+1D521"
+ "entity": "dfr;",
+ "value": "U+1D521"
},
{
- entity: "dharl;",
- value: "U+021C3"
+ "entity": "dharl;",
+ "value": "U+021C3"
},
{
- entity: "dharr;",
- value: "U+021C2"
+ "entity": "dharr;",
+ "value": "U+021C2"
},
{
- entity: "diam;",
- value: "U+022C4"
+ "entity": "diam;",
+ "value": "U+022C4"
},
{
- entity: "diamond;",
- value: "U+022C4"
+ "entity": "diamond;",
+ "value": "U+022C4"
},
{
- entity: "diamondsuit;",
- value: "U+02666"
+ "entity": "diamondsuit;",
+ "value": "U+02666"
},
{
- entity: "diams;",
- value: "U+02666"
+ "entity": "diams;",
+ "value": "U+02666"
},
{
- entity: "die;",
- value: "U+000A8"
+ "entity": "die;",
+ "value": "U+000A8"
},
{
- entity: "digamma;",
- value: "U+003DD"
+ "entity": "digamma;",
+ "value": "U+003DD"
},
{
- entity: "disin;",
- value: "U+022F2"
+ "entity": "disin;",
+ "value": "U+022F2"
},
{
- entity: "div;",
- value: "U+000F7"
+ "entity": "div;",
+ "value": "U+000F7"
},
{
- entity: "divide;",
- value: "U+000F7"
+ "entity": "divide;",
+ "value": "U+000F7"
},
{
- entity: "divide",
- value: "U+000F7"
+ "entity": "divide",
+ "value": "U+000F7"
},
{
- entity: "divideontimes;",
- value: "U+022C7"
+ "entity": "divideontimes;",
+ "value": "U+022C7"
},
{
- entity: "divonx;",
- value: "U+022C7"
+ "entity": "divonx;",
+ "value": "U+022C7"
},
{
- entity: "djcy;",
- value: "U+00452"
+ "entity": "djcy;",
+ "value": "U+00452"
},
{
- entity: "dlcorn;",
- value: "U+0231E"
+ "entity": "dlcorn;",
+ "value": "U+0231E"
},
{
- entity: "dlcrop;",
- value: "U+0230D"
+ "entity": "dlcrop;",
+ "value": "U+0230D"
},
{
- entity: "dollar;",
- value: "U+00024"
+ "entity": "dollar;",
+ "value": "U+00024"
},
{
- entity: "dopf;",
- value: "U+1D555"
+ "entity": "dopf;",
+ "value": "U+1D555"
},
{
- entity: "dot;",
- value: "U+002D9"
+ "entity": "dot;",
+ "value": "U+002D9"
},
{
- entity: "doteq;",
- value: "U+02250"
+ "entity": "doteq;",
+ "value": "U+02250"
},
{
- entity: "doteqdot;",
- value: "U+02251"
+ "entity": "doteqdot;",
+ "value": "U+02251"
},
{
- entity: "dotminus;",
- value: "U+02238"
+ "entity": "dotminus;",
+ "value": "U+02238"
},
{
- entity: "dotplus;",
- value: "U+02214"
+ "entity": "dotplus;",
+ "value": "U+02214"
},
{
- entity: "dotsquare;",
- value: "U+022A1"
+ "entity": "dotsquare;",
+ "value": "U+022A1"
},
{
- entity: "doublebarwedge;",
- value: "U+02306"
+ "entity": "doublebarwedge;",
+ "value": "U+02306"
},
{
- entity: "downarrow;",
- value: "U+02193"
+ "entity": "downarrow;",
+ "value": "U+02193"
},
{
- entity: "downdownarrows;",
- value: "U+021CA"
+ "entity": "downdownarrows;",
+ "value": "U+021CA"
},
{
- entity: "downharpoonleft;",
- value: "U+021C3"
+ "entity": "downharpoonleft;",
+ "value": "U+021C3"
},
{
- entity: "downharpoonright;",
- value: "U+021C2"
+ "entity": "downharpoonright;",
+ "value": "U+021C2"
},
{
- entity: "drbkarow;",
- value: "U+02910"
+ "entity": "drbkarow;",
+ "value": "U+02910"
},
{
- entity: "drcorn;",
- value: "U+0231F"
+ "entity": "drcorn;",
+ "value": "U+0231F"
},
{
- entity: "drcrop;",
- value: "U+0230C"
+ "entity": "drcrop;",
+ "value": "U+0230C"
},
{
- entity: "dscr;",
- value: "U+1D4B9"
+ "entity": "dscr;",
+ "value": "U+1D4B9"
},
{
- entity: "dscy;",
- value: "U+00455"
+ "entity": "dscy;",
+ "value": "U+00455"
},
{
- entity: "dsol;",
- value: "U+029F6"
+ "entity": "dsol;",
+ "value": "U+029F6"
},
{
- entity: "dstrok;",
- value: "U+00111"
+ "entity": "dstrok;",
+ "value": "U+00111"
},
{
- entity: "dtdot;",
- value: "U+022F1"
+ "entity": "dtdot;",
+ "value": "U+022F1"
},
{
- entity: "dtri;",
- value: "U+025BF"
+ "entity": "dtri;",
+ "value": "U+025BF"
},
{
- entity: "dtrif;",
- value: "U+025BE"
+ "entity": "dtrif;",
+ "value": "U+025BE"
},
{
- entity: "duarr;",
- value: "U+021F5"
+ "entity": "duarr;",
+ "value": "U+021F5"
},
{
- entity: "duhar;",
- value: "U+0296F"
+ "entity": "duhar;",
+ "value": "U+0296F"
},
{
- entity: "dwangle;",
- value: "U+029A6"
+ "entity": "dwangle;",
+ "value": "U+029A6"
},
{
- entity: "dzcy;",
- value: "U+0045F"
+ "entity": "dzcy;",
+ "value": "U+0045F"
},
{
- entity: "dzigrarr;",
- value: "U+027FF"
+ "entity": "dzigrarr;",
+ "value": "U+027FF"
},
{
- entity: "eDDot;",
- value: "U+02A77"
+ "entity": "eDDot;",
+ "value": "U+02A77"
},
{
- entity: "eDot;",
- value: "U+02251"
+ "entity": "eDot;",
+ "value": "U+02251"
},
{
- entity: "eacute;",
- value: "U+000E9"
+ "entity": "eacute;",
+ "value": "U+000E9"
},
{
- entity: "eacute",
- value: "U+000E9"
+ "entity": "eacute",
+ "value": "U+000E9"
},
{
- entity: "easter;",
- value: "U+02A6E"
+ "entity": "easter;",
+ "value": "U+02A6E"
},
{
- entity: "ecaron;",
- value: "U+0011B"
+ "entity": "ecaron;",
+ "value": "U+0011B"
},
{
- entity: "ecir;",
- value: "U+02256"
+ "entity": "ecir;",
+ "value": "U+02256"
},
{
- entity: "ecirc;",
- value: "U+000EA"
+ "entity": "ecirc;",
+ "value": "U+000EA"
},
{
- entity: "ecirc",
- value: "U+000EA"
+ "entity": "ecirc",
+ "value": "U+000EA"
},
{
- entity: "ecolon;",
- value: "U+02255"
+ "entity": "ecolon;",
+ "value": "U+02255"
},
{
- entity: "ecy;",
- value: "U+0044D"
+ "entity": "ecy;",
+ "value": "U+0044D"
},
{
- entity: "edot;",
- value: "U+00117"
+ "entity": "edot;",
+ "value": "U+00117"
},
{
- entity: "ee;",
- value: "U+02147"
+ "entity": "ee;",
+ "value": "U+02147"
},
{
- entity: "efDot;",
- value: "U+02252"
+ "entity": "efDot;",
+ "value": "U+02252"
},
{
- entity: "efr;",
- value: "U+1D522"
+ "entity": "efr;",
+ "value": "U+1D522"
},
{
- entity: "eg;",
- value: "U+02A9A"
+ "entity": "eg;",
+ "value": "U+02A9A"
},
{
- entity: "egrave;",
- value: "U+000E8"
+ "entity": "egrave;",
+ "value": "U+000E8"
},
{
- entity: "egrave",
- value: "U+000E8"
+ "entity": "egrave",
+ "value": "U+000E8"
},
{
- entity: "egs;",
- value: "U+02A96"
+ "entity": "egs;",
+ "value": "U+02A96"
},
{
- entity: "egsdot;",
- value: "U+02A98"
+ "entity": "egsdot;",
+ "value": "U+02A98"
},
{
- entity: "el;",
- value: "U+02A99"
+ "entity": "el;",
+ "value": "U+02A99"
},
{
- entity: "elinters;",
- value: "U+023E7"
+ "entity": "elinters;",
+ "value": "U+023E7"
},
{
- entity: "ell;",
- value: "U+02113"
+ "entity": "ell;",
+ "value": "U+02113"
},
{
- entity: "els;",
- value: "U+02A95"
+ "entity": "els;",
+ "value": "U+02A95"
},
{
- entity: "elsdot;",
- value: "U+02A97"
+ "entity": "elsdot;",
+ "value": "U+02A97"
},
{
- entity: "emacr;",
- value: "U+00113"
+ "entity": "emacr;",
+ "value": "U+00113"
},
{
- entity: "empty;",
- value: "U+02205"
+ "entity": "empty;",
+ "value": "U+02205"
},
{
- entity: "emptyset;",
- value: "U+02205"
+ "entity": "emptyset;",
+ "value": "U+02205"
},
{
- entity: "emptyv;",
- value: "U+02205"
+ "entity": "emptyv;",
+ "value": "U+02205"
},
{
- entity: "emsp13;",
- value: "U+02004"
+ "entity": "emsp13;",
+ "value": "U+02004"
},
{
- entity: "emsp14;",
- value: "U+02005"
+ "entity": "emsp14;",
+ "value": "U+02005"
},
{
- entity: "emsp;",
- value: "U+02003"
+ "entity": "emsp;",
+ "value": "U+02003"
},
{
- entity: "eng;",
- value: "U+0014B"
+ "entity": "eng;",
+ "value": "U+0014B"
},
{
- entity: "ensp;",
- value: "U+02002"
+ "entity": "ensp;",
+ "value": "U+02002"
},
{
- entity: "eogon;",
- value: "U+00119"
+ "entity": "eogon;",
+ "value": "U+00119"
},
{
- entity: "eopf;",
- value: "U+1D556"
+ "entity": "eopf;",
+ "value": "U+1D556"
},
{
- entity: "epar;",
- value: "U+022D5"
+ "entity": "epar;",
+ "value": "U+022D5"
},
{
- entity: "eparsl;",
- value: "U+029E3"
+ "entity": "eparsl;",
+ "value": "U+029E3"
},
{
- entity: "eplus;",
- value: "U+02A71"
+ "entity": "eplus;",
+ "value": "U+02A71"
},
{
- entity: "epsi;",
- value: "U+003B5"
+ "entity": "epsi;",
+ "value": "U+003B5"
},
{
- entity: "epsilon;",
- value: "U+003B5"
+ "entity": "epsilon;",
+ "value": "U+003B5"
},
{
- entity: "epsiv;",
- value: "U+003F5"
+ "entity": "epsiv;",
+ "value": "U+003F5"
},
{
- entity: "eqcirc;",
- value: "U+02256"
+ "entity": "eqcirc;",
+ "value": "U+02256"
},
{
- entity: "eqcolon;",
- value: "U+02255"
+ "entity": "eqcolon;",
+ "value": "U+02255"
},
{
- entity: "eqsim;",
- value: "U+02242"
+ "entity": "eqsim;",
+ "value": "U+02242"
},
{
- entity: "eqslantgtr;",
- value: "U+02A96"
+ "entity": "eqslantgtr;",
+ "value": "U+02A96"
},
{
- entity: "eqslantless;",
- value: "U+02A95"
+ "entity": "eqslantless;",
+ "value": "U+02A95"
},
{
- entity: "equals;",
- value: "U+0003D"
+ "entity": "equals;",
+ "value": "U+0003D"
},
{
- entity: "equest;",
- value: "U+0225F"
+ "entity": "equest;",
+ "value": "U+0225F"
},
{
- entity: "equiv;",
- value: "U+02261"
+ "entity": "equiv;",
+ "value": "U+02261"
},
{
- entity: "equivDD;",
- value: "U+02A78"
+ "entity": "equivDD;",
+ "value": "U+02A78"
},
{
- entity: "eqvparsl;",
- value: "U+029E5"
+ "entity": "eqvparsl;",
+ "value": "U+029E5"
},
{
- entity: "erDot;",
- value: "U+02253"
+ "entity": "erDot;",
+ "value": "U+02253"
},
{
- entity: "erarr;",
- value: "U+02971"
+ "entity": "erarr;",
+ "value": "U+02971"
},
{
- entity: "escr;",
- value: "U+0212F"
+ "entity": "escr;",
+ "value": "U+0212F"
},
{
- entity: "esdot;",
- value: "U+02250"
+ "entity": "esdot;",
+ "value": "U+02250"
},
{
- entity: "esim;",
- value: "U+02242"
+ "entity": "esim;",
+ "value": "U+02242"
},
{
- entity: "eta;",
- value: "U+003B7"
+ "entity": "eta;",
+ "value": "U+003B7"
},
{
- entity: "eth;",
- value: "U+000F0"
+ "entity": "eth;",
+ "value": "U+000F0"
},
{
- entity: "eth",
- value: "U+000F0"
+ "entity": "eth",
+ "value": "U+000F0"
},
{
- entity: "euml;",
- value: "U+000EB"
+ "entity": "euml;",
+ "value": "U+000EB"
},
{
- entity: "euml",
- value: "U+000EB"
+ "entity": "euml",
+ "value": "U+000EB"
},
{
- entity: "euro;",
- value: "U+020AC"
+ "entity": "euro;",
+ "value": "U+020AC"
},
{
- entity: "excl;",
- value: "U+00021"
+ "entity": "excl;",
+ "value": "U+00021"
},
{
- entity: "exist;",
- value: "U+02203"
+ "entity": "exist;",
+ "value": "U+02203"
},
{
- entity: "expectation;",
- value: "U+02130"
+ "entity": "expectation;",
+ "value": "U+02130"
},
{
- entity: "exponentiale;",
- value: "U+02147"
+ "entity": "exponentiale;",
+ "value": "U+02147"
},
{
- entity: "fallingdotseq;",
- value: "U+02252"
+ "entity": "fallingdotseq;",
+ "value": "U+02252"
},
{
- entity: "fcy;",
- value: "U+00444"
+ "entity": "fcy;",
+ "value": "U+00444"
},
{
- entity: "female;",
- value: "U+02640"
+ "entity": "female;",
+ "value": "U+02640"
},
{
- entity: "ffilig;",
- value: "U+0FB03"
+ "entity": "ffilig;",
+ "value": "U+0FB03"
},
{
- entity: "fflig;",
- value: "U+0FB00"
+ "entity": "fflig;",
+ "value": "U+0FB00"
},
{
- entity: "ffllig;",
- value: "U+0FB04"
+ "entity": "ffllig;",
+ "value": "U+0FB04"
},
{
- entity: "ffr;",
- value: "U+1D523"
+ "entity": "ffr;",
+ "value": "U+1D523"
},
{
- entity: "filig;",
- value: "U+0FB01"
+ "entity": "filig;",
+ "value": "U+0FB01"
},
{
- entity: "flat;",
- value: "U+0266D"
+ "entity": "flat;",
+ "value": "U+0266D"
},
{
- entity: "fllig;",
- value: "U+0FB02"
+ "entity": "fllig;",
+ "value": "U+0FB02"
},
{
- entity: "fltns;",
- value: "U+025B1"
+ "entity": "fltns;",
+ "value": "U+025B1"
},
{
- entity: "fnof;",
- value: "U+00192"
+ "entity": "fnof;",
+ "value": "U+00192"
},
{
- entity: "fopf;",
- value: "U+1D557"
+ "entity": "fopf;",
+ "value": "U+1D557"
},
{
- entity: "forall;",
- value: "U+02200"
+ "entity": "forall;",
+ "value": "U+02200"
},
{
- entity: "fork;",
- value: "U+022D4"
+ "entity": "fork;",
+ "value": "U+022D4"
},
{
- entity: "forkv;",
- value: "U+02AD9"
+ "entity": "forkv;",
+ "value": "U+02AD9"
},
{
- entity: "fpartint;",
- value: "U+02A0D"
+ "entity": "fpartint;",
+ "value": "U+02A0D"
},
{
- entity: "frac12;",
- value: "U+000BD"
+ "entity": "frac12;",
+ "value": "U+000BD"
},
{
- entity: "frac12",
- value: "U+000BD"
+ "entity": "frac12",
+ "value": "U+000BD"
},
{
- entity: "frac13;",
- value: "U+02153"
+ "entity": "frac13;",
+ "value": "U+02153"
},
{
- entity: "frac14;",
- value: "U+000BC"
+ "entity": "frac14;",
+ "value": "U+000BC"
},
{
- entity: "frac14",
- value: "U+000BC"
+ "entity": "frac14",
+ "value": "U+000BC"
},
{
- entity: "frac15;",
- value: "U+02155"
+ "entity": "frac15;",
+ "value": "U+02155"
},
{
- entity: "frac16;",
- value: "U+02159"
+ "entity": "frac16;",
+ "value": "U+02159"
},
{
- entity: "frac18;",
- value: "U+0215B"
+ "entity": "frac18;",
+ "value": "U+0215B"
},
{
- entity: "frac23;",
- value: "U+02154"
+ "entity": "frac23;",
+ "value": "U+02154"
},
{
- entity: "frac25;",
- value: "U+02156"
+ "entity": "frac25;",
+ "value": "U+02156"
},
{
- entity: "frac34;",
- value: "U+000BE"
+ "entity": "frac34;",
+ "value": "U+000BE"
},
{
- entity: "frac34",
- value: "U+000BE"
+ "entity": "frac34",
+ "value": "U+000BE"
},
{
- entity: "frac35;",
- value: "U+02157"
+ "entity": "frac35;",
+ "value": "U+02157"
},
{
- entity: "frac38;",
- value: "U+0215C"
+ "entity": "frac38;",
+ "value": "U+0215C"
},
{
- entity: "frac45;",
- value: "U+02158"
+ "entity": "frac45;",
+ "value": "U+02158"
},
{
- entity: "frac56;",
- value: "U+0215A"
+ "entity": "frac56;",
+ "value": "U+0215A"
},
{
- entity: "frac58;",
- value: "U+0215D"
+ "entity": "frac58;",
+ "value": "U+0215D"
},
{
- entity: "frac78;",
- value: "U+0215E"
+ "entity": "frac78;",
+ "value": "U+0215E"
},
{
- entity: "frasl;",
- value: "U+02044"
+ "entity": "frasl;",
+ "value": "U+02044"
},
{
- entity: "frown;",
- value: "U+02322"
+ "entity": "frown;",
+ "value": "U+02322"
},
{
- entity: "fscr;",
- value: "U+1D4BB"
+ "entity": "fscr;",
+ "value": "U+1D4BB"
},
{
- entity: "gE;",
- value: "U+02267"
+ "entity": "gE;",
+ "value": "U+02267"
},
{
- entity: "gEl;",
- value: "U+02A8C"
+ "entity": "gEl;",
+ "value": "U+02A8C"
},
{
- entity: "gacute;",
- value: "U+001F5"
+ "entity": "gacute;",
+ "value": "U+001F5"
},
{
- entity: "gamma;",
- value: "U+003B3"
+ "entity": "gamma;",
+ "value": "U+003B3"
},
{
- entity: "gammad;",
- value: "U+003DD"
+ "entity": "gammad;",
+ "value": "U+003DD"
},
{
- entity: "gap;",
- value: "U+02A86"
+ "entity": "gap;",
+ "value": "U+02A86"
},
{
- entity: "gbreve;",
- value: "U+0011F"
+ "entity": "gbreve;",
+ "value": "U+0011F"
},
{
- entity: "gcirc;",
- value: "U+0011D"
+ "entity": "gcirc;",
+ "value": "U+0011D"
},
{
- entity: "gcy;",
- value: "U+00433"
+ "entity": "gcy;",
+ "value": "U+00433"
},
{
- entity: "gdot;",
- value: "U+00121"
+ "entity": "gdot;",
+ "value": "U+00121"
},
{
- entity: "ge;",
- value: "U+02265"
+ "entity": "ge;",
+ "value": "U+02265"
},
{
- entity: "gel;",
- value: "U+022DB"
+ "entity": "gel;",
+ "value": "U+022DB"
},
{
- entity: "geq;",
- value: "U+02265"
+ "entity": "geq;",
+ "value": "U+02265"
},
{
- entity: "geqq;",
- value: "U+02267"
+ "entity": "geqq;",
+ "value": "U+02267"
},
{
- entity: "geqslant;",
- value: "U+02A7E"
+ "entity": "geqslant;",
+ "value": "U+02A7E"
},
{
- entity: "ges;",
- value: "U+02A7E"
+ "entity": "ges;",
+ "value": "U+02A7E"
},
{
- entity: "gescc;",
- value: "U+02AA9"
+ "entity": "gescc;",
+ "value": "U+02AA9"
},
{
- entity: "gesdot;",
- value: "U+02A80"
+ "entity": "gesdot;",
+ "value": "U+02A80"
},
{
- entity: "gesdoto;",
- value: "U+02A82"
+ "entity": "gesdoto;",
+ "value": "U+02A82"
},
{
- entity: "gesdotol;",
- value: "U+02A84"
+ "entity": "gesdotol;",
+ "value": "U+02A84"
},
{
- entity: "gesles;",
- value: "U+02A94"
+ "entity": "gesles;",
+ "value": "U+02A94"
},
{
- entity: "gfr;",
- value: "U+1D524"
+ "entity": "gfr;",
+ "value": "U+1D524"
},
{
- entity: "gg;",
- value: "U+0226B"
+ "entity": "gg;",
+ "value": "U+0226B"
},
{
- entity: "ggg;",
- value: "U+022D9"
+ "entity": "ggg;",
+ "value": "U+022D9"
},
{
- entity: "gimel;",
- value: "U+02137"
+ "entity": "gimel;",
+ "value": "U+02137"
},
{
- entity: "gjcy;",
- value: "U+00453"
+ "entity": "gjcy;",
+ "value": "U+00453"
},
{
- entity: "gl;",
- value: "U+02277"
+ "entity": "gl;",
+ "value": "U+02277"
},
{
- entity: "glE;",
- value: "U+02A92"
+ "entity": "glE;",
+ "value": "U+02A92"
},
{
- entity: "gla;",
- value: "U+02AA5"
+ "entity": "gla;",
+ "value": "U+02AA5"
},
{
- entity: "glj;",
- value: "U+02AA4"
+ "entity": "glj;",
+ "value": "U+02AA4"
},
{
- entity: "gnE;",
- value: "U+02269"
+ "entity": "gnE;",
+ "value": "U+02269"
},
{
- entity: "gnap;",
- value: "U+02A8A"
+ "entity": "gnap;",
+ "value": "U+02A8A"
},
{
- entity: "gnapprox;",
- value: "U+02A8A"
+ "entity": "gnapprox;",
+ "value": "U+02A8A"
},
{
- entity: "gne;",
- value: "U+02A88"
+ "entity": "gne;",
+ "value": "U+02A88"
},
{
- entity: "gneq;",
- value: "U+02A88"
+ "entity": "gneq;",
+ "value": "U+02A88"
},
{
- entity: "gneqq;",
- value: "U+02269"
+ "entity": "gneqq;",
+ "value": "U+02269"
},
{
- entity: "gnsim;",
- value: "U+022E7"
+ "entity": "gnsim;",
+ "value": "U+022E7"
},
{
- entity: "gopf;",
- value: "U+1D558"
+ "entity": "gopf;",
+ "value": "U+1D558"
},
{
- entity: "grave;",
- value: "U+00060"
+ "entity": "grave;",
+ "value": "U+00060"
},
{
- entity: "gscr;",
- value: "U+0210A"
+ "entity": "gscr;",
+ "value": "U+0210A"
},
{
- entity: "gsim;",
- value: "U+02273"
+ "entity": "gsim;",
+ "value": "U+02273"
},
{
- entity: "gsime;",
- value: "U+02A8E"
+ "entity": "gsime;",
+ "value": "U+02A8E"
},
{
- entity: "gsiml;",
- value: "U+02A90"
+ "entity": "gsiml;",
+ "value": "U+02A90"
},
{
- entity: "gt;",
- value: "U+0003E"
+ "entity": "gt;",
+ "value": "U+0003E"
},
{
- entity: "gt",
- value: "U+0003E"
+ "entity": "gt",
+ "value": "U+0003E"
},
{
- entity: "gtcc;",
- value: "U+02AA7"
+ "entity": "gtcc;",
+ "value": "U+02AA7"
},
{
- entity: "gtcir;",
- value: "U+02A7A"
+ "entity": "gtcir;",
+ "value": "U+02A7A"
},
{
- entity: "gtdot;",
- value: "U+022D7"
+ "entity": "gtdot;",
+ "value": "U+022D7"
},
{
- entity: "gtlPar;",
- value: "U+02995"
+ "entity": "gtlPar;",
+ "value": "U+02995"
},
{
- entity: "gtquest;",
- value: "U+02A7C"
+ "entity": "gtquest;",
+ "value": "U+02A7C"
},
{
- entity: "gtrapprox;",
- value: "U+02A86"
+ "entity": "gtrapprox;",
+ "value": "U+02A86"
},
{
- entity: "gtrarr;",
- value: "U+02978"
+ "entity": "gtrarr;",
+ "value": "U+02978"
},
{
- entity: "gtrdot;",
- value: "U+022D7"
+ "entity": "gtrdot;",
+ "value": "U+022D7"
},
{
- entity: "gtreqless;",
- value: "U+022DB"
+ "entity": "gtreqless;",
+ "value": "U+022DB"
},
{
- entity: "gtreqqless;",
- value: "U+02A8C"
+ "entity": "gtreqqless;",
+ "value": "U+02A8C"
},
{
- entity: "gtrless;",
- value: "U+02277"
+ "entity": "gtrless;",
+ "value": "U+02277"
},
{
- entity: "gtrsim;",
- value: "U+02273"
+ "entity": "gtrsim;",
+ "value": "U+02273"
},
{
- entity: "hArr;",
- value: "U+021D4"
+ "entity": "hArr;",
+ "value": "U+021D4"
},
{
- entity: "hairsp;",
- value: "U+0200A"
+ "entity": "hairsp;",
+ "value": "U+0200A"
},
{
- entity: "half;",
- value: "U+000BD"
+ "entity": "half;",
+ "value": "U+000BD"
},
{
- entity: "hamilt;",
- value: "U+0210B"
+ "entity": "hamilt;",
+ "value": "U+0210B"
},
{
- entity: "hardcy;",
- value: "U+0044A"
+ "entity": "hardcy;",
+ "value": "U+0044A"
},
{
- entity: "harr;",
- value: "U+02194"
+ "entity": "harr;",
+ "value": "U+02194"
},
{
- entity: "harrcir;",
- value: "U+02948"
+ "entity": "harrcir;",
+ "value": "U+02948"
},
{
- entity: "harrw;",
- value: "U+021AD"
+ "entity": "harrw;",
+ "value": "U+021AD"
},
{
- entity: "hbar;",
- value: "U+0210F"
+ "entity": "hbar;",
+ "value": "U+0210F"
},
{
- entity: "hcirc;",
- value: "U+00125"
+ "entity": "hcirc;",
+ "value": "U+00125"
},
{
- entity: "hearts;",
- value: "U+02665"
+ "entity": "hearts;",
+ "value": "U+02665"
},
{
- entity: "heartsuit;",
- value: "U+02665"
+ "entity": "heartsuit;",
+ "value": "U+02665"
},
{
- entity: "hellip;",
- value: "U+02026"
+ "entity": "hellip;",
+ "value": "U+02026"
},
{
- entity: "hercon;",
- value: "U+022B9"
+ "entity": "hercon;",
+ "value": "U+022B9"
},
{
- entity: "hfr;",
- value: "U+1D525"
+ "entity": "hfr;",
+ "value": "U+1D525"
},
{
- entity: "hksearow;",
- value: "U+02925"
+ "entity": "hksearow;",
+ "value": "U+02925"
},
{
- entity: "hkswarow;",
- value: "U+02926"
+ "entity": "hkswarow;",
+ "value": "U+02926"
},
{
- entity: "hoarr;",
- value: "U+021FF"
+ "entity": "hoarr;",
+ "value": "U+021FF"
},
{
- entity: "homtht;",
- value: "U+0223B"
+ "entity": "homtht;",
+ "value": "U+0223B"
},
{
- entity: "hookleftarrow;",
- value: "U+021A9"
+ "entity": "hookleftarrow;",
+ "value": "U+021A9"
},
{
- entity: "hookrightarrow;",
- value: "U+021AA"
+ "entity": "hookrightarrow;",
+ "value": "U+021AA"
},
{
- entity: "hopf;",
- value: "U+1D559"
+ "entity": "hopf;",
+ "value": "U+1D559"
},
{
- entity: "horbar;",
- value: "U+02015"
+ "entity": "horbar;",
+ "value": "U+02015"
},
{
- entity: "hscr;",
- value: "U+1D4BD"
+ "entity": "hscr;",
+ "value": "U+1D4BD"
},
{
- entity: "hslash;",
- value: "U+0210F"
+ "entity": "hslash;",
+ "value": "U+0210F"
},
{
- entity: "hstrok;",
- value: "U+00127"
+ "entity": "hstrok;",
+ "value": "U+00127"
},
{
- entity: "hybull;",
- value: "U+02043"
+ "entity": "hybull;",
+ "value": "U+02043"
},
{
- entity: "hyphen;",
- value: "U+02010"
+ "entity": "hyphen;",
+ "value": "U+02010"
},
{
- entity: "iacute;",
- value: "U+000ED"
+ "entity": "iacute;",
+ "value": "U+000ED"
},
{
- entity: "iacute",
- value: "U+000ED"
+ "entity": "iacute",
+ "value": "U+000ED"
},
{
- entity: "ic;",
- value: "U+02063"
+ "entity": "ic;",
+ "value": "U+02063"
},
{
- entity: "icirc;",
- value: "U+000EE"
+ "entity": "icirc;",
+ "value": "U+000EE"
},
{
- entity: "icirc",
- value: "U+000EE"
+ "entity": "icirc",
+ "value": "U+000EE"
},
{
- entity: "icy;",
- value: "U+00438"
+ "entity": "icy;",
+ "value": "U+00438"
},
{
- entity: "iecy;",
- value: "U+00435"
+ "entity": "iecy;",
+ "value": "U+00435"
},
{
- entity: "iexcl;",
- value: "U+000A1"
+ "entity": "iexcl;",
+ "value": "U+000A1"
},
{
- entity: "iexcl",
- value: "U+000A1"
+ "entity": "iexcl",
+ "value": "U+000A1"
},
{
- entity: "iff;",
- value: "U+021D4"
+ "entity": "iff;",
+ "value": "U+021D4"
},
{
- entity: "ifr;",
- value: "U+1D526"
+ "entity": "ifr;",
+ "value": "U+1D526"
},
{
- entity: "igrave;",
- value: "U+000EC"
+ "entity": "igrave;",
+ "value": "U+000EC"
},
{
- entity: "igrave",
- value: "U+000EC"
+ "entity": "igrave",
+ "value": "U+000EC"
},
{
- entity: "ii;",
- value: "U+02148"
+ "entity": "ii;",
+ "value": "U+02148"
},
{
- entity: "iiiint;",
- value: "U+02A0C"
+ "entity": "iiiint;",
+ "value": "U+02A0C"
},
{
- entity: "iiint;",
- value: "U+0222D"
+ "entity": "iiint;",
+ "value": "U+0222D"
},
{
- entity: "iinfin;",
- value: "U+029DC"
+ "entity": "iinfin;",
+ "value": "U+029DC"
},
{
- entity: "iiota;",
- value: "U+02129"
+ "entity": "iiota;",
+ "value": "U+02129"
},
{
- entity: "ijlig;",
- value: "U+00133"
+ "entity": "ijlig;",
+ "value": "U+00133"
},
{
- entity: "imacr;",
- value: "U+0012B"
+ "entity": "imacr;",
+ "value": "U+0012B"
},
{
- entity: "image;",
- value: "U+02111"
+ "entity": "image;",
+ "value": "U+02111"
},
{
- entity: "imagline;",
- value: "U+02110"
+ "entity": "imagline;",
+ "value": "U+02110"
},
{
- entity: "imagpart;",
- value: "U+02111"
+ "entity": "imagpart;",
+ "value": "U+02111"
},
{
- entity: "imath;",
- value: "U+00131"
+ "entity": "imath;",
+ "value": "U+00131"
},
{
- entity: "imof;",
- value: "U+022B7"
+ "entity": "imof;",
+ "value": "U+022B7"
},
{
- entity: "imped;",
- value: "U+001B5"
+ "entity": "imped;",
+ "value": "U+001B5"
},
{
- entity: "in;",
- value: "U+02208"
+ "entity": "in;",
+ "value": "U+02208"
},
{
- entity: "incare;",
- value: "U+02105"
+ "entity": "incare;",
+ "value": "U+02105"
},
{
- entity: "infin;",
- value: "U+0221E"
+ "entity": "infin;",
+ "value": "U+0221E"
},
{
- entity: "infintie;",
- value: "U+029DD"
+ "entity": "infintie;",
+ "value": "U+029DD"
},
{
- entity: "inodot;",
- value: "U+00131"
+ "entity": "inodot;",
+ "value": "U+00131"
},
{
- entity: "int;",
- value: "U+0222B"
+ "entity": "int;",
+ "value": "U+0222B"
},
{
- entity: "intcal;",
- value: "U+022BA"
+ "entity": "intcal;",
+ "value": "U+022BA"
},
{
- entity: "integers;",
- value: "U+02124"
+ "entity": "integers;",
+ "value": "U+02124"
},
{
- entity: "intercal;",
- value: "U+022BA"
+ "entity": "intercal;",
+ "value": "U+022BA"
},
{
- entity: "intlarhk;",
- value: "U+02A17"
+ "entity": "intlarhk;",
+ "value": "U+02A17"
},
{
- entity: "intprod;",
- value: "U+02A3C"
+ "entity": "intprod;",
+ "value": "U+02A3C"
},
{
- entity: "iocy;",
- value: "U+00451"
+ "entity": "iocy;",
+ "value": "U+00451"
},
{
- entity: "iogon;",
- value: "U+0012F"
+ "entity": "iogon;",
+ "value": "U+0012F"
},
{
- entity: "iopf;",
- value: "U+1D55A"
+ "entity": "iopf;",
+ "value": "U+1D55A"
},
{
- entity: "iota;",
- value: "U+003B9"
+ "entity": "iota;",
+ "value": "U+003B9"
},
{
- entity: "iprod;",
- value: "U+02A3C"
+ "entity": "iprod;",
+ "value": "U+02A3C"
},
{
- entity: "iquest;",
- value: "U+000BF"
+ "entity": "iquest;",
+ "value": "U+000BF"
},
{
- entity: "iquest",
- value: "U+000BF"
+ "entity": "iquest",
+ "value": "U+000BF"
},
{
- entity: "iscr;",
- value: "U+1D4BE"
+ "entity": "iscr;",
+ "value": "U+1D4BE"
},
{
- entity: "isin;",
- value: "U+02208"
+ "entity": "isin;",
+ "value": "U+02208"
},
{
- entity: "isinE;",
- value: "U+022F9"
+ "entity": "isinE;",
+ "value": "U+022F9"
},
{
- entity: "isindot;",
- value: "U+022F5"
+ "entity": "isindot;",
+ "value": "U+022F5"
},
{
- entity: "isins;",
- value: "U+022F4"
+ "entity": "isins;",
+ "value": "U+022F4"
},
{
- entity: "isinsv;",
- value: "U+022F3"
+ "entity": "isinsv;",
+ "value": "U+022F3"
},
{
- entity: "isinv;",
- value: "U+02208"
+ "entity": "isinv;",
+ "value": "U+02208"
},
{
- entity: "it;",
- value: "U+02062"
+ "entity": "it;",
+ "value": "U+02062"
},
{
- entity: "itilde;",
- value: "U+00129"
+ "entity": "itilde;",
+ "value": "U+00129"
},
{
- entity: "iukcy;",
- value: "U+00456"
+ "entity": "iukcy;",
+ "value": "U+00456"
},
{
- entity: "iuml;",
- value: "U+000EF"
+ "entity": "iuml;",
+ "value": "U+000EF"
},
{
- entity: "iuml",
- value: "U+000EF"
+ "entity": "iuml",
+ "value": "U+000EF"
},
{
- entity: "jcirc;",
- value: "U+00135"
+ "entity": "jcirc;",
+ "value": "U+00135"
},
{
- entity: "jcy;",
- value: "U+00439"
+ "entity": "jcy;",
+ "value": "U+00439"
},
{
- entity: "jfr;",
- value: "U+1D527"
+ "entity": "jfr;",
+ "value": "U+1D527"
},
{
- entity: "jmath;",
- value: "U+00237"
+ "entity": "jmath;",
+ "value": "U+00237"
},
{
- entity: "jopf;",
- value: "U+1D55B"
+ "entity": "jopf;",
+ "value": "U+1D55B"
},
{
- entity: "jscr;",
- value: "U+1D4BF"
+ "entity": "jscr;",
+ "value": "U+1D4BF"
},
{
- entity: "jsercy;",
- value: "U+00458"
+ "entity": "jsercy;",
+ "value": "U+00458"
},
{
- entity: "jukcy;",
- value: "U+00454"
+ "entity": "jukcy;",
+ "value": "U+00454"
},
{
- entity: "kappa;",
- value: "U+003BA"
+ "entity": "kappa;",
+ "value": "U+003BA"
},
{
- entity: "kappav;",
- value: "U+003F0"
+ "entity": "kappav;",
+ "value": "U+003F0"
},
{
- entity: "kcedil;",
- value: "U+00137"
+ "entity": "kcedil;",
+ "value": "U+00137"
},
{
- entity: "kcy;",
- value: "U+0043A"
+ "entity": "kcy;",
+ "value": "U+0043A"
},
{
- entity: "kfr;",
- value: "U+1D528"
+ "entity": "kfr;",
+ "value": "U+1D528"
},
{
- entity: "kgreen;",
- value: "U+00138"
+ "entity": "kgreen;",
+ "value": "U+00138"
},
{
- entity: "khcy;",
- value: "U+00445"
+ "entity": "khcy;",
+ "value": "U+00445"
},
{
- entity: "kjcy;",
- value: "U+0045C"
+ "entity": "kjcy;",
+ "value": "U+0045C"
},
{
- entity: "kopf;",
- value: "U+1D55C"
+ "entity": "kopf;",
+ "value": "U+1D55C"
},
{
- entity: "kscr;",
- value: "U+1D4C0"
+ "entity": "kscr;",
+ "value": "U+1D4C0"
},
{
- entity: "lAarr;",
- value: "U+021DA"
+ "entity": "lAarr;",
+ "value": "U+021DA"
},
{
- entity: "lArr;",
- value: "U+021D0"
+ "entity": "lArr;",
+ "value": "U+021D0"
},
{
- entity: "lAtail;",
- value: "U+0291B"
+ "entity": "lAtail;",
+ "value": "U+0291B"
},
{
- entity: "lBarr;",
- value: "U+0290E"
+ "entity": "lBarr;",
+ "value": "U+0290E"
},
{
- entity: "lE;",
- value: "U+02266"
+ "entity": "lE;",
+ "value": "U+02266"
},
{
- entity: "lEg;",
- value: "U+02A8B"
+ "entity": "lEg;",
+ "value": "U+02A8B"
},
{
- entity: "lHar;",
- value: "U+02962"
+ "entity": "lHar;",
+ "value": "U+02962"
},
{
- entity: "lacute;",
- value: "U+0013A"
+ "entity": "lacute;",
+ "value": "U+0013A"
},
{
- entity: "laemptyv;",
- value: "U+029B4"
+ "entity": "laemptyv;",
+ "value": "U+029B4"
},
{
- entity: "lagran;",
- value: "U+02112"
+ "entity": "lagran;",
+ "value": "U+02112"
},
{
- entity: "lambda;",
- value: "U+003BB"
+ "entity": "lambda;",
+ "value": "U+003BB"
},
{
- entity: "lang;",
- value: "U+027E8"
+ "entity": "lang;",
+ "value": "U+027E8"
},
{
- entity: "langd;",
- value: "U+02991"
+ "entity": "langd;",
+ "value": "U+02991"
},
{
- entity: "langle;",
- value: "U+027E8"
+ "entity": "langle;",
+ "value": "U+027E8"
},
{
- entity: "lap;",
- value: "U+02A85"
+ "entity": "lap;",
+ "value": "U+02A85"
},
{
- entity: "laquo;",
- value: "U+000AB"
+ "entity": "laquo;",
+ "value": "U+000AB"
},
{
- entity: "laquo",
- value: "U+000AB"
+ "entity": "laquo",
+ "value": "U+000AB"
},
{
- entity: "larr;",
- value: "U+02190"
+ "entity": "larr;",
+ "value": "U+02190"
},
{
- entity: "larrb;",
- value: "U+021E4"
+ "entity": "larrb;",
+ "value": "U+021E4"
},
{
- entity: "larrbfs;",
- value: "U+0291F"
+ "entity": "larrbfs;",
+ "value": "U+0291F"
},
{
- entity: "larrfs;",
- value: "U+0291D"
+ "entity": "larrfs;",
+ "value": "U+0291D"
},
{
- entity: "larrhk;",
- value: "U+021A9"
+ "entity": "larrhk;",
+ "value": "U+021A9"
},
{
- entity: "larrlp;",
- value: "U+021AB"
+ "entity": "larrlp;",
+ "value": "U+021AB"
},
{
- entity: "larrpl;",
- value: "U+02939"
+ "entity": "larrpl;",
+ "value": "U+02939"
},
{
- entity: "larrsim;",
- value: "U+02973"
+ "entity": "larrsim;",
+ "value": "U+02973"
},
{
- entity: "larrtl;",
- value: "U+021A2"
+ "entity": "larrtl;",
+ "value": "U+021A2"
},
{
- entity: "lat;",
- value: "U+02AAB"
+ "entity": "lat;",
+ "value": "U+02AAB"
},
{
- entity: "latail;",
- value: "U+02919"
+ "entity": "latail;",
+ "value": "U+02919"
},
{
- entity: "late;",
- value: "U+02AAD"
+ "entity": "late;",
+ "value": "U+02AAD"
},
{
- entity: "lbarr;",
- value: "U+0290C"
+ "entity": "lbarr;",
+ "value": "U+0290C"
},
{
- entity: "lbbrk;",
- value: "U+02772"
+ "entity": "lbbrk;",
+ "value": "U+02772"
},
{
- entity: "lbrace;",
- value: "U+0007B"
+ "entity": "lbrace;",
+ "value": "U+0007B"
},
{
- entity: "lbrack;",
- value: "U+0005B"
+ "entity": "lbrack;",
+ "value": "U+0005B"
},
{
- entity: "lbrke;",
- value: "U+0298B"
+ "entity": "lbrke;",
+ "value": "U+0298B"
},
{
- entity: "lbrksld;",
- value: "U+0298F"
+ "entity": "lbrksld;",
+ "value": "U+0298F"
},
{
- entity: "lbrkslu;",
- value: "U+0298D"
+ "entity": "lbrkslu;",
+ "value": "U+0298D"
},
{
- entity: "lcaron;",
- value: "U+0013E"
+ "entity": "lcaron;",
+ "value": "U+0013E"
},
{
- entity: "lcedil;",
- value: "U+0013C"
+ "entity": "lcedil;",
+ "value": "U+0013C"
},
{
- entity: "lceil;",
- value: "U+02308"
+ "entity": "lceil;",
+ "value": "U+02308"
},
{
- entity: "lcub;",
- value: "U+0007B"
+ "entity": "lcub;",
+ "value": "U+0007B"
},
{
- entity: "lcy;",
- value: "U+0043B"
+ "entity": "lcy;",
+ "value": "U+0043B"
},
{
- entity: "ldca;",
- value: "U+02936"
+ "entity": "ldca;",
+ "value": "U+02936"
},
{
- entity: "ldquo;",
- value: "U+0201C"
+ "entity": "ldquo;",
+ "value": "U+0201C"
},
{
- entity: "ldquor;",
- value: "U+0201E"
+ "entity": "ldquor;",
+ "value": "U+0201E"
},
{
- entity: "ldrdhar;",
- value: "U+02967"
+ "entity": "ldrdhar;",
+ "value": "U+02967"
},
{
- entity: "ldrushar;",
- value: "U+0294B"
+ "entity": "ldrushar;",
+ "value": "U+0294B"
},
{
- entity: "ldsh;",
- value: "U+021B2"
+ "entity": "ldsh;",
+ "value": "U+021B2"
},
{
- entity: "le;",
- value: "U+02264"
+ "entity": "le;",
+ "value": "U+02264"
},
{
- entity: "leftarrow;",
- value: "U+02190"
+ "entity": "leftarrow;",
+ "value": "U+02190"
},
{
- entity: "leftarrowtail;",
- value: "U+021A2"
+ "entity": "leftarrowtail;",
+ "value": "U+021A2"
},
{
- entity: "leftharpoondown;",
- value: "U+021BD"
+ "entity": "leftharpoondown;",
+ "value": "U+021BD"
},
{
- entity: "leftharpoonup;",
- value: "U+021BC"
+ "entity": "leftharpoonup;",
+ "value": "U+021BC"
},
{
- entity: "leftleftarrows;",
- value: "U+021C7"
+ "entity": "leftleftarrows;",
+ "value": "U+021C7"
},
{
- entity: "leftrightarrow;",
- value: "U+02194"
+ "entity": "leftrightarrow;",
+ "value": "U+02194"
},
{
- entity: "leftrightarrows;",
- value: "U+021C6"
+ "entity": "leftrightarrows;",
+ "value": "U+021C6"
},
{
- entity: "leftrightharpoons;",
- value: "U+021CB"
+ "entity": "leftrightharpoons;",
+ "value": "U+021CB"
},
{
- entity: "leftrightsquigarrow;",
- value: "U+021AD"
+ "entity": "leftrightsquigarrow;",
+ "value": "U+021AD"
},
{
- entity: "leftthreetimes;",
- value: "U+022CB"
+ "entity": "leftthreetimes;",
+ "value": "U+022CB"
},
{
- entity: "leg;",
- value: "U+022DA"
+ "entity": "leg;",
+ "value": "U+022DA"
},
{
- entity: "leq;",
- value: "U+02264"
+ "entity": "leq;",
+ "value": "U+02264"
},
{
- entity: "leqq;",
- value: "U+02266"
+ "entity": "leqq;",
+ "value": "U+02266"
},
{
- entity: "leqslant;",
- value: "U+02A7D"
+ "entity": "leqslant;",
+ "value": "U+02A7D"
},
{
- entity: "les;",
- value: "U+02A7D"
+ "entity": "les;",
+ "value": "U+02A7D"
},
{
- entity: "lescc;",
- value: "U+02AA8"
+ "entity": "lescc;",
+ "value": "U+02AA8"
},
{
- entity: "lesdot;",
- value: "U+02A7F"
+ "entity": "lesdot;",
+ "value": "U+02A7F"
},
{
- entity: "lesdoto;",
- value: "U+02A81"
+ "entity": "lesdoto;",
+ "value": "U+02A81"
},
{
- entity: "lesdotor;",
- value: "U+02A83"
+ "entity": "lesdotor;",
+ "value": "U+02A83"
},
{
- entity: "lesges;",
- value: "U+02A93"
+ "entity": "lesges;",
+ "value": "U+02A93"
},
{
- entity: "lessapprox;",
- value: "U+02A85"
+ "entity": "lessapprox;",
+ "value": "U+02A85"
},
{
- entity: "lessdot;",
- value: "U+022D6"
+ "entity": "lessdot;",
+ "value": "U+022D6"
},
{
- entity: "lesseqgtr;",
- value: "U+022DA"
+ "entity": "lesseqgtr;",
+ "value": "U+022DA"
},
{
- entity: "lesseqqgtr;",
- value: "U+02A8B"
+ "entity": "lesseqqgtr;",
+ "value": "U+02A8B"
},
{
- entity: "lessgtr;",
- value: "U+02276"
+ "entity": "lessgtr;",
+ "value": "U+02276"
},
{
- entity: "lesssim;",
- value: "U+02272"
+ "entity": "lesssim;",
+ "value": "U+02272"
},
{
- entity: "lfisht;",
- value: "U+0297C"
+ "entity": "lfisht;",
+ "value": "U+0297C"
},
{
- entity: "lfloor;",
- value: "U+0230A"
+ "entity": "lfloor;",
+ "value": "U+0230A"
},
{
- entity: "lfr;",
- value: "U+1D529"
+ "entity": "lfr;",
+ "value": "U+1D529"
},
{
- entity: "lg;",
- value: "U+02276"
+ "entity": "lg;",
+ "value": "U+02276"
},
{
- entity: "lgE;",
- value: "U+02A91"
+ "entity": "lgE;",
+ "value": "U+02A91"
},
{
- entity: "lhard;",
- value: "U+021BD"
+ "entity": "lhard;",
+ "value": "U+021BD"
},
{
- entity: "lharu;",
- value: "U+021BC"
+ "entity": "lharu;",
+ "value": "U+021BC"
},
{
- entity: "lharul;",
- value: "U+0296A"
+ "entity": "lharul;",
+ "value": "U+0296A"
},
{
- entity: "lhblk;",
- value: "U+02584"
+ "entity": "lhblk;",
+ "value": "U+02584"
},
{
- entity: "ljcy;",
- value: "U+00459"
+ "entity": "ljcy;",
+ "value": "U+00459"
},
{
- entity: "ll;",
- value: "U+0226A"
+ "entity": "ll;",
+ "value": "U+0226A"
},
{
- entity: "llarr;",
- value: "U+021C7"
+ "entity": "llarr;",
+ "value": "U+021C7"
},
{
- entity: "llcorner;",
- value: "U+0231E"
+ "entity": "llcorner;",
+ "value": "U+0231E"
},
{
- entity: "llhard;",
- value: "U+0296B"
+ "entity": "llhard;",
+ "value": "U+0296B"
},
{
- entity: "lltri;",
- value: "U+025FA"
+ "entity": "lltri;",
+ "value": "U+025FA"
},
{
- entity: "lmidot;",
- value: "U+00140"
+ "entity": "lmidot;",
+ "value": "U+00140"
},
{
- entity: "lmoust;",
- value: "U+023B0"
+ "entity": "lmoust;",
+ "value": "U+023B0"
},
{
- entity: "lmoustache;",
- value: "U+023B0"
+ "entity": "lmoustache;",
+ "value": "U+023B0"
},
{
- entity: "lnE;",
- value: "U+02268"
+ "entity": "lnE;",
+ "value": "U+02268"
},
{
- entity: "lnap;",
- value: "U+02A89"
+ "entity": "lnap;",
+ "value": "U+02A89"
},
{
- entity: "lnapprox;",
- value: "U+02A89"
+ "entity": "lnapprox;",
+ "value": "U+02A89"
},
{
- entity: "lne;",
- value: "U+02A87"
+ "entity": "lne;",
+ "value": "U+02A87"
},
{
- entity: "lneq;",
- value: "U+02A87"
+ "entity": "lneq;",
+ "value": "U+02A87"
},
{
- entity: "lneqq;",
- value: "U+02268"
+ "entity": "lneqq;",
+ "value": "U+02268"
},
{
- entity: "lnsim;",
- value: "U+022E6"
+ "entity": "lnsim;",
+ "value": "U+022E6"
},
{
- entity: "loang;",
- value: "U+027EC"
+ "entity": "loang;",
+ "value": "U+027EC"
},
{
- entity: "loarr;",
- value: "U+021FD"
+ "entity": "loarr;",
+ "value": "U+021FD"
},
{
- entity: "lobrk;",
- value: "U+027E6"
+ "entity": "lobrk;",
+ "value": "U+027E6"
},
{
- entity: "longleftarrow;",
- value: "U+027F5"
+ "entity": "longleftarrow;",
+ "value": "U+027F5"
},
{
- entity: "longleftrightarrow;",
- value: "U+027F7"
+ "entity": "longleftrightarrow;",
+ "value": "U+027F7"
},
{
- entity: "longmapsto;",
- value: "U+027FC"
+ "entity": "longmapsto;",
+ "value": "U+027FC"
},
{
- entity: "longrightarrow;",
- value: "U+027F6"
+ "entity": "longrightarrow;",
+ "value": "U+027F6"
},
{
- entity: "looparrowleft;",
- value: "U+021AB"
+ "entity": "looparrowleft;",
+ "value": "U+021AB"
},
{
- entity: "looparrowright;",
- value: "U+021AC"
+ "entity": "looparrowright;",
+ "value": "U+021AC"
},
{
- entity: "lopar;",
- value: "U+02985"
+ "entity": "lopar;",
+ "value": "U+02985"
},
{
- entity: "lopf;",
- value: "U+1D55D"
+ "entity": "lopf;",
+ "value": "U+1D55D"
},
{
- entity: "loplus;",
- value: "U+02A2D"
+ "entity": "loplus;",
+ "value": "U+02A2D"
},
{
- entity: "lotimes;",
- value: "U+02A34"
+ "entity": "lotimes;",
+ "value": "U+02A34"
},
{
- entity: "lowast;",
- value: "U+02217"
+ "entity": "lowast;",
+ "value": "U+02217"
},
{
- entity: "lowbar;",
- value: "U+0005F"
+ "entity": "lowbar;",
+ "value": "U+0005F"
},
{
- entity: "loz;",
- value: "U+025CA"
+ "entity": "loz;",
+ "value": "U+025CA"
},
{
- entity: "lozenge;",
- value: "U+025CA"
+ "entity": "lozenge;",
+ "value": "U+025CA"
},
{
- entity: "lozf;",
- value: "U+029EB"
+ "entity": "lozf;",
+ "value": "U+029EB"
},
{
- entity: "lpar;",
- value: "U+00028"
+ "entity": "lpar;",
+ "value": "U+00028"
},
{
- entity: "lparlt;",
- value: "U+02993"
+ "entity": "lparlt;",
+ "value": "U+02993"
},
{
- entity: "lrarr;",
- value: "U+021C6"
+ "entity": "lrarr;",
+ "value": "U+021C6"
},
{
- entity: "lrcorner;",
- value: "U+0231F"
+ "entity": "lrcorner;",
+ "value": "U+0231F"
},
{
- entity: "lrhar;",
- value: "U+021CB"
+ "entity": "lrhar;",
+ "value": "U+021CB"
},
{
- entity: "lrhard;",
- value: "U+0296D"
+ "entity": "lrhard;",
+ "value": "U+0296D"
},
{
- entity: "lrm;",
- value: "U+0200E"
+ "entity": "lrm;",
+ "value": "U+0200E"
},
{
- entity: "lrtri;",
- value: "U+022BF"
+ "entity": "lrtri;",
+ "value": "U+022BF"
},
{
- entity: "lsaquo;",
- value: "U+02039"
+ "entity": "lsaquo;",
+ "value": "U+02039"
},
{
- entity: "lscr;",
- value: "U+1D4C1"
+ "entity": "lscr;",
+ "value": "U+1D4C1"
},
{
- entity: "lsh;",
- value: "U+021B0"
+ "entity": "lsh;",
+ "value": "U+021B0"
},
{
- entity: "lsim;",
- value: "U+02272"
+ "entity": "lsim;",
+ "value": "U+02272"
},
{
- entity: "lsime;",
- value: "U+02A8D"
+ "entity": "lsime;",
+ "value": "U+02A8D"
},
{
- entity: "lsimg;",
- value: "U+02A8F"
+ "entity": "lsimg;",
+ "value": "U+02A8F"
},
{
- entity: "lsqb;",
- value: "U+0005B"
+ "entity": "lsqb;",
+ "value": "U+0005B"
},
{
- entity: "lsquo;",
- value: "U+02018"
+ "entity": "lsquo;",
+ "value": "U+02018"
},
{
- entity: "lsquor;",
- value: "U+0201A"
+ "entity": "lsquor;",
+ "value": "U+0201A"
},
{
- entity: "lstrok;",
- value: "U+00142"
+ "entity": "lstrok;",
+ "value": "U+00142"
},
{
- entity: "lt;",
- value: "U+0003C"
+ "entity": "lt;",
+ "value": "U+0003C"
},
{
- entity: "lt",
- value: "U+0003C"
+ "entity": "lt",
+ "value": "U+0003C"
},
{
- entity: "ltcc;",
- value: "U+02AA6"
+ "entity": "ltcc;",
+ "value": "U+02AA6"
},
{
- entity: "ltcir;",
- value: "U+02A79"
+ "entity": "ltcir;",
+ "value": "U+02A79"
},
{
- entity: "ltdot;",
- value: "U+022D6"
+ "entity": "ltdot;",
+ "value": "U+022D6"
},
{
- entity: "lthree;",
- value: "U+022CB"
+ "entity": "lthree;",
+ "value": "U+022CB"
},
{
- entity: "ltimes;",
- value: "U+022C9"
+ "entity": "ltimes;",
+ "value": "U+022C9"
},
{
- entity: "ltlarr;",
- value: "U+02976"
+ "entity": "ltlarr;",
+ "value": "U+02976"
},
{
- entity: "ltquest;",
- value: "U+02A7B"
+ "entity": "ltquest;",
+ "value": "U+02A7B"
},
{
- entity: "ltrPar;",
- value: "U+02996"
+ "entity": "ltrPar;",
+ "value": "U+02996"
},
{
- entity: "ltri;",
- value: "U+025C3"
+ "entity": "ltri;",
+ "value": "U+025C3"
},
{
- entity: "ltrie;",
- value: "U+022B4"
+ "entity": "ltrie;",
+ "value": "U+022B4"
},
{
- entity: "ltrif;",
- value: "U+025C2"
+ "entity": "ltrif;",
+ "value": "U+025C2"
},
{
- entity: "lurdshar;",
- value: "U+0294A"
+ "entity": "lurdshar;",
+ "value": "U+0294A"
},
{
- entity: "luruhar;",
- value: "U+02966"
+ "entity": "luruhar;",
+ "value": "U+02966"
},
{
- entity: "mDDot;",
- value: "U+0223A"
+ "entity": "mDDot;",
+ "value": "U+0223A"
},
{
- entity: "macr;",
- value: "U+000AF"
+ "entity": "macr;",
+ "value": "U+000AF"
},
{
- entity: "macr",
- value: "U+000AF"
+ "entity": "macr",
+ "value": "U+000AF"
},
{
- entity: "male;",
- value: "U+02642"
+ "entity": "male;",
+ "value": "U+02642"
},
{
- entity: "malt;",
- value: "U+02720"
+ "entity": "malt;",
+ "value": "U+02720"
},
{
- entity: "maltese;",
- value: "U+02720"
+ "entity": "maltese;",
+ "value": "U+02720"
},
{
- entity: "map;",
- value: "U+021A6"
+ "entity": "map;",
+ "value": "U+021A6"
},
{
- entity: "mapsto;",
- value: "U+021A6"
+ "entity": "mapsto;",
+ "value": "U+021A6"
},
{
- entity: "mapstodown;",
- value: "U+021A7"
+ "entity": "mapstodown;",
+ "value": "U+021A7"
},
{
- entity: "mapstoleft;",
- value: "U+021A4"
+ "entity": "mapstoleft;",
+ "value": "U+021A4"
},
{
- entity: "mapstoup;",
- value: "U+021A5"
+ "entity": "mapstoup;",
+ "value": "U+021A5"
},
{
- entity: "marker;",
- value: "U+025AE"
+ "entity": "marker;",
+ "value": "U+025AE"
},
{
- entity: "mcomma;",
- value: "U+02A29"
+ "entity": "mcomma;",
+ "value": "U+02A29"
},
{
- entity: "mcy;",
- value: "U+0043C"
+ "entity": "mcy;",
+ "value": "U+0043C"
},
{
- entity: "mdash;",
- value: "U+02014"
+ "entity": "mdash;",
+ "value": "U+02014"
},
{
- entity: "measuredangle;",
- value: "U+02221"
+ "entity": "measuredangle;",
+ "value": "U+02221"
},
{
- entity: "mfr;",
- value: "U+1D52A"
+ "entity": "mfr;",
+ "value": "U+1D52A"
},
{
- entity: "mho;",
- value: "U+02127"
+ "entity": "mho;",
+ "value": "U+02127"
},
{
- entity: "micro;",
- value: "U+000B5"
+ "entity": "micro;",
+ "value": "U+000B5"
},
{
- entity: "micro",
- value: "U+000B5"
+ "entity": "micro",
+ "value": "U+000B5"
},
{
- entity: "mid;",
- value: "U+02223"
+ "entity": "mid;",
+ "value": "U+02223"
},
{
- entity: "midast;",
- value: "U+0002A"
+ "entity": "midast;",
+ "value": "U+0002A"
},
{
- entity: "midcir;",
- value: "U+02AF0"
+ "entity": "midcir;",
+ "value": "U+02AF0"
},
{
- entity: "middot;",
- value: "U+000B7"
+ "entity": "middot;",
+ "value": "U+000B7"
},
{
- entity: "middot",
- value: "U+000B7"
+ "entity": "middot",
+ "value": "U+000B7"
},
{
- entity: "minus;",
- value: "U+02212"
+ "entity": "minus;",
+ "value": "U+02212"
},
{
- entity: "minusb;",
- value: "U+0229F"
+ "entity": "minusb;",
+ "value": "U+0229F"
},
{
- entity: "minusd;",
- value: "U+02238"
+ "entity": "minusd;",
+ "value": "U+02238"
},
{
- entity: "minusdu;",
- value: "U+02A2A"
+ "entity": "minusdu;",
+ "value": "U+02A2A"
},
{
- entity: "mlcp;",
- value: "U+02ADB"
+ "entity": "mlcp;",
+ "value": "U+02ADB"
},
{
- entity: "mldr;",
- value: "U+02026"
+ "entity": "mldr;",
+ "value": "U+02026"
},
{
- entity: "mnplus;",
- value: "U+02213"
+ "entity": "mnplus;",
+ "value": "U+02213"
},
{
- entity: "models;",
- value: "U+022A7"
+ "entity": "models;",
+ "value": "U+022A7"
},
{
- entity: "mopf;",
- value: "U+1D55E"
+ "entity": "mopf;",
+ "value": "U+1D55E"
},
{
- entity: "mp;",
- value: "U+02213"
+ "entity": "mp;",
+ "value": "U+02213"
},
{
- entity: "mscr;",
- value: "U+1D4C2"
+ "entity": "mscr;",
+ "value": "U+1D4C2"
},
{
- entity: "mstpos;",
- value: "U+0223E"
+ "entity": "mstpos;",
+ "value": "U+0223E"
},
{
- entity: "mu;",
- value: "U+003BC"
+ "entity": "mu;",
+ "value": "U+003BC"
},
{
- entity: "multimap;",
- value: "U+022B8"
+ "entity": "multimap;",
+ "value": "U+022B8"
},
{
- entity: "mumap;",
- value: "U+022B8"
+ "entity": "mumap;",
+ "value": "U+022B8"
},
{
- entity: "nLeftarrow;",
- value: "U+021CD"
+ "entity": "nLeftarrow;",
+ "value": "U+021CD"
},
{
- entity: "nLeftrightarrow;",
- value: "U+021CE"
+ "entity": "nLeftrightarrow;",
+ "value": "U+021CE"
},
{
- entity: "nRightarrow;",
- value: "U+021CF"
+ "entity": "nRightarrow;",
+ "value": "U+021CF"
},
{
- entity: "nVDash;",
- value: "U+022AF"
+ "entity": "nVDash;",
+ "value": "U+022AF"
},
{
- entity: "nVdash;",
- value: "U+022AE"
+ "entity": "nVdash;",
+ "value": "U+022AE"
},
{
- entity: "nabla;",
- value: "U+02207"
+ "entity": "nabla;",
+ "value": "U+02207"
},
{
- entity: "nacute;",
- value: "U+00144"
+ "entity": "nacute;",
+ "value": "U+00144"
},
{
- entity: "nap;",
- value: "U+02249"
+ "entity": "nap;",
+ "value": "U+02249"
},
{
- entity: "napos;",
- value: "U+00149"
+ "entity": "napos;",
+ "value": "U+00149"
},
{
- entity: "napprox;",
- value: "U+02249"
+ "entity": "napprox;",
+ "value": "U+02249"
},
{
- entity: "natur;",
- value: "U+0266E"
+ "entity": "natur;",
+ "value": "U+0266E"
},
{
- entity: "natural;",
- value: "U+0266E"
+ "entity": "natural;",
+ "value": "U+0266E"
},
{
- entity: "naturals;",
- value: "U+02115"
+ "entity": "naturals;",
+ "value": "U+02115"
},
{
- entity: "nbsp;",
- value: "U+000A0"
+ "entity": "nbsp;",
+ "value": "U+000A0"
},
{
- entity: "nbsp",
- value: "U+000A0"
+ "entity": "nbsp",
+ "value": "U+000A0"
},
{
- entity: "ncap;",
- value: "U+02A43"
+ "entity": "ncap;",
+ "value": "U+02A43"
},
{
- entity: "ncaron;",
- value: "U+00148"
+ "entity": "ncaron;",
+ "value": "U+00148"
},
{
- entity: "ncedil;",
- value: "U+00146"
+ "entity": "ncedil;",
+ "value": "U+00146"
},
{
- entity: "ncong;",
- value: "U+02247"
+ "entity": "ncong;",
+ "value": "U+02247"
},
{
- entity: "ncup;",
- value: "U+02A42"
+ "entity": "ncup;",
+ "value": "U+02A42"
},
{
- entity: "ncy;",
- value: "U+0043D"
+ "entity": "ncy;",
+ "value": "U+0043D"
},
{
- entity: "ndash;",
- value: "U+02013"
+ "entity": "ndash;",
+ "value": "U+02013"
},
{
- entity: "ne;",
- value: "U+02260"
+ "entity": "ne;",
+ "value": "U+02260"
},
{
- entity: "neArr;",
- value: "U+021D7"
+ "entity": "neArr;",
+ "value": "U+021D7"
},
{
- entity: "nearhk;",
- value: "U+02924"
+ "entity": "nearhk;",
+ "value": "U+02924"
},
{
- entity: "nearr;",
- value: "U+02197"
+ "entity": "nearr;",
+ "value": "U+02197"
},
{
- entity: "nearrow;",
- value: "U+02197"
+ "entity": "nearrow;",
+ "value": "U+02197"
},
{
- entity: "nequiv;",
- value: "U+02262"
+ "entity": "nequiv;",
+ "value": "U+02262"
},
{
- entity: "nesear;",
- value: "U+02928"
+ "entity": "nesear;",
+ "value": "U+02928"
},
{
- entity: "nexist;",
- value: "U+02204"
+ "entity": "nexist;",
+ "value": "U+02204"
},
{
- entity: "nexists;",
- value: "U+02204"
+ "entity": "nexists;",
+ "value": "U+02204"
},
{
- entity: "nfr;",
- value: "U+1D52B"
+ "entity": "nfr;",
+ "value": "U+1D52B"
},
{
- entity: "nge;",
- value: "U+02271"
+ "entity": "nge;",
+ "value": "U+02271"
},
{
- entity: "ngeq;",
- value: "U+02271"
+ "entity": "ngeq;",
+ "value": "U+02271"
},
{
- entity: "ngsim;",
- value: "U+02275"
+ "entity": "ngsim;",
+ "value": "U+02275"
},
{
- entity: "ngt;",
- value: "U+0226F"
+ "entity": "ngt;",
+ "value": "U+0226F"
},
{
- entity: "ngtr;",
- value: "U+0226F"
+ "entity": "ngtr;",
+ "value": "U+0226F"
},
{
- entity: "nhArr;",
- value: "U+021CE"
+ "entity": "nhArr;",
+ "value": "U+021CE"
},
{
- entity: "nharr;",
- value: "U+021AE"
+ "entity": "nharr;",
+ "value": "U+021AE"
},
{
- entity: "nhpar;",
- value: "U+02AF2"
+ "entity": "nhpar;",
+ "value": "U+02AF2"
},
{
- entity: "ni;",
- value: "U+0220B"
+ "entity": "ni;",
+ "value": "U+0220B"
},
{
- entity: "nis;",
- value: "U+022FC"
+ "entity": "nis;",
+ "value": "U+022FC"
},
{
- entity: "nisd;",
- value: "U+022FA"
+ "entity": "nisd;",
+ "value": "U+022FA"
},
{
- entity: "niv;",
- value: "U+0220B"
+ "entity": "niv;",
+ "value": "U+0220B"
},
{
- entity: "njcy;",
- value: "U+0045A"
+ "entity": "njcy;",
+ "value": "U+0045A"
},
{
- entity: "nlArr;",
- value: "U+021CD"
+ "entity": "nlArr;",
+ "value": "U+021CD"
},
{
- entity: "nlarr;",
- value: "U+0219A"
+ "entity": "nlarr;",
+ "value": "U+0219A"
},
{
- entity: "nldr;",
- value: "U+02025"
+ "entity": "nldr;",
+ "value": "U+02025"
},
{
- entity: "nle;",
- value: "U+02270"
+ "entity": "nle;",
+ "value": "U+02270"
},
{
- entity: "nleftarrow;",
- value: "U+0219A"
+ "entity": "nleftarrow;",
+ "value": "U+0219A"
},
{
- entity: "nleftrightarrow;",
- value: "U+021AE"
+ "entity": "nleftrightarrow;",
+ "value": "U+021AE"
},
{
- entity: "nleq;",
- value: "U+02270"
+ "entity": "nleq;",
+ "value": "U+02270"
},
{
- entity: "nless;",
- value: "U+0226E"
+ "entity": "nless;",
+ "value": "U+0226E"
},
{
- entity: "nlsim;",
- value: "U+02274"
+ "entity": "nlsim;",
+ "value": "U+02274"
},
{
- entity: "nlt;",
- value: "U+0226E"
+ "entity": "nlt;",
+ "value": "U+0226E"
},
{
- entity: "nltri;",
- value: "U+022EA"
+ "entity": "nltri;",
+ "value": "U+022EA"
},
{
- entity: "nltrie;",
- value: "U+022EC"
+ "entity": "nltrie;",
+ "value": "U+022EC"
},
{
- entity: "nmid;",
- value: "U+02224"
+ "entity": "nmid;",
+ "value": "U+02224"
},
{
- entity: "nopf;",
- value: "U+1D55F"
+ "entity": "nopf;",
+ "value": "U+1D55F"
},
{
- entity: "not;",
- value: "U+000AC"
+ "entity": "not;",
+ "value": "U+000AC"
},
{
- entity: "not",
- value: "U+000AC"
+ "entity": "not",
+ "value": "U+000AC"
},
{
- entity: "notin;",
- value: "U+02209"
+ "entity": "notin;",
+ "value": "U+02209"
},
{
- entity: "notinva;",
- value: "U+02209"
+ "entity": "notinva;",
+ "value": "U+02209"
},
{
- entity: "notinvb;",
- value: "U+022F7"
+ "entity": "notinvb;",
+ "value": "U+022F7"
},
{
- entity: "notinvc;",
- value: "U+022F6"
+ "entity": "notinvc;",
+ "value": "U+022F6"
},
{
- entity: "notni;",
- value: "U+0220C"
+ "entity": "notni;",
+ "value": "U+0220C"
},
{
- entity: "notniva;",
- value: "U+0220C"
+ "entity": "notniva;",
+ "value": "U+0220C"
},
{
- entity: "notnivb;",
- value: "U+022FE"
+ "entity": "notnivb;",
+ "value": "U+022FE"
},
{
- entity: "notnivc;",
- value: "U+022FD"
+ "entity": "notnivc;",
+ "value": "U+022FD"
},
{
- entity: "npar;",
- value: "U+02226"
+ "entity": "npar;",
+ "value": "U+02226"
},
{
- entity: "nparallel;",
- value: "U+02226"
+ "entity": "nparallel;",
+ "value": "U+02226"
},
{
- entity: "npolint;",
- value: "U+02A14"
+ "entity": "npolint;",
+ "value": "U+02A14"
},
{
- entity: "npr;",
- value: "U+02280"
+ "entity": "npr;",
+ "value": "U+02280"
},
{
- entity: "nprcue;",
- value: "U+022E0"
+ "entity": "nprcue;",
+ "value": "U+022E0"
},
{
- entity: "nprec;",
- value: "U+02280"
+ "entity": "nprec;",
+ "value": "U+02280"
},
{
- entity: "nrArr;",
- value: "U+021CF"
+ "entity": "nrArr;",
+ "value": "U+021CF"
},
{
- entity: "nrarr;",
- value: "U+0219B"
+ "entity": "nrarr;",
+ "value": "U+0219B"
},
{
- entity: "nrightarrow;",
- value: "U+0219B"
+ "entity": "nrightarrow;",
+ "value": "U+0219B"
},
{
- entity: "nrtri;",
- value: "U+022EB"
+ "entity": "nrtri;",
+ "value": "U+022EB"
},
{
- entity: "nrtrie;",
- value: "U+022ED"
+ "entity": "nrtrie;",
+ "value": "U+022ED"
},
{
- entity: "nsc;",
- value: "U+02281"
+ "entity": "nsc;",
+ "value": "U+02281"
},
{
- entity: "nsccue;",
- value: "U+022E1"
+ "entity": "nsccue;",
+ "value": "U+022E1"
},
{
- entity: "nscr;",
- value: "U+1D4C3"
+ "entity": "nscr;",
+ "value": "U+1D4C3"
},
{
- entity: "nshortmid;",
- value: "U+02224"
+ "entity": "nshortmid;",
+ "value": "U+02224"
},
{
- entity: "nshortparallel;",
- value: "U+02226"
+ "entity": "nshortparallel;",
+ "value": "U+02226"
},
{
- entity: "nsim;",
- value: "U+02241"
+ "entity": "nsim;",
+ "value": "U+02241"
},
{
- entity: "nsime;",
- value: "U+02244"
+ "entity": "nsime;",
+ "value": "U+02244"
},
{
- entity: "nsimeq;",
- value: "U+02244"
+ "entity": "nsimeq;",
+ "value": "U+02244"
},
{
- entity: "nsmid;",
- value: "U+02224"
+ "entity": "nsmid;",
+ "value": "U+02224"
},
{
- entity: "nspar;",
- value: "U+02226"
+ "entity": "nspar;",
+ "value": "U+02226"
},
{
- entity: "nsqsube;",
- value: "U+022E2"
+ "entity": "nsqsube;",
+ "value": "U+022E2"
},
{
- entity: "nsqsupe;",
- value: "U+022E3"
+ "entity": "nsqsupe;",
+ "value": "U+022E3"
},
{
- entity: "nsub;",
- value: "U+02284"
+ "entity": "nsub;",
+ "value": "U+02284"
},
{
- entity: "nsube;",
- value: "U+02288"
+ "entity": "nsube;",
+ "value": "U+02288"
},
{
- entity: "nsubseteq;",
- value: "U+02288"
+ "entity": "nsubseteq;",
+ "value": "U+02288"
},
{
- entity: "nsucc;",
- value: "U+02281"
+ "entity": "nsucc;",
+ "value": "U+02281"
},
{
- entity: "nsup;",
- value: "U+02285"
+ "entity": "nsup;",
+ "value": "U+02285"
},
{
- entity: "nsupe;",
- value: "U+02289"
+ "entity": "nsupe;",
+ "value": "U+02289"
},
{
- entity: "nsupseteq;",
- value: "U+02289"
+ "entity": "nsupseteq;",
+ "value": "U+02289"
},
{
- entity: "ntgl;",
- value: "U+02279"
+ "entity": "ntgl;",
+ "value": "U+02279"
},
{
- entity: "ntilde;",
- value: "U+000F1"
+ "entity": "ntilde;",
+ "value": "U+000F1"
},
{
- entity: "ntilde",
- value: "U+000F1"
+ "entity": "ntilde",
+ "value": "U+000F1"
},
{
- entity: "ntlg;",
- value: "U+02278"
+ "entity": "ntlg;",
+ "value": "U+02278"
},
{
- entity: "ntriangleleft;",
- value: "U+022EA"
+ "entity": "ntriangleleft;",
+ "value": "U+022EA"
},
{
- entity: "ntrianglelefteq;",
- value: "U+022EC"
+ "entity": "ntrianglelefteq;",
+ "value": "U+022EC"
},
{
- entity: "ntriangleright;",
- value: "U+022EB"
+ "entity": "ntriangleright;",
+ "value": "U+022EB"
},
{
- entity: "ntrianglerighteq;",
- value: "U+022ED"
+ "entity": "ntrianglerighteq;",
+ "value": "U+022ED"
},
{
- entity: "nu;",
- value: "U+003BD"
+ "entity": "nu;",
+ "value": "U+003BD"
},
{
- entity: "num;",
- value: "U+00023"
+ "entity": "num;",
+ "value": "U+00023"
},
{
- entity: "numero;",
- value: "U+02116"
+ "entity": "numero;",
+ "value": "U+02116"
},
{
- entity: "numsp;",
- value: "U+02007"
+ "entity": "numsp;",
+ "value": "U+02007"
},
{
- entity: "nvDash;",
- value: "U+022AD"
+ "entity": "nvDash;",
+ "value": "U+022AD"
},
{
- entity: "nvHarr;",
- value: "U+02904"
+ "entity": "nvHarr;",
+ "value": "U+02904"
},
{
- entity: "nvdash;",
- value: "U+022AC"
+ "entity": "nvdash;",
+ "value": "U+022AC"
},
{
- entity: "nvinfin;",
- value: "U+029DE"
+ "entity": "nvinfin;",
+ "value": "U+029DE"
},
{
- entity: "nvlArr;",
- value: "U+02902"
+ "entity": "nvlArr;",
+ "value": "U+02902"
},
{
- entity: "nvrArr;",
- value: "U+02903"
+ "entity": "nvrArr;",
+ "value": "U+02903"
},
{
- entity: "nwArr;",
- value: "U+021D6"
+ "entity": "nwArr;",
+ "value": "U+021D6"
},
{
- entity: "nwarhk;",
- value: "U+02923"
+ "entity": "nwarhk;",
+ "value": "U+02923"
},
{
- entity: "nwarr;",
- value: "U+02196"
+ "entity": "nwarr;",
+ "value": "U+02196"
},
{
- entity: "nwarrow;",
- value: "U+02196"
+ "entity": "nwarrow;",
+ "value": "U+02196"
},
{
- entity: "nwnear;",
- value: "U+02927"
+ "entity": "nwnear;",
+ "value": "U+02927"
},
{
- entity: "oS;",
- value: "U+024C8"
+ "entity": "oS;",
+ "value": "U+024C8"
},
{
- entity: "oacute;",
- value: "U+000F3"
+ "entity": "oacute;",
+ "value": "U+000F3"
},
{
- entity: "oacute",
- value: "U+000F3"
+ "entity": "oacute",
+ "value": "U+000F3"
},
{
- entity: "oast;",
- value: "U+0229B"
+ "entity": "oast;",
+ "value": "U+0229B"
},
{
- entity: "ocir;",
- value: "U+0229A"
+ "entity": "ocir;",
+ "value": "U+0229A"
},
{
- entity: "ocirc;",
- value: "U+000F4"
+ "entity": "ocirc;",
+ "value": "U+000F4"
},
{
- entity: "ocirc",
- value: "U+000F4"
+ "entity": "ocirc",
+ "value": "U+000F4"
},
{
- entity: "ocy;",
- value: "U+0043E"
+ "entity": "ocy;",
+ "value": "U+0043E"
},
{
- entity: "odash;",
- value: "U+0229D"
+ "entity": "odash;",
+ "value": "U+0229D"
},
{
- entity: "odblac;",
- value: "U+00151"
+ "entity": "odblac;",
+ "value": "U+00151"
},
{
- entity: "odiv;",
- value: "U+02A38"
+ "entity": "odiv;",
+ "value": "U+02A38"
},
{
- entity: "odot;",
- value: "U+02299"
+ "entity": "odot;",
+ "value": "U+02299"
},
{
- entity: "odsold;",
- value: "U+029BC"
+ "entity": "odsold;",
+ "value": "U+029BC"
},
{
- entity: "oelig;",
- value: "U+00153"
+ "entity": "oelig;",
+ "value": "U+00153"
},
{
- entity: "ofcir;",
- value: "U+029BF"
+ "entity": "ofcir;",
+ "value": "U+029BF"
},
{
- entity: "ofr;",
- value: "U+1D52C"
+ "entity": "ofr;",
+ "value": "U+1D52C"
},
{
- entity: "ogon;",
- value: "U+002DB"
+ "entity": "ogon;",
+ "value": "U+002DB"
},
{
- entity: "ograve;",
- value: "U+000F2"
+ "entity": "ograve;",
+ "value": "U+000F2"
},
{
- entity: "ograve",
- value: "U+000F2"
+ "entity": "ograve",
+ "value": "U+000F2"
},
{
- entity: "ogt;",
- value: "U+029C1"
+ "entity": "ogt;",
+ "value": "U+029C1"
},
{
- entity: "ohbar;",
- value: "U+029B5"
+ "entity": "ohbar;",
+ "value": "U+029B5"
},
{
- entity: "ohm;",
- value: "U+003A9"
+ "entity": "ohm;",
+ "value": "U+003A9"
},
{
- entity: "oint;",
- value: "U+0222E"
+ "entity": "oint;",
+ "value": "U+0222E"
},
{
- entity: "olarr;",
- value: "U+021BA"
+ "entity": "olarr;",
+ "value": "U+021BA"
},
{
- entity: "olcir;",
- value: "U+029BE"
+ "entity": "olcir;",
+ "value": "U+029BE"
},
{
- entity: "olcross;",
- value: "U+029BB"
+ "entity": "olcross;",
+ "value": "U+029BB"
},
{
- entity: "oline;",
- value: "U+0203E"
+ "entity": "oline;",
+ "value": "U+0203E"
},
{
- entity: "olt;",
- value: "U+029C0"
+ "entity": "olt;",
+ "value": "U+029C0"
},
{
- entity: "omacr;",
- value: "U+0014D"
+ "entity": "omacr;",
+ "value": "U+0014D"
},
{
- entity: "omega;",
- value: "U+003C9"
+ "entity": "omega;",
+ "value": "U+003C9"
},
{
- entity: "omicron;",
- value: "U+003BF"
+ "entity": "omicron;",
+ "value": "U+003BF"
},
{
- entity: "omid;",
- value: "U+029B6"
+ "entity": "omid;",
+ "value": "U+029B6"
},
{
- entity: "ominus;",
- value: "U+02296"
+ "entity": "ominus;",
+ "value": "U+02296"
},
{
- entity: "oopf;",
- value: "U+1D560"
+ "entity": "oopf;",
+ "value": "U+1D560"
},
{
- entity: "opar;",
- value: "U+029B7"
+ "entity": "opar;",
+ "value": "U+029B7"
},
{
- entity: "operp;",
- value: "U+029B9"
+ "entity": "operp;",
+ "value": "U+029B9"
},
{
- entity: "oplus;",
- value: "U+02295"
+ "entity": "oplus;",
+ "value": "U+02295"
},
{
- entity: "or;",
- value: "U+02228"
+ "entity": "or;",
+ "value": "U+02228"
},
{
- entity: "orarr;",
- value: "U+021BB"
+ "entity": "orarr;",
+ "value": "U+021BB"
},
{
- entity: "ord;",
- value: "U+02A5D"
+ "entity": "ord;",
+ "value": "U+02A5D"
},
{
- entity: "order;",
- value: "U+02134"
+ "entity": "order;",
+ "value": "U+02134"
},
{
- entity: "orderof;",
- value: "U+02134"
+ "entity": "orderof;",
+ "value": "U+02134"
},
{
- entity: "ordf;",
- value: "U+000AA"
+ "entity": "ordf;",
+ "value": "U+000AA"
},
{
- entity: "ordf",
- value: "U+000AA"
+ "entity": "ordf",
+ "value": "U+000AA"
},
{
- entity: "ordm;",
- value: "U+000BA"
+ "entity": "ordm;",
+ "value": "U+000BA"
},
{
- entity: "ordm",
- value: "U+000BA"
+ "entity": "ordm",
+ "value": "U+000BA"
},
{
- entity: "origof;",
- value: "U+022B6"
+ "entity": "origof;",
+ "value": "U+022B6"
},
{
- entity: "oror;",
- value: "U+02A56"
+ "entity": "oror;",
+ "value": "U+02A56"
},
{
- entity: "orslope;",
- value: "U+02A57"
+ "entity": "orslope;",
+ "value": "U+02A57"
},
{
- entity: "orv;",
- value: "U+02A5B"
+ "entity": "orv;",
+ "value": "U+02A5B"
},
{
- entity: "oscr;",
- value: "U+02134"
+ "entity": "oscr;",
+ "value": "U+02134"
},
{
- entity: "oslash;",
- value: "U+000F8"
+ "entity": "oslash;",
+ "value": "U+000F8"
},
{
- entity: "oslash",
- value: "U+000F8"
+ "entity": "oslash",
+ "value": "U+000F8"
},
{
- entity: "osol;",
- value: "U+02298"
+ "entity": "osol;",
+ "value": "U+02298"
},
{
- entity: "otilde;",
- value: "U+000F5"
+ "entity": "otilde;",
+ "value": "U+000F5"
},
{
- entity: "otilde",
- value: "U+000F5"
+ "entity": "otilde",
+ "value": "U+000F5"
},
{
- entity: "otimes;",
- value: "U+02297"
+ "entity": "otimes;",
+ "value": "U+02297"
},
{
- entity: "otimesas;",
- value: "U+02A36"
+ "entity": "otimesas;",
+ "value": "U+02A36"
},
{
- entity: "ouml;",
- value: "U+000F6"
+ "entity": "ouml;",
+ "value": "U+000F6"
},
{
- entity: "ouml",
- value: "U+000F6"
+ "entity": "ouml",
+ "value": "U+000F6"
},
{
- entity: "ovbar;",
- value: "U+0233D"
+ "entity": "ovbar;",
+ "value": "U+0233D"
},
{
- entity: "par;",
- value: "U+02225"
+ "entity": "par;",
+ "value": "U+02225"
},
{
- entity: "para;",
- value: "U+000B6"
+ "entity": "para;",
+ "value": "U+000B6"
},
{
- entity: "para",
- value: "U+000B6"
+ "entity": "para",
+ "value": "U+000B6"
},
{
- entity: "parallel;",
- value: "U+02225"
+ "entity": "parallel;",
+ "value": "U+02225"
},
{
- entity: "parsim;",
- value: "U+02AF3"
+ "entity": "parsim;",
+ "value": "U+02AF3"
},
{
- entity: "parsl;",
- value: "U+02AFD"
+ "entity": "parsl;",
+ "value": "U+02AFD"
},
{
- entity: "part;",
- value: "U+02202"
+ "entity": "part;",
+ "value": "U+02202"
},
{
- entity: "pcy;",
- value: "U+0043F"
+ "entity": "pcy;",
+ "value": "U+0043F"
},
{
- entity: "percnt;",
- value: "U+00025"
+ "entity": "percnt;",
+ "value": "U+00025"
},
{
- entity: "period;",
- value: "U+0002E"
+ "entity": "period;",
+ "value": "U+0002E"
},
{
- entity: "permil;",
- value: "U+02030"
+ "entity": "permil;",
+ "value": "U+02030"
},
{
- entity: "perp;",
- value: "U+022A5"
+ "entity": "perp;",
+ "value": "U+022A5"
},
{
- entity: "pertenk;",
- value: "U+02031"
+ "entity": "pertenk;",
+ "value": "U+02031"
},
{
- entity: "pfr;",
- value: "U+1D52D"
+ "entity": "pfr;",
+ "value": "U+1D52D"
},
{
- entity: "phi;",
- value: "U+003C6"
+ "entity": "phi;",
+ "value": "U+003C6"
},
{
- entity: "phiv;",
- value: "U+003D5"
+ "entity": "phiv;",
+ "value": "U+003D5"
},
{
- entity: "phmmat;",
- value: "U+02133"
+ "entity": "phmmat;",
+ "value": "U+02133"
},
{
- entity: "phone;",
- value: "U+0260E"
+ "entity": "phone;",
+ "value": "U+0260E"
},
{
- entity: "pi;",
- value: "U+003C0"
+ "entity": "pi;",
+ "value": "U+003C0"
},
{
- entity: "pitchfork;",
- value: "U+022D4"
+ "entity": "pitchfork;",
+ "value": "U+022D4"
},
{
- entity: "piv;",
- value: "U+003D6"
+ "entity": "piv;",
+ "value": "U+003D6"
},
{
- entity: "planck;",
- value: "U+0210F"
+ "entity": "planck;",
+ "value": "U+0210F"
},
{
- entity: "planckh;",
- value: "U+0210E"
+ "entity": "planckh;",
+ "value": "U+0210E"
},
{
- entity: "plankv;",
- value: "U+0210F"
+ "entity": "plankv;",
+ "value": "U+0210F"
},
{
- entity: "plus;",
- value: "U+0002B"
+ "entity": "plus;",
+ "value": "U+0002B"
},
{
- entity: "plusacir;",
- value: "U+02A23"
+ "entity": "plusacir;",
+ "value": "U+02A23"
},
{
- entity: "plusb;",
- value: "U+0229E"
+ "entity": "plusb;",
+ "value": "U+0229E"
},
{
- entity: "pluscir;",
- value: "U+02A22"
+ "entity": "pluscir;",
+ "value": "U+02A22"
},
{
- entity: "plusdo;",
- value: "U+02214"
+ "entity": "plusdo;",
+ "value": "U+02214"
},
{
- entity: "plusdu;",
- value: "U+02A25"
+ "entity": "plusdu;",
+ "value": "U+02A25"
},
{
- entity: "pluse;",
- value: "U+02A72"
+ "entity": "pluse;",
+ "value": "U+02A72"
},
{
- entity: "plusmn;",
- value: "U+000B1"
+ "entity": "plusmn;",
+ "value": "U+000B1"
},
{
- entity: "plusmn",
- value: "U+000B1"
+ "entity": "plusmn",
+ "value": "U+000B1"
},
{
- entity: "plussim;",
- value: "U+02A26"
+ "entity": "plussim;",
+ "value": "U+02A26"
},
{
- entity: "plustwo;",
- value: "U+02A27"
+ "entity": "plustwo;",
+ "value": "U+02A27"
},
{
- entity: "pm;",
- value: "U+000B1"
+ "entity": "pm;",
+ "value": "U+000B1"
},
{
- entity: "pointint;",
- value: "U+02A15"
+ "entity": "pointint;",
+ "value": "U+02A15"
},
{
- entity: "popf;",
- value: "U+1D561"
+ "entity": "popf;",
+ "value": "U+1D561"
},
{
- entity: "pound;",
- value: "U+000A3"
+ "entity": "pound;",
+ "value": "U+000A3"
},
{
- entity: "pound",
- value: "U+000A3"
+ "entity": "pound",
+ "value": "U+000A3"
},
{
- entity: "pr;",
- value: "U+0227A"
+ "entity": "pr;",
+ "value": "U+0227A"
},
{
- entity: "prE;",
- value: "U+02AB3"
+ "entity": "prE;",
+ "value": "U+02AB3"
},
{
- entity: "prap;",
- value: "U+02AB7"
+ "entity": "prap;",
+ "value": "U+02AB7"
},
{
- entity: "prcue;",
- value: "U+0227C"
+ "entity": "prcue;",
+ "value": "U+0227C"
},
{
- entity: "pre;",
- value: "U+02AAF"
+ "entity": "pre;",
+ "value": "U+02AAF"
},
{
- entity: "prec;",
- value: "U+0227A"
+ "entity": "prec;",
+ "value": "U+0227A"
},
{
- entity: "precapprox;",
- value: "U+02AB7"
+ "entity": "precapprox;",
+ "value": "U+02AB7"
},
{
- entity: "preccurlyeq;",
- value: "U+0227C"
+ "entity": "preccurlyeq;",
+ "value": "U+0227C"
},
{
- entity: "preceq;",
- value: "U+02AAF"
+ "entity": "preceq;",
+ "value": "U+02AAF"
},
{
- entity: "precnapprox;",
- value: "U+02AB9"
+ "entity": "precnapprox;",
+ "value": "U+02AB9"
},
{
- entity: "precneqq;",
- value: "U+02AB5"
+ "entity": "precneqq;",
+ "value": "U+02AB5"
},
{
- entity: "precnsim;",
- value: "U+022E8"
+ "entity": "precnsim;",
+ "value": "U+022E8"
},
{
- entity: "precsim;",
- value: "U+0227E"
+ "entity": "precsim;",
+ "value": "U+0227E"
},
{
- entity: "prime;",
- value: "U+02032"
+ "entity": "prime;",
+ "value": "U+02032"
},
{
- entity: "primes;",
- value: "U+02119"
+ "entity": "primes;",
+ "value": "U+02119"
},
{
- entity: "prnE;",
- value: "U+02AB5"
+ "entity": "prnE;",
+ "value": "U+02AB5"
},
{
- entity: "prnap;",
- value: "U+02AB9"
+ "entity": "prnap;",
+ "value": "U+02AB9"
},
{
- entity: "prnsim;",
- value: "U+022E8"
+ "entity": "prnsim;",
+ "value": "U+022E8"
},
{
- entity: "prod;",
- value: "U+0220F"
+ "entity": "prod;",
+ "value": "U+0220F"
},
{
- entity: "profalar;",
- value: "U+0232E"
+ "entity": "profalar;",
+ "value": "U+0232E"
},
{
- entity: "profline;",
- value: "U+02312"
+ "entity": "profline;",
+ "value": "U+02312"
},
{
- entity: "profsurf;",
- value: "U+02313"
+ "entity": "profsurf;",
+ "value": "U+02313"
},
{
- entity: "prop;",
- value: "U+0221D"
+ "entity": "prop;",
+ "value": "U+0221D"
},
{
- entity: "propto;",
- value: "U+0221D"
+ "entity": "propto;",
+ "value": "U+0221D"
},
{
- entity: "prsim;",
- value: "U+0227E"
+ "entity": "prsim;",
+ "value": "U+0227E"
},
{
- entity: "prurel;",
- value: "U+022B0"
+ "entity": "prurel;",
+ "value": "U+022B0"
},
{
- entity: "pscr;",
- value: "U+1D4C5"
+ "entity": "pscr;",
+ "value": "U+1D4C5"
},
{
- entity: "psi;",
- value: "U+003C8"
+ "entity": "psi;",
+ "value": "U+003C8"
},
{
- entity: "puncsp;",
- value: "U+02008"
+ "entity": "puncsp;",
+ "value": "U+02008"
},
{
- entity: "qfr;",
- value: "U+1D52E"
+ "entity": "qfr;",
+ "value": "U+1D52E"
},
{
- entity: "qint;",
- value: "U+02A0C"
+ "entity": "qint;",
+ "value": "U+02A0C"
},
{
- entity: "qopf;",
- value: "U+1D562"
+ "entity": "qopf;",
+ "value": "U+1D562"
},
{
- entity: "qprime;",
- value: "U+02057"
+ "entity": "qprime;",
+ "value": "U+02057"
},
{
- entity: "qscr;",
- value: "U+1D4C6"
+ "entity": "qscr;",
+ "value": "U+1D4C6"
},
{
- entity: "quaternions;",
- value: "U+0210D"
+ "entity": "quaternions;",
+ "value": "U+0210D"
},
{
- entity: "quatint;",
- value: "U+02A16"
+ "entity": "quatint;",
+ "value": "U+02A16"
},
{
- entity: "quest;",
- value: "U+0003F"
+ "entity": "quest;",
+ "value": "U+0003F"
},
{
- entity: "questeq;",
- value: "U+0225F"
+ "entity": "questeq;",
+ "value": "U+0225F"
},
{
- entity: "quot;",
- value: "U+00022"
+ "entity": "quot;",
+ "value": "U+00022"
},
{
- entity: "quot",
- value: "U+00022"
+ "entity": "quot",
+ "value": "U+00022"
},
{
- entity: "rAarr;",
- value: "U+021DB"
+ "entity": "rAarr;",
+ "value": "U+021DB"
},
{
- entity: "rArr;",
- value: "U+021D2"
+ "entity": "rArr;",
+ "value": "U+021D2"
},
{
- entity: "rAtail;",
- value: "U+0291C"
+ "entity": "rAtail;",
+ "value": "U+0291C"
},
{
- entity: "rBarr;",
- value: "U+0290F"
+ "entity": "rBarr;",
+ "value": "U+0290F"
},
{
- entity: "rHar;",
- value: "U+02964"
+ "entity": "rHar;",
+ "value": "U+02964"
},
{
- entity: "racute;",
- value: "U+00155"
+ "entity": "racute;",
+ "value": "U+00155"
},
{
- entity: "radic;",
- value: "U+0221A"
+ "entity": "radic;",
+ "value": "U+0221A"
},
{
- entity: "raemptyv;",
- value: "U+029B3"
+ "entity": "raemptyv;",
+ "value": "U+029B3"
},
{
- entity: "rang;",
- value: "U+027E9"
+ "entity": "rang;",
+ "value": "U+027E9"
},
{
- entity: "rangd;",
- value: "U+02992"
+ "entity": "rangd;",
+ "value": "U+02992"
},
{
- entity: "range;",
- value: "U+029A5"
+ "entity": "range;",
+ "value": "U+029A5"
},
{
- entity: "rangle;",
- value: "U+027E9"
+ "entity": "rangle;",
+ "value": "U+027E9"
},
{
- entity: "raquo;",
- value: "U+000BB"
+ "entity": "raquo;",
+ "value": "U+000BB"
},
{
- entity: "raquo",
- value: "U+000BB"
+ "entity": "raquo",
+ "value": "U+000BB"
},
{
- entity: "rarr;",
- value: "U+02192"
+ "entity": "rarr;",
+ "value": "U+02192"
},
{
- entity: "rarrap;",
- value: "U+02975"
+ "entity": "rarrap;",
+ "value": "U+02975"
},
{
- entity: "rarrb;",
- value: "U+021E5"
+ "entity": "rarrb;",
+ "value": "U+021E5"
},
{
- entity: "rarrbfs;",
- value: "U+02920"
+ "entity": "rarrbfs;",
+ "value": "U+02920"
},
{
- entity: "rarrc;",
- value: "U+02933"
+ "entity": "rarrc;",
+ "value": "U+02933"
},
{
- entity: "rarrfs;",
- value: "U+0291E"
+ "entity": "rarrfs;",
+ "value": "U+0291E"
},
{
- entity: "rarrhk;",
- value: "U+021AA"
+ "entity": "rarrhk;",
+ "value": "U+021AA"
},
{
- entity: "rarrlp;",
- value: "U+021AC"
+ "entity": "rarrlp;",
+ "value": "U+021AC"
},
{
- entity: "rarrpl;",
- value: "U+02945"
+ "entity": "rarrpl;",
+ "value": "U+02945"
},
{
- entity: "rarrsim;",
- value: "U+02974"
+ "entity": "rarrsim;",
+ "value": "U+02974"
},
{
- entity: "rarrtl;",
- value: "U+021A3"
+ "entity": "rarrtl;",
+ "value": "U+021A3"
},
{
- entity: "rarrw;",
- value: "U+0219D"
+ "entity": "rarrw;",
+ "value": "U+0219D"
},
{
- entity: "ratail;",
- value: "U+0291A"
+ "entity": "ratail;",
+ "value": "U+0291A"
},
{
- entity: "ratio;",
- value: "U+02236"
+ "entity": "ratio;",
+ "value": "U+02236"
},
{
- entity: "rationals;",
- value: "U+0211A"
+ "entity": "rationals;",
+ "value": "U+0211A"
},
{
- entity: "rbarr;",
- value: "U+0290D"
+ "entity": "rbarr;",
+ "value": "U+0290D"
},
{
- entity: "rbbrk;",
- value: "U+02773"
+ "entity": "rbbrk;",
+ "value": "U+02773"
},
{
- entity: "rbrace;",
- value: "U+0007D"
+ "entity": "rbrace;",
+ "value": "U+0007D"
},
{
- entity: "rbrack;",
- value: "U+0005D"
+ "entity": "rbrack;",
+ "value": "U+0005D"
},
{
- entity: "rbrke;",
- value: "U+0298C"
+ "entity": "rbrke;",
+ "value": "U+0298C"
},
{
- entity: "rbrksld;",
- value: "U+0298E"
+ "entity": "rbrksld;",
+ "value": "U+0298E"
},
{
- entity: "rbrkslu;",
- value: "U+02990"
+ "entity": "rbrkslu;",
+ "value": "U+02990"
},
{
- entity: "rcaron;",
- value: "U+00159"
+ "entity": "rcaron;",
+ "value": "U+00159"
},
{
- entity: "rcedil;",
- value: "U+00157"
+ "entity": "rcedil;",
+ "value": "U+00157"
},
{
- entity: "rceil;",
- value: "U+02309"
+ "entity": "rceil;",
+ "value": "U+02309"
},
{
- entity: "rcub;",
- value: "U+0007D"
+ "entity": "rcub;",
+ "value": "U+0007D"
},
{
- entity: "rcy;",
- value: "U+00440"
+ "entity": "rcy;",
+ "value": "U+00440"
},
{
- entity: "rdca;",
- value: "U+02937"
+ "entity": "rdca;",
+ "value": "U+02937"
},
{
- entity: "rdldhar;",
- value: "U+02969"
+ "entity": "rdldhar;",
+ "value": "U+02969"
},
{
- entity: "rdquo;",
- value: "U+0201D"
+ "entity": "rdquo;",
+ "value": "U+0201D"
},
{
- entity: "rdquor;",
- value: "U+0201D"
+ "entity": "rdquor;",
+ "value": "U+0201D"
},
{
- entity: "rdsh;",
- value: "U+021B3"
+ "entity": "rdsh;",
+ "value": "U+021B3"
},
{
- entity: "real;",
- value: "U+0211C"
+ "entity": "real;",
+ "value": "U+0211C"
},
{
- entity: "realine;",
- value: "U+0211B"
+ "entity": "realine;",
+ "value": "U+0211B"
},
{
- entity: "realpart;",
- value: "U+0211C"
+ "entity": "realpart;",
+ "value": "U+0211C"
},
{
- entity: "reals;",
- value: "U+0211D"
+ "entity": "reals;",
+ "value": "U+0211D"
},
{
- entity: "rect;",
- value: "U+025AD"
+ "entity": "rect;",
+ "value": "U+025AD"
},
{
- entity: "reg;",
- value: "U+000AE"
+ "entity": "reg;",
+ "value": "U+000AE"
},
{
- entity: "reg",
- value: "U+000AE"
+ "entity": "reg",
+ "value": "U+000AE"
},
{
- entity: "rfisht;",
- value: "U+0297D"
+ "entity": "rfisht;",
+ "value": "U+0297D"
},
{
- entity: "rfloor;",
- value: "U+0230B"
+ "entity": "rfloor;",
+ "value": "U+0230B"
},
{
- entity: "rfr;",
- value: "U+1D52F"
+ "entity": "rfr;",
+ "value": "U+1D52F"
},
{
- entity: "rhard;",
- value: "U+021C1"
+ "entity": "rhard;",
+ "value": "U+021C1"
},
{
- entity: "rharu;",
- value: "U+021C0"
+ "entity": "rharu;",
+ "value": "U+021C0"
},
{
- entity: "rharul;",
- value: "U+0296C"
+ "entity": "rharul;",
+ "value": "U+0296C"
},
{
- entity: "rho;",
- value: "U+003C1"
+ "entity": "rho;",
+ "value": "U+003C1"
},
{
- entity: "rhov;",
- value: "U+003F1"
+ "entity": "rhov;",
+ "value": "U+003F1"
},
{
- entity: "rightarrow;",
- value: "U+02192"
+ "entity": "rightarrow;",
+ "value": "U+02192"
},
{
- entity: "rightarrowtail;",
- value: "U+021A3"
+ "entity": "rightarrowtail;",
+ "value": "U+021A3"
},
{
- entity: "rightharpoondown;",
- value: "U+021C1"
+ "entity": "rightharpoondown;",
+ "value": "U+021C1"
},
{
- entity: "rightharpoonup;",
- value: "U+021C0"
+ "entity": "rightharpoonup;",
+ "value": "U+021C0"
},
{
- entity: "rightleftarrows;",
- value: "U+021C4"
+ "entity": "rightleftarrows;",
+ "value": "U+021C4"
},
{
- entity: "rightleftharpoons;",
- value: "U+021CC"
+ "entity": "rightleftharpoons;",
+ "value": "U+021CC"
},
{
- entity: "rightrightarrows;",
- value: "U+021C9"
+ "entity": "rightrightarrows;",
+ "value": "U+021C9"
},
{
- entity: "rightsquigarrow;",
- value: "U+0219D"
+ "entity": "rightsquigarrow;",
+ "value": "U+0219D"
},
{
- entity: "rightthreetimes;",
- value: "U+022CC"
+ "entity": "rightthreetimes;",
+ "value": "U+022CC"
},
{
- entity: "ring;",
- value: "U+002DA"
+ "entity": "ring;",
+ "value": "U+002DA"
},
{
- entity: "risingdotseq;",
- value: "U+02253"
+ "entity": "risingdotseq;",
+ "value": "U+02253"
},
{
- entity: "rlarr;",
- value: "U+021C4"
+ "entity": "rlarr;",
+ "value": "U+021C4"
},
{
- entity: "rlhar;",
- value: "U+021CC"
+ "entity": "rlhar;",
+ "value": "U+021CC"
},
{
- entity: "rlm;",
- value: "U+0200F"
+ "entity": "rlm;",
+ "value": "U+0200F"
},
{
- entity: "rmoust;",
- value: "U+023B1"
+ "entity": "rmoust;",
+ "value": "U+023B1"
},
{
- entity: "rmoustache;",
- value: "U+023B1"
+ "entity": "rmoustache;",
+ "value": "U+023B1"
},
{
- entity: "rnmid;",
- value: "U+02AEE"
+ "entity": "rnmid;",
+ "value": "U+02AEE"
},
{
- entity: "roang;",
- value: "U+027ED"
+ "entity": "roang;",
+ "value": "U+027ED"
},
{
- entity: "roarr;",
- value: "U+021FE"
+ "entity": "roarr;",
+ "value": "U+021FE"
},
{
- entity: "robrk;",
- value: "U+027E7"
+ "entity": "robrk;",
+ "value": "U+027E7"
},
{
- entity: "ropar;",
- value: "U+02986"
+ "entity": "ropar;",
+ "value": "U+02986"
},
{
- entity: "ropf;",
- value: "U+1D563"
+ "entity": "ropf;",
+ "value": "U+1D563"
},
{
- entity: "roplus;",
- value: "U+02A2E"
+ "entity": "roplus;",
+ "value": "U+02A2E"
},
{
- entity: "rotimes;",
- value: "U+02A35"
+ "entity": "rotimes;",
+ "value": "U+02A35"
},
{
- entity: "rpar;",
- value: "U+00029"
+ "entity": "rpar;",
+ "value": "U+00029"
},
{
- entity: "rpargt;",
- value: "U+02994"
+ "entity": "rpargt;",
+ "value": "U+02994"
},
{
- entity: "rppolint;",
- value: "U+02A12"
+ "entity": "rppolint;",
+ "value": "U+02A12"
},
{
- entity: "rrarr;",
- value: "U+021C9"
+ "entity": "rrarr;",
+ "value": "U+021C9"
},
{
- entity: "rsaquo;",
- value: "U+0203A"
+ "entity": "rsaquo;",
+ "value": "U+0203A"
},
{
- entity: "rscr;",
- value: "U+1D4C7"
+ "entity": "rscr;",
+ "value": "U+1D4C7"
},
{
- entity: "rsh;",
- value: "U+021B1"
+ "entity": "rsh;",
+ "value": "U+021B1"
},
{
- entity: "rsqb;",
- value: "U+0005D"
+ "entity": "rsqb;",
+ "value": "U+0005D"
},
{
- entity: "rsquo;",
- value: "U+02019"
+ "entity": "rsquo;",
+ "value": "U+02019"
},
{
- entity: "rsquor;",
- value: "U+02019"
+ "entity": "rsquor;",
+ "value": "U+02019"
},
{
- entity: "rthree;",
- value: "U+022CC"
+ "entity": "rthree;",
+ "value": "U+022CC"
},
{
- entity: "rtimes;",
- value: "U+022CA"
+ "entity": "rtimes;",
+ "value": "U+022CA"
},
{
- entity: "rtri;",
- value: "U+025B9"
+ "entity": "rtri;",
+ "value": "U+025B9"
},
{
- entity: "rtrie;",
- value: "U+022B5"
+ "entity": "rtrie;",
+ "value": "U+022B5"
},
{
- entity: "rtrif;",
- value: "U+025B8"
+ "entity": "rtrif;",
+ "value": "U+025B8"
},
{
- entity: "rtriltri;",
- value: "U+029CE"
+ "entity": "rtriltri;",
+ "value": "U+029CE"
},
{
- entity: "ruluhar;",
- value: "U+02968"
+ "entity": "ruluhar;",
+ "value": "U+02968"
},
{
- entity: "rx;",
- value: "U+0211E"
+ "entity": "rx;",
+ "value": "U+0211E"
},
{
- entity: "sacute;",
- value: "U+0015B"
+ "entity": "sacute;",
+ "value": "U+0015B"
},
{
- entity: "sbquo;",
- value: "U+0201A"
+ "entity": "sbquo;",
+ "value": "U+0201A"
},
{
- entity: "sc;",
- value: "U+0227B"
+ "entity": "sc;",
+ "value": "U+0227B"
},
{
- entity: "scE;",
- value: "U+02AB4"
+ "entity": "scE;",
+ "value": "U+02AB4"
},
{
- entity: "scap;",
- value: "U+02AB8"
+ "entity": "scap;",
+ "value": "U+02AB8"
},
{
- entity: "scaron;",
- value: "U+00161"
+ "entity": "scaron;",
+ "value": "U+00161"
},
{
- entity: "sccue;",
- value: "U+0227D"
+ "entity": "sccue;",
+ "value": "U+0227D"
},
{
- entity: "sce;",
- value: "U+02AB0"
+ "entity": "sce;",
+ "value": "U+02AB0"
},
{
- entity: "scedil;",
- value: "U+0015F"
+ "entity": "scedil;",
+ "value": "U+0015F"
},
{
- entity: "scirc;",
- value: "U+0015D"
+ "entity": "scirc;",
+ "value": "U+0015D"
},
{
- entity: "scnE;",
- value: "U+02AB6"
+ "entity": "scnE;",
+ "value": "U+02AB6"
},
{
- entity: "scnap;",
- value: "U+02ABA"
+ "entity": "scnap;",
+ "value": "U+02ABA"
},
{
- entity: "scnsim;",
- value: "U+022E9"
+ "entity": "scnsim;",
+ "value": "U+022E9"
},
{
- entity: "scpolint;",
- value: "U+02A13"
+ "entity": "scpolint;",
+ "value": "U+02A13"
},
{
- entity: "scsim;",
- value: "U+0227F"
+ "entity": "scsim;",
+ "value": "U+0227F"
},
{
- entity: "scy;",
- value: "U+00441"
+ "entity": "scy;",
+ "value": "U+00441"
},
{
- entity: "sdot;",
- value: "U+022C5"
+ "entity": "sdot;",
+ "value": "U+022C5"
},
{
- entity: "sdotb;",
- value: "U+022A1"
+ "entity": "sdotb;",
+ "value": "U+022A1"
},
{
- entity: "sdote;",
- value: "U+02A66"
+ "entity": "sdote;",
+ "value": "U+02A66"
},
{
- entity: "seArr;",
- value: "U+021D8"
+ "entity": "seArr;",
+ "value": "U+021D8"
},
{
- entity: "searhk;",
- value: "U+02925"
+ "entity": "searhk;",
+ "value": "U+02925"
},
{
- entity: "searr;",
- value: "U+02198"
+ "entity": "searr;",
+ "value": "U+02198"
},
{
- entity: "searrow;",
- value: "U+02198"
+ "entity": "searrow;",
+ "value": "U+02198"
},
{
- entity: "sect;",
- value: "U+000A7"
+ "entity": "sect;",
+ "value": "U+000A7"
},
{
- entity: "sect",
- value: "U+000A7"
+ "entity": "sect",
+ "value": "U+000A7"
},
{
- entity: "semi;",
- value: "U+0003B"
+ "entity": "semi;",
+ "value": "U+0003B"
},
{
- entity: "seswar;",
- value: "U+02929"
+ "entity": "seswar;",
+ "value": "U+02929"
},
{
- entity: "setminus;",
- value: "U+02216"
+ "entity": "setminus;",
+ "value": "U+02216"
},
{
- entity: "setmn;",
- value: "U+02216"
+ "entity": "setmn;",
+ "value": "U+02216"
},
{
- entity: "sext;",
- value: "U+02736"
+ "entity": "sext;",
+ "value": "U+02736"
},
{
- entity: "sfr;",
- value: "U+1D530"
+ "entity": "sfr;",
+ "value": "U+1D530"
},
{
- entity: "sfrown;",
- value: "U+02322"
+ "entity": "sfrown;",
+ "value": "U+02322"
},
{
- entity: "sharp;",
- value: "U+0266F"
+ "entity": "sharp;",
+ "value": "U+0266F"
},
{
- entity: "shchcy;",
- value: "U+00449"
+ "entity": "shchcy;",
+ "value": "U+00449"
},
{
- entity: "shcy;",
- value: "U+00448"
+ "entity": "shcy;",
+ "value": "U+00448"
},
{
- entity: "shortmid;",
- value: "U+02223"
+ "entity": "shortmid;",
+ "value": "U+02223"
},
{
- entity: "shortparallel;",
- value: "U+02225"
+ "entity": "shortparallel;",
+ "value": "U+02225"
},
{
- entity: "shy;",
- value: "U+000AD "
+ "entity": "shy;",
+ "value": "U+000AD "
},
{
- entity: "shy",
- value: "U+000AD "
+ "entity": "shy",
+ "value": "U+000AD "
},
{
- entity: "sigma;",
- value: "U+003C3"
+ "entity": "sigma;",
+ "value": "U+003C3"
},
{
- entity: "sigmaf;",
- value: "U+003C2"
+ "entity": "sigmaf;",
+ "value": "U+003C2"
},
{
- entity: "sigmav;",
- value: "U+003C2"
+ "entity": "sigmav;",
+ "value": "U+003C2"
},
{
- entity: "sim;",
- value: "U+0223C"
+ "entity": "sim;",
+ "value": "U+0223C"
},
{
- entity: "simdot;",
- value: "U+02A6A"
+ "entity": "simdot;",
+ "value": "U+02A6A"
},
{
- entity: "sime;",
- value: "U+02243"
+ "entity": "sime;",
+ "value": "U+02243"
},
{
- entity: "simeq;",
- value: "U+02243"
+ "entity": "simeq;",
+ "value": "U+02243"
},
{
- entity: "simg;",
- value: "U+02A9E"
+ "entity": "simg;",
+ "value": "U+02A9E"
},
{
- entity: "simgE;",
- value: "U+02AA0"
+ "entity": "simgE;",
+ "value": "U+02AA0"
},
{
- entity: "siml;",
- value: "U+02A9D"
+ "entity": "siml;",
+ "value": "U+02A9D"
},
{
- entity: "simlE;",
- value: "U+02A9F"
+ "entity": "simlE;",
+ "value": "U+02A9F"
},
{
- entity: "simne;",
- value: "U+02246"
+ "entity": "simne;",
+ "value": "U+02246"
},
{
- entity: "simplus;",
- value: "U+02A24"
+ "entity": "simplus;",
+ "value": "U+02A24"
},
{
- entity: "simrarr;",
- value: "U+02972"
+ "entity": "simrarr;",
+ "value": "U+02972"
},
{
- entity: "slarr;",
- value: "U+02190"
+ "entity": "slarr;",
+ "value": "U+02190"
},
{
- entity: "smallsetminus;",
- value: "U+02216"
+ "entity": "smallsetminus;",
+ "value": "U+02216"
},
{
- entity: "smashp;",
- value: "U+02A33"
+ "entity": "smashp;",
+ "value": "U+02A33"
},
{
- entity: "smeparsl;",
- value: "U+029E4"
+ "entity": "smeparsl;",
+ "value": "U+029E4"
},
{
- entity: "smid;",
- value: "U+02223"
+ "entity": "smid;",
+ "value": "U+02223"
},
{
- entity: "smile;",
- value: "U+02323"
+ "entity": "smile;",
+ "value": "U+02323"
},
{
- entity: "smt;",
- value: "U+02AAA"
+ "entity": "smt;",
+ "value": "U+02AAA"
},
{
- entity: "smte;",
- value: "U+02AAC"
+ "entity": "smte;",
+ "value": "U+02AAC"
},
{
- entity: "softcy;",
- value: "U+0044C"
+ "entity": "softcy;",
+ "value": "U+0044C"
},
{
- entity: "sol;",
- value: "U+0002F"
+ "entity": "sol;",
+ "value": "U+0002F"
},
{
- entity: "solb;",
- value: "U+029C4"
+ "entity": "solb;",
+ "value": "U+029C4"
},
{
- entity: "solbar;",
- value: "U+0233F"
+ "entity": "solbar;",
+ "value": "U+0233F"
},
{
- entity: "sopf;",
- value: "U+1D564"
+ "entity": "sopf;",
+ "value": "U+1D564"
},
{
- entity: "spades;",
- value: "U+02660"
+ "entity": "spades;",
+ "value": "U+02660"
},
{
- entity: "spadesuit;",
- value: "U+02660"
+ "entity": "spadesuit;",
+ "value": "U+02660"
},
{
- entity: "spar;",
- value: "U+02225"
+ "entity": "spar;",
+ "value": "U+02225"
},
{
- entity: "sqcap;",
- value: "U+02293"
+ "entity": "sqcap;",
+ "value": "U+02293"
},
{
- entity: "sqcup;",
- value: "U+02294"
+ "entity": "sqcup;",
+ "value": "U+02294"
},
{
- entity: "sqsub;",
- value: "U+0228F"
+ "entity": "sqsub;",
+ "value": "U+0228F"
},
{
- entity: "sqsube;",
- value: "U+02291"
+ "entity": "sqsube;",
+ "value": "U+02291"
},
{
- entity: "sqsubset;",
- value: "U+0228F"
+ "entity": "sqsubset;",
+ "value": "U+0228F"
},
{
- entity: "sqsubseteq;",
- value: "U+02291"
+ "entity": "sqsubseteq;",
+ "value": "U+02291"
},
{
- entity: "sqsup;",
- value: "U+02290"
+ "entity": "sqsup;",
+ "value": "U+02290"
},
{
- entity: "sqsupe;",
- value: "U+02292"
+ "entity": "sqsupe;",
+ "value": "U+02292"
},
{
- entity: "sqsupset;",
- value: "U+02290"
+ "entity": "sqsupset;",
+ "value": "U+02290"
},
{
- entity: "sqsupseteq;",
- value: "U+02292"
+ "entity": "sqsupseteq;",
+ "value": "U+02292"
},
{
- entity: "squ;",
- value: "U+025A1"
+ "entity": "squ;",
+ "value": "U+025A1"
},
{
- entity: "square;",
- value: "U+025A1"
+ "entity": "square;",
+ "value": "U+025A1"
},
{
- entity: "squarf;",
- value: "U+025AA"
+ "entity": "squarf;",
+ "value": "U+025AA"
},
{
- entity: "squf;",
- value: "U+025AA"
+ "entity": "squf;",
+ "value": "U+025AA"
},
{
- entity: "srarr;",
- value: "U+02192"
+ "entity": "srarr;",
+ "value": "U+02192"
},
{
- entity: "sscr;",
- value: "U+1D4C8"
+ "entity": "sscr;",
+ "value": "U+1D4C8"
},
{
- entity: "ssetmn;",
- value: "U+02216"
+ "entity": "ssetmn;",
+ "value": "U+02216"
},
{
- entity: "ssmile;",
- value: "U+02323"
+ "entity": "ssmile;",
+ "value": "U+02323"
},
{
- entity: "sstarf;",
- value: "U+022C6"
+ "entity": "sstarf;",
+ "value": "U+022C6"
},
{
- entity: "star;",
- value: "U+02606"
+ "entity": "star;",
+ "value": "U+02606"
},
{
- entity: "starf;",
- value: "U+02605"
+ "entity": "starf;",
+ "value": "U+02605"
},
{
- entity: "straightepsilon;",
- value: "U+003F5"
+ "entity": "straightepsilon;",
+ "value": "U+003F5"
},
{
- entity: "straightphi;",
- value: "U+003D5"
+ "entity": "straightphi;",
+ "value": "U+003D5"
},
{
- entity: "strns;",
- value: "U+000AF"
+ "entity": "strns;",
+ "value": "U+000AF"
},
{
- entity: "sub;",
- value: "U+02282"
+ "entity": "sub;",
+ "value": "U+02282"
},
{
- entity: "subE;",
- value: "U+02AC5"
+ "entity": "subE;",
+ "value": "U+02AC5"
},
{
- entity: "subdot;",
- value: "U+02ABD"
+ "entity": "subdot;",
+ "value": "U+02ABD"
},
{
- entity: "sube;",
- value: "U+02286"
+ "entity": "sube;",
+ "value": "U+02286"
},
{
- entity: "subedot;",
- value: "U+02AC3"
+ "entity": "subedot;",
+ "value": "U+02AC3"
},
{
- entity: "submult;",
- value: "U+02AC1"
+ "entity": "submult;",
+ "value": "U+02AC1"
},
{
- entity: "subnE;",
- value: "U+02ACB"
+ "entity": "subnE;",
+ "value": "U+02ACB"
},
{
- entity: "subne;",
- value: "U+0228A"
+ "entity": "subne;",
+ "value": "U+0228A"
},
{
- entity: "subplus;",
- value: "U+02ABF"
+ "entity": "subplus;",
+ "value": "U+02ABF"
},
{
- entity: "subrarr;",
- value: "U+02979"
+ "entity": "subrarr;",
+ "value": "U+02979"
},
{
- entity: "subset;",
- value: "U+02282"
+ "entity": "subset;",
+ "value": "U+02282"
},
{
- entity: "subseteq;",
- value: "U+02286"
+ "entity": "subseteq;",
+ "value": "U+02286"
},
{
- entity: "subseteqq;",
- value: "U+02AC5"
+ "entity": "subseteqq;",
+ "value": "U+02AC5"
},
{
- entity: "subsetneq;",
- value: "U+0228A"
+ "entity": "subsetneq;",
+ "value": "U+0228A"
},
{
- entity: "subsetneqq;",
- value: "U+02ACB"
+ "entity": "subsetneqq;",
+ "value": "U+02ACB"
},
{
- entity: "subsim;",
- value: "U+02AC7"
+ "entity": "subsim;",
+ "value": "U+02AC7"
},
{
- entity: "subsub;",
- value: "U+02AD5"
+ "entity": "subsub;",
+ "value": "U+02AD5"
},
{
- entity: "subsup;",
- value: "U+02AD3"
+ "entity": "subsup;",
+ "value": "U+02AD3"
},
{
- entity: "succ;",
- value: "U+0227B"
+ "entity": "succ;",
+ "value": "U+0227B"
},
{
- entity: "succapprox;",
- value: "U+02AB8"
+ "entity": "succapprox;",
+ "value": "U+02AB8"
},
{
- entity: "succcurlyeq;",
- value: "U+0227D"
+ "entity": "succcurlyeq;",
+ "value": "U+0227D"
},
{
- entity: "succeq;",
- value: "U+02AB0"
+ "entity": "succeq;",
+ "value": "U+02AB0"
},
{
- entity: "succnapprox;",
- value: "U+02ABA"
+ "entity": "succnapprox;",
+ "value": "U+02ABA"
},
{
- entity: "succneqq;",
- value: "U+02AB6"
+ "entity": "succneqq;",
+ "value": "U+02AB6"
},
{
- entity: "succnsim;",
- value: "U+022E9"
+ "entity": "succnsim;",
+ "value": "U+022E9"
},
{
- entity: "succsim;",
- value: "U+0227F"
+ "entity": "succsim;",
+ "value": "U+0227F"
},
{
- entity: "sum;",
- value: "U+02211"
+ "entity": "sum;",
+ "value": "U+02211"
},
{
- entity: "sung;",
- value: "U+0266A"
+ "entity": "sung;",
+ "value": "U+0266A"
},
{
- entity: "sup1;",
- value: "U+000B9"
+ "entity": "sup1;",
+ "value": "U+000B9"
},
{
- entity: "sup1",
- value: "U+000B9"
+ "entity": "sup1",
+ "value": "U+000B9"
},
{
- entity: "sup2;",
- value: "U+000B2"
+ "entity": "sup2;",
+ "value": "U+000B2"
},
{
- entity: "sup2",
- value: "U+000B2"
+ "entity": "sup2",
+ "value": "U+000B2"
},
{
- entity: "sup3;",
- value: "U+000B3"
+ "entity": "sup3;",
+ "value": "U+000B3"
},
{
- entity: "sup3",
- value: "U+000B3"
+ "entity": "sup3",
+ "value": "U+000B3"
},
{
- entity: "sup;",
- value: "U+02283"
+ "entity": "sup;",
+ "value": "U+02283"
},
{
- entity: "supE;",
- value: "U+02AC6"
+ "entity": "supE;",
+ "value": "U+02AC6"
},
{
- entity: "supdot;",
- value: "U+02ABE"
+ "entity": "supdot;",
+ "value": "U+02ABE"
},
{
- entity: "supdsub;",
- value: "U+02AD8"
+ "entity": "supdsub;",
+ "value": "U+02AD8"
},
{
- entity: "supe;",
- value: "U+02287"
+ "entity": "supe;",
+ "value": "U+02287"
},
{
- entity: "supedot;",
- value: "U+02AC4"
+ "entity": "supedot;",
+ "value": "U+02AC4"
},
{
- entity: "suphsol;",
- value: "U+027C9"
+ "entity": "suphsol;",
+ "value": "U+027C9"
},
{
- entity: "suphsub;",
- value: "U+02AD7"
+ "entity": "suphsub;",
+ "value": "U+02AD7"
},
{
- entity: "suplarr;",
- value: "U+0297B"
+ "entity": "suplarr;",
+ "value": "U+0297B"
},
{
- entity: "supmult;",
- value: "U+02AC2"
+ "entity": "supmult;",
+ "value": "U+02AC2"
},
{
- entity: "supnE;",
- value: "U+02ACC"
+ "entity": "supnE;",
+ "value": "U+02ACC"
},
{
- entity: "supne;",
- value: "U+0228B"
+ "entity": "supne;",
+ "value": "U+0228B"
},
{
- entity: "supplus;",
- value: "U+02AC0"
+ "entity": "supplus;",
+ "value": "U+02AC0"
},
{
- entity: "supset;",
- value: "U+02283"
+ "entity": "supset;",
+ "value": "U+02283"
},
{
- entity: "supseteq;",
- value: "U+02287"
+ "entity": "supseteq;",
+ "value": "U+02287"
},
{
- entity: "supseteqq;",
- value: "U+02AC6"
+ "entity": "supseteqq;",
+ "value": "U+02AC6"
},
{
- entity: "supsetneq;",
- value: "U+0228B"
+ "entity": "supsetneq;",
+ "value": "U+0228B"
},
{
- entity: "supsetneqq;",
- value: "U+02ACC"
+ "entity": "supsetneqq;",
+ "value": "U+02ACC"
},
{
- entity: "supsim;",
- value: "U+02AC8"
+ "entity": "supsim;",
+ "value": "U+02AC8"
},
{
- entity: "supsub;",
- value: "U+02AD4"
+ "entity": "supsub;",
+ "value": "U+02AD4"
},
{
- entity: "supsup;",
- value: "U+02AD6"
+ "entity": "supsup;",
+ "value": "U+02AD6"
},
{
- entity: "swArr;",
- value: "U+021D9"
+ "entity": "swArr;",
+ "value": "U+021D9"
},
{
- entity: "swarhk;",
- value: "U+02926"
+ "entity": "swarhk;",
+ "value": "U+02926"
},
{
- entity: "swarr;",
- value: "U+02199"
+ "entity": "swarr;",
+ "value": "U+02199"
},
{
- entity: "swarrow;",
- value: "U+02199"
+ "entity": "swarrow;",
+ "value": "U+02199"
},
{
- entity: "swnwar;",
- value: "U+0292A"
+ "entity": "swnwar;",
+ "value": "U+0292A"
},
{
- entity: "szlig;",
- value: "U+000DF"
+ "entity": "szlig;",
+ "value": "U+000DF"
},
{
- entity: "szlig",
- value: "U+000DF"
+ "entity": "szlig",
+ "value": "U+000DF"
},
{
- entity: "target;",
- value: "U+02316"
+ "entity": "target;",
+ "value": "U+02316"
},
{
- entity: "tau;",
- value: "U+003C4"
+ "entity": "tau;",
+ "value": "U+003C4"
},
{
- entity: "tbrk;",
- value: "U+023B4"
+ "entity": "tbrk;",
+ "value": "U+023B4"
},
{
- entity: "tcaron;",
- value: "U+00165"
+ "entity": "tcaron;",
+ "value": "U+00165"
},
{
- entity: "tcedil;",
- value: "U+00163"
+ "entity": "tcedil;",
+ "value": "U+00163"
},
{
- entity: "tcy;",
- value: "U+00442"
+ "entity": "tcy;",
+ "value": "U+00442"
},
{
- entity: "tdot;",
- value: "U+020DB"
+ "entity": "tdot;",
+ "value": "U+020DB"
},
{
- entity: "telrec;",
- value: "U+02315"
+ "entity": "telrec;",
+ "value": "U+02315"
},
{
- entity: "tfr;",
- value: "U+1D531"
+ "entity": "tfr;",
+ "value": "U+1D531"
},
{
- entity: "there4;",
- value: "U+02234"
+ "entity": "there4;",
+ "value": "U+02234"
},
{
- entity: "therefore;",
- value: "U+02234"
+ "entity": "therefore;",
+ "value": "U+02234"
},
{
- entity: "theta;",
- value: "U+003B8"
+ "entity": "theta;",
+ "value": "U+003B8"
},
{
- entity: "thetasym;",
- value: "U+003D1"
+ "entity": "thetasym;",
+ "value": "U+003D1"
},
{
- entity: "thetav;",
- value: "U+003D1"
+ "entity": "thetav;",
+ "value": "U+003D1"
},
{
- entity: "thickapprox;",
- value: "U+02248"
+ "entity": "thickapprox;",
+ "value": "U+02248"
},
{
- entity: "thicksim;",
- value: "U+0223C"
+ "entity": "thicksim;",
+ "value": "U+0223C"
},
{
- entity: "thinsp;",
- value: "U+02009"
+ "entity": "thinsp;",
+ "value": "U+02009"
},
{
- entity: "thkap;",
- value: "U+02248"
+ "entity": "thkap;",
+ "value": "U+02248"
},
{
- entity: "thksim;",
- value: "U+0223C"
+ "entity": "thksim;",
+ "value": "U+0223C"
},
{
- entity: "thorn;",
- value: "U+000FE"
+ "entity": "thorn;",
+ "value": "U+000FE"
},
{
- entity: "thorn",
- value: "U+000FE"
+ "entity": "thorn",
+ "value": "U+000FE"
},
{
- entity: "tilde;",
- value: "U+002DC"
+ "entity": "tilde;",
+ "value": "U+002DC"
},
{
- entity: "times;",
- value: "U+000D7"
+ "entity": "times;",
+ "value": "U+000D7"
},
{
- entity: "times",
- value: "U+000D7"
+ "entity": "times",
+ "value": "U+000D7"
},
{
- entity: "timesb;",
- value: "U+022A0"
+ "entity": "timesb;",
+ "value": "U+022A0"
},
{
- entity: "timesbar;",
- value: "U+02A31"
+ "entity": "timesbar;",
+ "value": "U+02A31"
},
{
- entity: "timesd;",
- value: "U+02A30"
+ "entity": "timesd;",
+ "value": "U+02A30"
},
{
- entity: "tint;",
- value: "U+0222D"
+ "entity": "tint;",
+ "value": "U+0222D"
},
{
- entity: "toea;",
- value: "U+02928"
+ "entity": "toea;",
+ "value": "U+02928"
},
{
- entity: "top;",
- value: "U+022A4"
+ "entity": "top;",
+ "value": "U+022A4"
},
{
- entity: "topbot;",
- value: "U+02336"
+ "entity": "topbot;",
+ "value": "U+02336"
},
{
- entity: "topcir;",
- value: "U+02AF1"
+ "entity": "topcir;",
+ "value": "U+02AF1"
},
{
- entity: "topf;",
- value: "U+1D565"
+ "entity": "topf;",
+ "value": "U+1D565"
},
{
- entity: "topfork;",
- value: "U+02ADA"
+ "entity": "topfork;",
+ "value": "U+02ADA"
},
{
- entity: "tosa;",
- value: "U+02929"
+ "entity": "tosa;",
+ "value": "U+02929"
},
{
- entity: "tprime;",
- value: "U+02034"
+ "entity": "tprime;",
+ "value": "U+02034"
},
{
- entity: "trade;",
- value: "U+02122"
+ "entity": "trade;",
+ "value": "U+02122"
},
{
- entity: "triangle;",
- value: "U+025B5"
+ "entity": "triangle;",
+ "value": "U+025B5"
},
{
- entity: "triangledown;",
- value: "U+025BF"
+ "entity": "triangledown;",
+ "value": "U+025BF"
},
{
- entity: "triangleleft;",
- value: "U+025C3"
+ "entity": "triangleleft;",
+ "value": "U+025C3"
},
{
- entity: "trianglelefteq;",
- value: "U+022B4"
+ "entity": "trianglelefteq;",
+ "value": "U+022B4"
},
{
- entity: "triangleq;",
- value: "U+0225C"
+ "entity": "triangleq;",
+ "value": "U+0225C"
},
{
- entity: "triangleright;",
- value: "U+025B9"
+ "entity": "triangleright;",
+ "value": "U+025B9"
},
{
- entity: "trianglerighteq;",
- value: "U+022B5"
+ "entity": "trianglerighteq;",
+ "value": "U+022B5"
},
{
- entity: "tridot;",
- value: "U+025EC"
+ "entity": "tridot;",
+ "value": "U+025EC"
},
{
- entity: "trie;",
- value: "U+0225C"
+ "entity": "trie;",
+ "value": "U+0225C"
},
{
- entity: "triminus;",
- value: "U+02A3A"
+ "entity": "triminus;",
+ "value": "U+02A3A"
},
{
- entity: "triplus;",
- value: "U+02A39"
+ "entity": "triplus;",
+ "value": "U+02A39"
},
{
- entity: "trisb;",
- value: "U+029CD"
+ "entity": "trisb;",
+ "value": "U+029CD"
},
{
- entity: "tritime;",
- value: "U+02A3B"
+ "entity": "tritime;",
+ "value": "U+02A3B"
},
{
- entity: "trpezium;",
- value: "U+023E2"
+ "entity": "trpezium;",
+ "value": "U+023E2"
},
{
- entity: "tscr;",
- value: "U+1D4C9"
+ "entity": "tscr;",
+ "value": "U+1D4C9"
},
{
- entity: "tscy;",
- value: "U+00446"
+ "entity": "tscy;",
+ "value": "U+00446"
},
{
- entity: "tshcy;",
- value: "U+0045B"
+ "entity": "tshcy;",
+ "value": "U+0045B"
},
{
- entity: "tstrok;",
- value: "U+00167"
+ "entity": "tstrok;",
+ "value": "U+00167"
},
{
- entity: "twixt;",
- value: "U+0226C"
+ "entity": "twixt;",
+ "value": "U+0226C"
},
{
- entity: "twoheadleftarrow;",
- value: "U+0219E"
+ "entity": "twoheadleftarrow;",
+ "value": "U+0219E"
},
{
- entity: "twoheadrightarrow;",
- value: "U+021A0"
+ "entity": "twoheadrightarrow;",
+ "value": "U+021A0"
},
{
- entity: "uArr;",
- value: "U+021D1"
+ "entity": "uArr;",
+ "value": "U+021D1"
},
{
- entity: "uHar;",
- value: "U+02963"
+ "entity": "uHar;",
+ "value": "U+02963"
},
{
- entity: "uacute;",
- value: "U+000FA"
+ "entity": "uacute;",
+ "value": "U+000FA"
},
{
- entity: "uacute",
- value: "U+000FA"
+ "entity": "uacute",
+ "value": "U+000FA"
},
{
- entity: "uarr;",
- value: "U+02191"
+ "entity": "uarr;",
+ "value": "U+02191"
},
{
- entity: "ubrcy;",
- value: "U+0045E"
+ "entity": "ubrcy;",
+ "value": "U+0045E"
},
{
- entity: "ubreve;",
- value: "U+0016D"
+ "entity": "ubreve;",
+ "value": "U+0016D"
},
{
- entity: "ucirc;",
- value: "U+000FB"
+ "entity": "ucirc;",
+ "value": "U+000FB"
},
{
- entity: "ucirc",
- value: "U+000FB"
+ "entity": "ucirc",
+ "value": "U+000FB"
},
{
- entity: "ucy;",
- value: "U+00443"
+ "entity": "ucy;",
+ "value": "U+00443"
},
{
- entity: "udarr;",
- value: "U+021C5"
+ "entity": "udarr;",
+ "value": "U+021C5"
},
{
- entity: "udblac;",
- value: "U+00171"
+ "entity": "udblac;",
+ "value": "U+00171"
},
{
- entity: "udhar;",
- value: "U+0296E"
+ "entity": "udhar;",
+ "value": "U+0296E"
},
{
- entity: "ufisht;",
- value: "U+0297E"
+ "entity": "ufisht;",
+ "value": "U+0297E"
},
{
- entity: "ufr;",
- value: "U+1D532"
+ "entity": "ufr;",
+ "value": "U+1D532"
},
{
- entity: "ugrave;",
- value: "U+000F9"
+ "entity": "ugrave;",
+ "value": "U+000F9"
},
{
- entity: "ugrave",
- value: "U+000F9"
+ "entity": "ugrave",
+ "value": "U+000F9"
},
{
- entity: "uharl;",
- value: "U+021BF"
+ "entity": "uharl;",
+ "value": "U+021BF"
},
{
- entity: "uharr;",
- value: "U+021BE"
+ "entity": "uharr;",
+ "value": "U+021BE"
},
{
- entity: "uhblk;",
- value: "U+02580"
+ "entity": "uhblk;",
+ "value": "U+02580"
},
{
- entity: "ulcorn;",
- value: "U+0231C"
+ "entity": "ulcorn;",
+ "value": "U+0231C"
},
{
- entity: "ulcorner;",
- value: "U+0231C"
+ "entity": "ulcorner;",
+ "value": "U+0231C"
},
{
- entity: "ulcrop;",
- value: "U+0230F"
+ "entity": "ulcrop;",
+ "value": "U+0230F"
},
{
- entity: "ultri;",
- value: "U+025F8"
+ "entity": "ultri;",
+ "value": "U+025F8"
},
{
- entity: "umacr;",
- value: "U+0016B"
+ "entity": "umacr;",
+ "value": "U+0016B"
},
{
- entity: "uml;",
- value: "U+000A8"
+ "entity": "uml;",
+ "value": "U+000A8"
},
{
- entity: "uml",
- value: "U+000A8"
+ "entity": "uml",
+ "value": "U+000A8"
},
{
- entity: "uogon;",
- value: "U+00173"
+ "entity": "uogon;",
+ "value": "U+00173"
},
{
- entity: "uopf;",
- value: "U+1D566"
+ "entity": "uopf;",
+ "value": "U+1D566"
},
{
- entity: "uparrow;",
- value: "U+02191"
+ "entity": "uparrow;",
+ "value": "U+02191"
},
{
- entity: "updownarrow;",
- value: "U+02195"
+ "entity": "updownarrow;",
+ "value": "U+02195"
},
{
- entity: "upharpoonleft;",
- value: "U+021BF"
+ "entity": "upharpoonleft;",
+ "value": "U+021BF"
},
{
- entity: "upharpoonright;",
- value: "U+021BE"
+ "entity": "upharpoonright;",
+ "value": "U+021BE"
},
{
- entity: "uplus;",
- value: "U+0228E"
+ "entity": "uplus;",
+ "value": "U+0228E"
},
{
- entity: "upsi;",
- value: "U+003C5"
+ "entity": "upsi;",
+ "value": "U+003C5"
},
{
- entity: "upsih;",
- value: "U+003D2"
+ "entity": "upsih;",
+ "value": "U+003D2"
},
{
- entity: "upsilon;",
- value: "U+003C5"
+ "entity": "upsilon;",
+ "value": "U+003C5"
},
{
- entity: "upuparrows;",
- value: "U+021C8"
+ "entity": "upuparrows;",
+ "value": "U+021C8"
},
{
- entity: "urcorn;",
- value: "U+0231D"
+ "entity": "urcorn;",
+ "value": "U+0231D"
},
{
- entity: "urcorner;",
- value: "U+0231D"
+ "entity": "urcorner;",
+ "value": "U+0231D"
},
{
- entity: "urcrop;",
- value: "U+0230E"
+ "entity": "urcrop;",
+ "value": "U+0230E"
},
{
- entity: "uring;",
- value: "U+0016F"
+ "entity": "uring;",
+ "value": "U+0016F"
},
{
- entity: "urtri;",
- value: "U+025F9"
+ "entity": "urtri;",
+ "value": "U+025F9"
},
{
- entity: "uscr;",
- value: "U+1D4CA"
+ "entity": "uscr;",
+ "value": "U+1D4CA"
},
{
- entity: "utdot;",
- value: "U+022F0"
+ "entity": "utdot;",
+ "value": "U+022F0"
},
{
- entity: "utilde;",
- value: "U+00169"
+ "entity": "utilde;",
+ "value": "U+00169"
},
{
- entity: "utri;",
- value: "U+025B5"
+ "entity": "utri;",
+ "value": "U+025B5"
},
{
- entity: "utrif;",
- value: "U+025B4"
+ "entity": "utrif;",
+ "value": "U+025B4"
},
{
- entity: "uuarr;",
- value: "U+021C8"
+ "entity": "uuarr;",
+ "value": "U+021C8"
},
{
- entity: "uuml;",
- value: "U+000FC"
+ "entity": "uuml;",
+ "value": "U+000FC"
},
{
- entity: "uuml",
- value: "U+000FC"
+ "entity": "uuml",
+ "value": "U+000FC"
},
{
- entity: "uwangle;",
- value: "U+029A7"
+ "entity": "uwangle;",
+ "value": "U+029A7"
},
{
- entity: "vArr;",
- value: "U+021D5"
+ "entity": "vArr;",
+ "value": "U+021D5"
},
{
- entity: "vBar;",
- value: "U+02AE8"
+ "entity": "vBar;",
+ "value": "U+02AE8"
},
{
- entity: "vBarv;",
- value: "U+02AE9"
+ "entity": "vBarv;",
+ "value": "U+02AE9"
},
{
- entity: "vDash;",
- value: "U+022A8"
+ "entity": "vDash;",
+ "value": "U+022A8"
},
{
- entity: "vangrt;",
- value: "U+0299C"
+ "entity": "vangrt;",
+ "value": "U+0299C"
},
{
- entity: "varepsilon;",
- value: "U+003F5"
+ "entity": "varepsilon;",
+ "value": "U+003F5"
},
{
- entity: "varkappa;",
- value: "U+003F0"
+ "entity": "varkappa;",
+ "value": "U+003F0"
},
{
- entity: "varnothing;",
- value: "U+02205"
+ "entity": "varnothing;",
+ "value": "U+02205"
},
{
- entity: "varphi;",
- value: "U+003D5"
+ "entity": "varphi;",
+ "value": "U+003D5"
},
{
- entity: "varpi;",
- value: "U+003D6"
+ "entity": "varpi;",
+ "value": "U+003D6"
},
{
- entity: "varpropto;",
- value: "U+0221D"
+ "entity": "varpropto;",
+ "value": "U+0221D"
},
{
- entity: "varr;",
- value: "U+02195"
+ "entity": "varr;",
+ "value": "U+02195"
},
{
- entity: "varrho;",
- value: "U+003F1"
+ "entity": "varrho;",
+ "value": "U+003F1"
},
{
- entity: "varsigma;",
- value: "U+003C2"
+ "entity": "varsigma;",
+ "value": "U+003C2"
},
{
- entity: "vartheta;",
- value: "U+003D1"
+ "entity": "vartheta;",
+ "value": "U+003D1"
},
{
- entity: "vartriangleleft;",
- value: "U+022B2"
+ "entity": "vartriangleleft;",
+ "value": "U+022B2"
},
{
- entity: "vartriangleright;",
- value: "U+022B3"
+ "entity": "vartriangleright;",
+ "value": "U+022B3"
},
{
- entity: "vcy;",
- value: "U+00432"
+ "entity": "vcy;",
+ "value": "U+00432"
},
{
- entity: "vdash;",
- value: "U+022A2"
+ "entity": "vdash;",
+ "value": "U+022A2"
},
{
- entity: "vee;",
- value: "U+02228"
+ "entity": "vee;",
+ "value": "U+02228"
},
{
- entity: "veebar;",
- value: "U+022BB"
+ "entity": "veebar;",
+ "value": "U+022BB"
},
{
- entity: "veeeq;",
- value: "U+0225A"
+ "entity": "veeeq;",
+ "value": "U+0225A"
},
{
- entity: "vellip;",
- value: "U+022EE"
+ "entity": "vellip;",
+ "value": "U+022EE"
},
{
- entity: "verbar;",
- value: "U+0007C"
+ "entity": "verbar;",
+ "value": "U+0007C"
},
{
- entity: "vert;",
- value: "U+0007C"
+ "entity": "vert;",
+ "value": "U+0007C"
},
{
- entity: "vfr;",
- value: "U+1D533"
+ "entity": "vfr;",
+ "value": "U+1D533"
},
{
- entity: "vltri;",
- value: "U+022B2"
+ "entity": "vltri;",
+ "value": "U+022B2"
},
{
- entity: "vopf;",
- value: "U+1D567"
+ "entity": "vopf;",
+ "value": "U+1D567"
},
{
- entity: "vprop;",
- value: "U+0221D"
+ "entity": "vprop;",
+ "value": "U+0221D"
},
{
- entity: "vrtri;",
- value: "U+022B3"
+ "entity": "vrtri;",
+ "value": "U+022B3"
},
{
- entity: "vscr;",
- value: "U+1D4CB"
+ "entity": "vscr;",
+ "value": "U+1D4CB"
},
{
- entity: "vzigzag;",
- value: "U+0299A"
+ "entity": "vzigzag;",
+ "value": "U+0299A"
},
{
- entity: "wcirc;",
- value: "U+00175"
+ "entity": "wcirc;",
+ "value": "U+00175"
},
{
- entity: "wedbar;",
- value: "U+02A5F"
+ "entity": "wedbar;",
+ "value": "U+02A5F"
},
{
- entity: "wedge;",
- value: "U+02227"
+ "entity": "wedge;",
+ "value": "U+02227"
},
{
- entity: "wedgeq;",
- value: "U+02259"
+ "entity": "wedgeq;",
+ "value": "U+02259"
},
{
- entity: "weierp;",
- value: "U+02118"
+ "entity": "weierp;",
+ "value": "U+02118"
},
{
- entity: "wfr;",
- value: "U+1D534"
+ "entity": "wfr;",
+ "value": "U+1D534"
},
{
- entity: "wopf;",
- value: "U+1D568"
+ "entity": "wopf;",
+ "value": "U+1D568"
},
{
- entity: "wp;",
- value: "U+02118"
+ "entity": "wp;",
+ "value": "U+02118"
},
{
- entity: "wr;",
- value: "U+02240"
+ "entity": "wr;",
+ "value": "U+02240"
},
{
- entity: "wreath;",
- value: "U+02240"
+ "entity": "wreath;",
+ "value": "U+02240"
},
{
- entity: "wscr;",
- value: "U+1D4CC"
+ "entity": "wscr;",
+ "value": "U+1D4CC"
},
{
- entity: "xcap;",
- value: "U+022C2"
+ "entity": "xcap;",
+ "value": "U+022C2"
},
{
- entity: "xcirc;",
- value: "U+025EF"
+ "entity": "xcirc;",
+ "value": "U+025EF"
},
{
- entity: "xcup;",
- value: "U+022C3"
+ "entity": "xcup;",
+ "value": "U+022C3"
},
{
- entity: "xdtri;",
- value: "U+025BD"
+ "entity": "xdtri;",
+ "value": "U+025BD"
},
{
- entity: "xfr;",
- value: "U+1D535"
+ "entity": "xfr;",
+ "value": "U+1D535"
},
{
- entity: "xhArr;",
- value: "U+027FA"
+ "entity": "xhArr;",
+ "value": "U+027FA"
},
{
- entity: "xharr;",
- value: "U+027F7"
+ "entity": "xharr;",
+ "value": "U+027F7"
},
{
- entity: "xi;",
- value: "U+003BE"
+ "entity": "xi;",
+ "value": "U+003BE"
},
{
- entity: "xlArr;",
- value: "U+027F8"
+ "entity": "xlArr;",
+ "value": "U+027F8"
},
{
- entity: "xlarr;",
- value: "U+027F5"
+ "entity": "xlarr;",
+ "value": "U+027F5"
},
{
- entity: "xmap;",
- value: "U+027FC"
+ "entity": "xmap;",
+ "value": "U+027FC"
},
{
- entity: "xnis;",
- value: "U+022FB"
+ "entity": "xnis;",
+ "value": "U+022FB"
},
{
- entity: "xodot;",
- value: "U+02A00"
+ "entity": "xodot;",
+ "value": "U+02A00"
},
{
- entity: "xopf;",
- value: "U+1D569"
+ "entity": "xopf;",
+ "value": "U+1D569"
},
{
- entity: "xoplus;",
- value: "U+02A01"
+ "entity": "xoplus;",
+ "value": "U+02A01"
},
{
- entity: "xotime;",
- value: "U+02A02"
+ "entity": "xotime;",
+ "value": "U+02A02"
},
{
- entity: "xrArr;",
- value: "U+027F9"
+ "entity": "xrArr;",
+ "value": "U+027F9"
},
{
- entity: "xrarr;",
- value: "U+027F6"
+ "entity": "xrarr;",
+ "value": "U+027F6"
},
{
- entity: "xscr;",
- value: "U+1D4CD"
+ "entity": "xscr;",
+ "value": "U+1D4CD"
},
{
- entity: "xsqcup;",
- value: "U+02A06"
+ "entity": "xsqcup;",
+ "value": "U+02A06"
},
{
- entity: "xuplus;",
- value: "U+02A04"
+ "entity": "xuplus;",
+ "value": "U+02A04"
},
{
- entity: "xutri;",
- value: "U+025B3"
+ "entity": "xutri;",
+ "value": "U+025B3"
},
{
- entity: "xvee;",
- value: "U+022C1"
+ "entity": "xvee;",
+ "value": "U+022C1"
},
{
- entity: "xwedge;",
- value: "U+022C0"
+ "entity": "xwedge;",
+ "value": "U+022C0"
},
{
- entity: "yacute;",
- value: "U+000FD"
+ "entity": "yacute;",
+ "value": "U+000FD"
},
{
- entity: "yacute",
- value: "U+000FD"
+ "entity": "yacute",
+ "value": "U+000FD"
},
{
- entity: "yacy;",
- value: "U+0044F"
+ "entity": "yacy;",
+ "value": "U+0044F"
},
{
- entity: "ycirc;",
- value: "U+00177"
+ "entity": "ycirc;",
+ "value": "U+00177"
},
{
- entity: "ycy;",
- value: "U+0044B"
+ "entity": "ycy;",
+ "value": "U+0044B"
},
{
- entity: "yen;",
- value: "U+000A5"
+ "entity": "yen;",
+ "value": "U+000A5"
},
{
- entity: "yen",
- value: "U+000A5"
+ "entity": "yen",
+ "value": "U+000A5"
},
{
- entity: "yfr;",
- value: "U+1D536"
+ "entity": "yfr;",
+ "value": "U+1D536"
},
{
- entity: "yicy;",
- value: "U+00457"
+ "entity": "yicy;",
+ "value": "U+00457"
},
{
- entity: "yopf;",
- value: "U+1D56A"
+ "entity": "yopf;",
+ "value": "U+1D56A"
},
{
- entity: "yscr;",
- value: "U+1D4CE"
+ "entity": "yscr;",
+ "value": "U+1D4CE"
},
{
- entity: "yucy;",
- value: "U+0044E"
+ "entity": "yucy;",
+ "value": "U+0044E"
},
{
- entity: "yuml;",
- value: "U+000FF"
+ "entity": "yuml;",
+ "value": "U+000FF"
},
{
- entity: "yuml",
- value: "U+000FF"
+ "entity": "yuml",
+ "value": "U+000FF"
},
{
- entity: "zacute;",
- value: "U+0017A"
+ "entity": "zacute;",
+ "value": "U+0017A"
},
{
- entity: "zcaron;",
- value: "U+0017E"
+ "entity": "zcaron;",
+ "value": "U+0017E"
},
{
- entity: "zcy;",
- value: "U+00437"
+ "entity": "zcy;",
+ "value": "U+00437"
},
{
- entity: "zdot;",
- value: "U+0017C"
+ "entity": "zdot;",
+ "value": "U+0017C"
},
{
- entity: "zeetrf;",
- value: "U+02128"
+ "entity": "zeetrf;",
+ "value": "U+02128"
},
{
- entity: "zeta;",
- value: "U+003B6"
+ "entity": "zeta;",
+ "value": "U+003B6"
},
{
- entity: "zfr;",
- value: "U+1D537"
+ "entity": "zfr;",
+ "value": "U+1D537"
},
{
- entity: "zhcy;",
- value: "U+00436"
+ "entity": "zhcy;",
+ "value": "U+00436"
},
{
- entity: "zigrarr;",
- value: "U+021DD"
+ "entity": "zigrarr;",
+ "value": "U+021DD"
},
{
- entity: "zopf;",
- value: "U+1D56B"
+ "entity": "zopf;",
+ "value": "U+1D56B"
},
{
- entity: "zscr;",
- value: "U+1D4CF"
+ "entity": "zscr;",
+ "value": "U+1D4CF"
},
{
- entity: "zwj;",
- value: "U+0200D"
+ "entity": "zwj;",
+ "value": "U+0200D"
},
{
- entity: "zwnj;",
- value: "U+0200C"
+ "entity": "zwnj;",
+ "value": "U+0200C"
}
]
diff --git a/WebCore/html/HTMLFormattingElementList.h b/WebCore/html/HTMLFormattingElementList.h
index 135163c..aca05bb 100644
--- a/WebCore/html/HTMLFormattingElementList.h
+++ b/WebCore/html/HTMLFormattingElementList.h
@@ -32,7 +32,6 @@
namespace WebCore {
-class AtomicString;
class Element;
// This may end up merged into HTMLElementStack.
diff --git a/WebCore/html/HTMLInputElement.cpp b/WebCore/html/HTMLInputElement.cpp
index f4528c2..f0245ec 100644
--- a/WebCore/html/HTMLInputElement.cpp
+++ b/WebCore/html/HTMLInputElement.cpp
@@ -67,9 +67,13 @@
#include "StepRange.h"
#include "StringHash.h"
#include "TextEvent.h"
+<<<<<<< HEAD
#ifdef ANDROID_ACCEPT_CHANGES_TO_FOCUSED_TEXTFIELDS
#include "WebViewCore.h"
#endif
+=======
+#include "WheelEvent.h"
+>>>>>>> webkit.org at r65072
#include <wtf/HashMap.h>
#include <wtf/MathExtras.h>
#include <wtf/StdLibExtras.h>
@@ -2040,7 +2044,7 @@ bool HTMLInputElement::storesValueSeparateFromAttribute() const
return false;
}
-struct EventHandlingState {
+struct EventHandlingState : FastAllocBase {
RefPtr<HTMLInputElement> m_currRadio;
bool m_indeterminate;
bool m_checked;
@@ -2419,6 +2423,20 @@ void HTMLInputElement::defaultEventHandler(Event* evt)
if (evt->isBeforeTextInsertedEvent())
handleBeforeTextInsertedEvent(evt);
+ if (hasSpinButton() && evt->isWheelEvent()) {
+ WheelEvent* wheel = static_cast<WheelEvent*>(evt);
+ int step = 0;
+ if (wheel->wheelDeltaY() > 0) {
+ step = 1;
+ } else if (wheel->wheelDeltaY() < 0) {
+ step = -1;
+ }
+ if (step) {
+ stepUpFromRenderer(step);
+ evt->setDefaultHandled();
+ return;
+ }
+ }
if (isTextField() && renderer() && (evt->isMouseEvent() || evt->isDragEvent() || evt->isWheelEvent() || evt->type() == eventNames().blurEvent || evt->type() == eventNames().focusEvent))
toRenderTextControlSingleLine(renderer())->forwardEvent(evt);
@@ -2814,10 +2832,16 @@ HTMLOptionElement* HTMLInputElement::selectedOption() const
void HTMLInputElement::stepUpFromRenderer(int n)
{
- // The difference from stepUp()/stepDown() is:
- // If the current value is invalid, the value will be
- // - the minimum value if n > 0
- // - the maximum value if n < 0
+ // The differences from stepUp()/stepDown():
+ // If the current value is not a number, the value will be
+ // - The value should be the minimum value if n > 0
+ // - The value should be the maximum value if n < 0
+ // If the current value is smaller than the minimum value:
+ // - The value should be the minimum value if n > 0
+ // - Nothing should happen if n < 0
+ // If the current value is larger than the maximum value:
+ // - The value should be the maximum value if n < 0
+ // - Nothing should happen if n > 0
ASSERT(hasSpinButton());
if (!hasSpinButton())
@@ -2829,7 +2853,7 @@ void HTMLInputElement::stepUpFromRenderer(int n)
const double nan = numeric_limits<double>::quiet_NaN();
String currentStringValue = value();
double current = parseToDouble(currentStringValue, nan);
- if (!isfinite(current))
+ if (!isfinite(current) || (n > 0 && current < minimum()) || (n < 0 && current > maximum()))
setValue(serialize(n > 0 ? minimum() : maximum()));
else {
ExceptionCode ec;
diff --git a/WebCore/html/HTMLMediaElement.cpp b/WebCore/html/HTMLMediaElement.cpp
index ad465bb..94c0dd2 100644
--- a/WebCore/html/HTMLMediaElement.cpp
+++ b/WebCore/html/HTMLMediaElement.cpp
@@ -108,8 +108,9 @@ HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document* doc)
#endif
, m_restrictions(NoRestrictions)
, m_preload(MediaPlayer::Auto)
- , m_playing(false)
+ , m_displayMode(Unknown)
, m_processingMediaPlayerCallback(0)
+ , m_playing(false)
, m_isWaitingUntilMediaCanStart(false)
, m_processingLoad(false)
, m_delayingTheLoadEvent(false)
@@ -494,6 +495,7 @@ void HTMLMediaElement::prepareForLoad()
m_sentStalledEvent = false;
m_haveFiredLoadedData = false;
m_completelyLoaded = false;
+ m_displayMode = Unknown;
// 1 - Abort any already-running instance of the resource selection algorithm for this element.
m_currentSourceNode = 0;
@@ -533,7 +535,6 @@ void HTMLMediaElement::prepareForLoad()
m_playedTimeRanges = TimeRanges::create();
m_lastSeekTime = 0;
m_closedCaptionsVisible = false;
-
}
void HTMLMediaElement::loadInternal()
@@ -671,11 +672,9 @@ void HTMLMediaElement::loadResource(const KURL& initialURL, ContentType& content
#endif
m_player->load(m_currentSrc, contentType);
- if (isVideo() && m_player->canLoadPoster()) {
- KURL posterURL = getNonEmptyURLAttribute(posterAttr);
- if (!posterURL.isEmpty())
- m_player->setPoster(posterURL);
- }
+ // If there is no poster to display, allow the media engine to render video frames as soon as
+ // they are available.
+ updateDisplayState();
if (renderer())
renderer()->updateFromElement();
@@ -746,7 +745,7 @@ void HTMLMediaElement::noneSupported()
// 9 -Abort these steps. Until the load() method is invoked, the element won't attempt to load another resource.
- updatePosterImage();
+ updateDisplayState();
if (renderer())
renderer()->updateFromElement();
@@ -835,7 +834,7 @@ void HTMLMediaElement::setNetworkState(MediaPlayer::NetworkState state)
else if (state == MediaPlayer::FormatError && m_loadState == LoadingFromSrcAttr)
noneSupported();
- updatePosterImage();
+ updateDisplayState();
return;
}
@@ -917,17 +916,13 @@ void HTMLMediaElement::setReadyState(MediaPlayer::ReadyState state)
if (m_readyState >= HAVE_METADATA && oldState < HAVE_METADATA) {
scheduleEvent(eventNames().durationchangeEvent);
scheduleEvent(eventNames().loadedmetadataEvent);
-
-#if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
- if (renderer() && renderer()->isVideo()) {
- toRenderVideo(renderer())->videoSizeChanged();
- }
-#endif
+ if (renderer())
+ renderer()->updateFromElement();
m_delayingTheLoadEvent = false;
m_player->seek(0);
}
- bool shouldUpdatePosterImage = false;
+ bool shouldUpdateDisplayState = false;
// 4.8.10.7 says loadeddata is sent only when the new state *is* HAVE_CURRENT_DATA: "If the
// previous ready state was HAVE_METADATA and the new ready state is HAVE_CURRENT_DATA",
@@ -936,7 +931,7 @@ void HTMLMediaElement::setReadyState(MediaPlayer::ReadyState state)
// We go with the later because it seems useful to count on getting this event
if (m_readyState >= HAVE_CURRENT_DATA && oldState < HAVE_CURRENT_DATA && !m_haveFiredLoadedData) {
m_haveFiredLoadedData = true;
- shouldUpdatePosterImage = true;
+ shouldUpdateDisplayState = true;
scheduleEvent(eventNames().loadeddataEvent);
}
@@ -945,7 +940,7 @@ void HTMLMediaElement::setReadyState(MediaPlayer::ReadyState state)
scheduleEvent(eventNames().canplayEvent);
if (isPotentiallyPlaying)
scheduleEvent(eventNames().playingEvent);
- shouldUpdatePosterImage = true;
+ shouldUpdateDisplayState = true;
}
if (m_readyState == HAVE_ENOUGH_DATA && oldState < HAVE_ENOUGH_DATA) {
@@ -963,11 +958,11 @@ void HTMLMediaElement::setReadyState(MediaPlayer::ReadyState state)
scheduleEvent(eventNames().playingEvent);
}
- shouldUpdatePosterImage = true;
+ shouldUpdateDisplayState = true;
}
- if (shouldUpdatePosterImage)
- updatePosterImage();
+ if (shouldUpdateDisplayState)
+ updateDisplayState();
updatePlayState();
}
@@ -1071,7 +1066,6 @@ void HTMLMediaElement::seek(float time, ExceptionCode& ec)
m_player->seek(time);
// 10-15 are handled, if necessary, when the engine signals a readystate change.
-
}
void HTMLMediaElement::finishSeek()
@@ -1081,6 +1075,8 @@ void HTMLMediaElement::finishSeek()
// 4.8.10.10 Seeking step 13
scheduleEvent(eventNames().seekedEvent);
+
+ setDisplayMode(Video);
}
HTMLMediaElement::ReadyState HTMLMediaElement::readyState() const
@@ -1585,13 +1581,8 @@ void HTMLMediaElement::mediaPlayerDurationChanged(MediaPlayer*)
{
beginProcessingMediaPlayerCallback();
scheduleEvent(eventNames().durationchangeEvent);
-#if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
- if (renderer()) {
+ if (renderer())
renderer()->updateFromElement();
- if (renderer()->isVideo())
- toRenderVideo(renderer())->videoSizeChanged();
- }
-#endif
endProcessingMediaPlayerCallback();
}
@@ -1619,20 +1610,17 @@ void HTMLMediaElement::mediaPlayerSawUnsupportedTracks(MediaPlayer*)
void HTMLMediaElement::mediaPlayerRepaint(MediaPlayer*)
{
beginProcessingMediaPlayerCallback();
+ updateDisplayState();
if (renderer())
renderer()->repaint();
-
- updatePosterImage();
endProcessingMediaPlayerCallback();
}
void HTMLMediaElement::mediaPlayerSizeChanged(MediaPlayer*)
{
beginProcessingMediaPlayerCallback();
-#if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
- if (renderer() && renderer()->isVideo())
- toRenderVideo(renderer())->videoSizeChanged();
-#endif
+ if (renderer())
+ renderer()->updateFromElement();
endProcessingMediaPlayerCallback();
}
@@ -1783,6 +1771,8 @@ void HTMLMediaElement::updatePlayState()
bool shouldBePlaying = potentiallyPlaying();
bool playerPaused = m_player->paused();
if (shouldBePlaying && playerPaused) {
+ setDisplayMode(Video);
+
// Set rate before calling play in case the rate was set before the media engine wasn't setup.
// The media engine should just stash the rate since it isn't already playing.
m_player->setRate(m_playbackRate);
diff --git a/WebCore/html/HTMLMediaElement.h b/WebCore/html/HTMLMediaElement.h
index eede363..aeec188 100644
--- a/WebCore/html/HTMLMediaElement.h
+++ b/WebCore/html/HTMLMediaElement.h
@@ -178,6 +178,10 @@ protected:
virtual void willMoveToNewOwnerDocument();
virtual void didMoveToNewOwnerDocument();
+ enum DisplayMode { Unknown, None, Poster, Video };
+ DisplayMode displayMode() const { return m_displayMode; }
+ virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; }
+
private:
virtual bool checkDTD(const Node* newChild);
virtual void attributeChanged(Attribute*, bool preserveDecls);
@@ -195,7 +199,8 @@ private:
virtual void documentWillBecomeInactive();
virtual void documentDidBecomeActive();
virtual void mediaVolumeDidChange();
- virtual void updatePosterImage() { }
+
+ virtual void updateDisplayState() { }
void setReadyState(MediaPlayer::ReadyState);
void setNetworkState(MediaPlayer::NetworkState);
@@ -254,7 +259,8 @@ private:
void pauseInternal();
void prepareForLoad();
-
+ void allowVideoRendering();
+
bool processingMediaPlayerCallback() const { return m_processingMediaPlayerCallback > 0; }
void beginProcessingMediaPlayerCallback() { ++m_processingMediaPlayerCallback; }
void endProcessingMediaPlayerCallback() { ASSERT(m_processingMediaPlayerCallback); --m_processingMediaPlayerCallback; }
@@ -326,14 +332,14 @@ private:
MediaPlayer::Preload m_preload;
- bool m_playing;
+ DisplayMode m_displayMode;
// Counter incremented while processing a callback from the media player, so we can avoid
// calling the media engine recursively.
int m_processingMediaPlayerCallback;
- bool m_isWaitingUntilMediaCanStart;
-
+ bool m_playing : 1;
+ bool m_isWaitingUntilMediaCanStart : 1;
bool m_processingLoad : 1;
bool m_delayingTheLoadEvent : 1;
bool m_haveFiredLoadedData : 1;
diff --git a/WebCore/html/HTMLParserQuirks.h b/WebCore/html/HTMLParserQuirks.h
index 176bbfb..50de710 100644
--- a/WebCore/html/HTMLParserQuirks.h
+++ b/WebCore/html/HTMLParserQuirks.h
@@ -26,11 +26,11 @@
#ifndef HTMLParserQuirks_h
#define HTMLParserQuirks_h
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
namespace WebCore {
-class AtomicString;
class Node;
class HTMLParserQuirks : public Noncopyable {
diff --git a/WebCore/html/HTMLQuoteElement.h b/WebCore/html/HTMLQuoteElement.h
index df47e73..9261da6 100644
--- a/WebCore/html/HTMLQuoteElement.h
+++ b/WebCore/html/HTMLQuoteElement.h
@@ -24,12 +24,11 @@
#ifndef HTMLQuoteElement_h
#define HTMLQuoteElement_h
+#include <wtf/Forward.h>
#include "HTMLElement.h"
namespace WebCore {
-class String;
-
class HTMLQuoteElement : public HTMLElement {
public:
static PassRefPtr<HTMLQuoteElement> create(const QualifiedName&, Document*);
diff --git a/WebCore/html/HTMLScriptRunner.cpp b/WebCore/html/HTMLScriptRunner.cpp
index f4b7013..4a9058f 100644
--- a/WebCore/html/HTMLScriptRunner.cpp
+++ b/WebCore/html/HTMLScriptRunner.cpp
@@ -105,7 +105,7 @@ ScriptSourceCode HTMLScriptRunner::sourceFromPendingScript(const PendingScript&
return ScriptSourceCode(script.cachedScript());
}
errorOccurred = false;
- return ScriptSourceCode(script.element->textContent(), documentURLForScriptExecution(m_document), script.startingLineNumber);
+ return ScriptSourceCode(script.element()->textContent(), documentURLForScriptExecution(m_document), script.startingLineNumber());
}
bool HTMLScriptRunner::isPendingScriptReady(const PendingScript& script)
@@ -195,7 +195,7 @@ bool HTMLScriptRunner::execute(PassRefPtr<Element> scriptElement, int startLine)
bool HTMLScriptRunner::haveParsingBlockingScript() const
{
- return !!m_parsingBlockingScript.element;
+ return !!m_parsingBlockingScript.element();
}
bool HTMLScriptRunner::executeParsingBlockingScripts()
@@ -230,7 +230,7 @@ bool HTMLScriptRunner::executeScriptsWaitingForStylesheets()
void HTMLScriptRunner::requestScript(Element* script)
{
- ASSERT(!m_parsingBlockingScript.element);
+ ASSERT(!m_parsingBlockingScript.element());
AtomicString srcValue = script->getAttribute(srcAttr);
// Allow the host to disllow script loads (using the XSSAuditor, etc.)
if (!m_host->shouldLoadExternalScriptFromSrc(srcValue))
@@ -238,7 +238,7 @@ void HTMLScriptRunner::requestScript(Element* script)
// FIXME: We need to resolve the url relative to the element.
if (!script->dispatchBeforeLoadEvent(srcValue))
return;
- m_parsingBlockingScript.element = script;
+ m_parsingBlockingScript.adoptElement(script);
// This should correctly return 0 for empty or invalid srcValues.
CachedScript* cachedScript = m_document->docLoader()->requestScript(srcValue, toScriptElement(script)->scriptCharset());
if (!cachedScript) {
@@ -278,34 +278,4 @@ void HTMLScriptRunner::runScript(Element* script, int startingLineNumber)
}
}
-HTMLScriptRunner::PendingScript::~PendingScript()
-{
- if (m_cachedScript)
- m_cachedScript->removeClient(this);
-}
-
-PassRefPtr<Element> HTMLScriptRunner::PendingScript::releaseElementAndClear()
-{
- setCachedScript(0);
- startingLineNumber = 0;
- m_watchingForLoad = false;
- return element.release();
-}
-
-void HTMLScriptRunner::PendingScript::setCachedScript(CachedScript* cachedScript)
-{
- if (m_cachedScript == cachedScript)
- return;
- if (m_cachedScript)
- m_cachedScript->removeClient(this);
- m_cachedScript = cachedScript;
- if (m_cachedScript)
- m_cachedScript->addClient(this);
-}
-
-CachedScript* HTMLScriptRunner::PendingScript::cachedScript() const
-{
- return m_cachedScript.get();
-}
-
}
diff --git a/WebCore/html/HTMLScriptRunner.h b/WebCore/html/HTMLScriptRunner.h
index cc69443..85801b2 100644
--- a/WebCore/html/HTMLScriptRunner.h
+++ b/WebCore/html/HTMLScriptRunner.h
@@ -26,14 +26,13 @@
#ifndef HTMLScriptRunner_h
#define HTMLScriptRunner_h
-#include "CachedResourceClient.h"
-#include "CachedResourceHandle.h"
+#include "PendingScript.h"
#include <wtf/Noncopyable.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
-class CachedResourceClient;
+class CachedResource;
class CachedScript;
class Document;
class Element;
@@ -56,45 +55,6 @@ public:
bool isExecutingScript() { return !!m_scriptNestingLevel; }
private:
- // A container for an external script which may be loaded and executed.
- //
- // A CachedResourceHandle alone does not prevent the underlying CachedResource
- // from purging its data buffer. This class holds a dummy client open for its
- // lifetime in order to guarantee that the data buffer will not be purged.
- //
- // FIXME: Finish turning this into a proper class.
- class PendingScript : public CachedResourceClient, Noncopyable {
- public:
- PendingScript()
- : startingLineNumber(0)
- , m_watchingForLoad(false)
- {
- }
-
- ~PendingScript();
-
- PassRefPtr<Element> releaseElementAndClear();
-
- bool watchingForLoad() const { return m_watchingForLoad; }
- void setWatchingForLoad(bool b) { m_watchingForLoad = b; }
-
- CachedScript* cachedScript() const;
- void setCachedScript(CachedScript*);
-
- virtual void notifyFinished(CachedResource*)
- {
- }
-
- RefPtr<Element> element;
- int startingLineNumber; // Only used for inline script tags.
- // HTML5 has an isReady parameter, however isReady ends up equivalent to
- // m_document->haveStylesheetsLoaded() && cachedScript->isLoaded()
-
- private:
- bool m_watchingForLoad;
- CachedResourceHandle<CachedScript> m_cachedScript;
- };
-
Frame* frame() const;
bool haveParsingBlockingScript() const;
diff --git a/WebCore/html/HTMLScriptRunnerHost.h b/WebCore/html/HTMLScriptRunnerHost.h
index a129520..5b40a931 100644
--- a/WebCore/html/HTMLScriptRunnerHost.h
+++ b/WebCore/html/HTMLScriptRunnerHost.h
@@ -26,9 +26,10 @@
#ifndef HTMLScriptRunnerHost_h
#define HTMLScriptRunnerHost_h
+#include <wtf/Forward.h>
+
namespace WebCore {
-class AtomicString;
class CachedResource;
class Element;
class HTMLInputStream;
diff --git a/WebCore/html/HTMLToken.h b/WebCore/html/HTMLToken.h
index 8465a35..5f2869b 100644
--- a/WebCore/html/HTMLToken.h
+++ b/WebCore/html/HTMLToken.h
@@ -262,7 +262,7 @@ private:
// want to end up with a cleaner interface between the two classes.
friend class AtomicHTMLToken;
- class DoctypeData {
+ class DoctypeData : public Noncopyable {
public:
DoctypeData()
: m_hasPublicIdentifier(false)
diff --git a/WebCore/html/HTMLTokenizer.cpp b/WebCore/html/HTMLTokenizer.cpp
index c8234e4..a52aba6 100644
--- a/WebCore/html/HTMLTokenizer.cpp
+++ b/WebCore/html/HTMLTokenizer.cpp
@@ -97,6 +97,7 @@ inline bool isEndTagBufferingState(HTMLTokenizer::State state)
}
HTMLTokenizer::HTMLTokenizer()
+ : m_inputStreamPreprocessor(this)
{
reset();
}
@@ -111,6 +112,7 @@ void HTMLTokenizer::reset()
m_token = 0;
m_lineNumber = 0;
m_skipLeadingNewLineForListing = false;
+ m_forceNullCharacterReplacement = false;
m_additionalAllowedCharacter = '\0';
}
diff --git a/WebCore/html/HTMLTokenizer.h b/WebCore/html/HTMLTokenizer.h
index 7ee9d41..0e9ba3a 100644
--- a/WebCore/html/HTMLTokenizer.h
+++ b/WebCore/html/HTMLTokenizer.h
@@ -34,6 +34,7 @@
namespace WebCore {
+class Element;
class HTMLToken;
class HTMLTokenizer : public Noncopyable {
@@ -132,14 +133,27 @@ public:
// Hack to skip leading newline in <pre>/<listing> for authoring ease.
// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#parsing-main-inbody
- void skipLeadingNewLineForListing() { m_skipLeadingNewLineForListing = true; }
+ void setSkipLeadingNewLineForListing(bool value) { m_skipLeadingNewLineForListing = value; }
+
+ bool forceNullCharacterReplacement() const { return m_forceNullCharacterReplacement; }
+ void setForceNullCharacterReplacement(bool value) { m_forceNullCharacterReplacement = value; }
+
+ bool shouldSkipNullCharacters() const
+ {
+ return !m_forceNullCharacterReplacement
+ && (m_state == DataState
+ || m_state == RCDATAState
+ || m_state == RAWTEXTState
+ || m_state == PLAINTEXTState);
+ }
private:
// http://www.whatwg.org/specs/web-apps/current-work/#preprocessing-the-input-stream
class InputStreamPreprocessor : public Noncopyable {
public:
- InputStreamPreprocessor()
- : m_nextInputCharacter('\0')
+ InputStreamPreprocessor(HTMLTokenizer* tokenizer)
+ : m_tokenizer(tokenizer)
+ , m_nextInputCharacter('\0')
, m_skipNextNewLine(false)
{
}
@@ -151,6 +165,7 @@ private:
// characters in |source| (after collapsing \r\n, etc).
ALWAYS_INLINE bool peek(SegmentedString& source, int& lineNumber)
{
+ PeekAgain:
m_nextInputCharacter = *source;
// Every branch in this function is expensive, so we have a
@@ -179,8 +194,15 @@ private:
// a number of specific character values are parse errors and should be replaced
// by the replacement character. We suspect this is a problem with the spec as doing
// that filtering breaks surrogate pair handling and causes us not to match Minefield.
- if (m_nextInputCharacter == '\0' && !shouldTreatNullAsEndOfFileMarker(source))
+ if (m_nextInputCharacter == '\0' && !shouldTreatNullAsEndOfFileMarker(source)) {
+ if (m_tokenizer->shouldSkipNullCharacters()) {
+ source.advancePastNonNewline();
+ if (source.isEmpty())
+ return false;
+ goto PeekAgain;
+ }
m_nextInputCharacter = 0xFFFD;
+ }
}
return true;
}
@@ -202,6 +224,8 @@ private:
return source.isClosed() && source.length() == 1;
}
+ HTMLTokenizer* m_tokenizer;
+
// http://www.whatwg.org/specs/web-apps/current-work/#next-input-character
UChar m_nextInputCharacter;
bool m_skipNextNewLine;
@@ -242,6 +266,7 @@ private:
int m_lineNumber;
bool m_skipLeadingNewLineForListing;
+ bool m_forceNullCharacterReplacement;
// http://www.whatwg.org/specs/web-apps/current-work/#temporary-buffer
Vector<UChar, 32> m_temporaryBuffer;
diff --git a/WebCore/html/HTMLTreeBuilder.cpp b/WebCore/html/HTMLTreeBuilder.cpp
index ec15f9f..2c7d40d 100644
--- a/WebCore/html/HTMLTreeBuilder.cpp
+++ b/WebCore/html/HTMLTreeBuilder.cpp
@@ -61,20 +61,37 @@ static const int uninitializedLineNumberValue = -1;
namespace {
-inline bool isTreeBuilderWhitepace(UChar cc)
+inline bool isTreeBuilderWhitepace(UChar c)
{
- return cc == '\t' || cc == '\x0A' || cc == '\x0C' || cc == '\x0D' || cc == ' ';
+ // FIXME: Consider branch permutations.
+ return c == '\t' || c == '\x0A' || c == '\x0C' || c == '\x0D' || c == ' ';
}
-inline bool hasNonWhitespace(const String& string)
+inline bool isTreeBuilderWhitepaceOrReplacementCharacter(UChar c)
+{
+ return isTreeBuilderWhitepace(c) || c == 0xFFFD;
+}
+
+template<bool isSpecialCharacter(UChar c)>
+inline bool isAllSpecialCharacters(const String& string)
{
const UChar* characters = string.characters();
const unsigned length = string.length();
for (unsigned i = 0; i < length; ++i) {
- if (!isTreeBuilderWhitepace(characters[i]))
- return true;
+ if (!isSpecialCharacter(characters[i]))
+ return false;
}
- return false;
+ return true;
+}
+
+inline bool isAllWhitespace(const String& string)
+{
+ return isAllSpecialCharacters<isTreeBuilderWhitepace>(string);
+}
+
+inline bool isAllWhitespaceOrReplacementCharacters(const String& string)
+{
+ return isAllSpecialCharacters<isTreeBuilderWhitepaceOrReplacementCharacter>(string);
}
bool shouldUseLegacyTreeBuilder(Document* document)
@@ -236,6 +253,29 @@ bool isNotFormattingAndNotPhrasing(const Element* element)
return isScopingTag(tagName) || isSpecialTag(tagName);
}
+HTMLFormElement* closestFormAncestor(Element* element)
+{
+ while (element) {
+ if (element->hasTagName(formTag))
+ return static_cast<HTMLFormElement*>(element);
+ Node* parent = element->parent();
+ if (!parent || !parent->isElementNode())
+ return 0;
+ element = static_cast<Element*>(parent);
+ }
+ return 0;
+}
+
+// FIXME: This belongs on ContainerNode, where it could avoid the double ref
+// by directly releasing into the Vector. Such an implementation would need to
+// be careful not to send mutation events.
+void takeChildrenFromNode(ContainerNode* container, Vector<RefPtr<Node> >& children)
+{
+ for (Node* child = container->firstChild(); child; child = child->nextSibling())
+ children.append(child);
+ container->removeAllChildren();
+}
+
} // namespace
class HTMLTreeBuilder::ExternalCharacterTokenBuffer : public Noncopyable {
@@ -327,38 +367,89 @@ HTMLTreeBuilder::HTMLTreeBuilder(HTMLTokenizer* tokenizer, HTMLDocument* documen
, m_originalInsertionMode(InitialMode)
, m_secondaryInsertionMode(InitialMode)
, m_tokenizer(tokenizer)
- , m_legacyTreeBuilder(shouldUseLegacyTreeBuilder(document) ? new LegacyHTMLTreeBuilder(document, reportErrors) : 0)
, m_lastScriptElementStartLine(uninitializedLineNumberValue)
, m_scriptToProcessStartLine(uninitializedLineNumberValue)
- , m_fragmentScriptingPermission(FragmentScriptingAllowed)
- , m_isParsingFragment(false)
{
}
// FIXME: Member variables should be grouped into self-initializing structs to
// minimize code duplication between these constructors.
-HTMLTreeBuilder::HTMLTreeBuilder(HTMLTokenizer* tokenizer, DocumentFragment* fragment, FragmentScriptingPermission scriptingPermission)
+HTMLTreeBuilder::HTMLTreeBuilder(HTMLTokenizer* tokenizer, DocumentFragment* fragment, Element* contextElement, FragmentScriptingPermission scriptingPermission)
: m_framesetOk(true)
- , m_document(fragment->document())
- , m_tree(fragment->document(), scriptingPermission, true)
+ , m_fragmentContext(fragment, contextElement, scriptingPermission, shouldUseLegacyTreeBuilder(fragment->document()))
+ , m_document(m_fragmentContext.document())
+ , m_tree(m_document, scriptingPermission, true)
, m_reportErrors(false) // FIXME: Why not report errors in fragments?
, m_isPaused(false)
, m_insertionMode(InitialMode)
, m_originalInsertionMode(InitialMode)
, m_secondaryInsertionMode(InitialMode)
, m_tokenizer(tokenizer)
- , m_legacyTreeBuilder(new LegacyHTMLTreeBuilder(fragment, scriptingPermission))
+ , m_legacyTreeBuilder(shouldUseLegacyTreeBuilder(fragment->document()) ? new LegacyHTMLTreeBuilder(fragment, scriptingPermission) : 0)
, m_lastScriptElementStartLine(uninitializedLineNumberValue)
, m_scriptToProcessStartLine(uninitializedLineNumberValue)
- , m_fragmentScriptingPermission(scriptingPermission)
- , m_isParsingFragment(true)
{
+ if (shouldUseLegacyTreeBuilder(fragment->document()))
+ return;
+ // This is steps 2-6 of the HTML5 Fragment Case parsing algorithm:
+ // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#fragment-case
+ if (contextElement)
+ m_document->setParseMode(contextElement->document()->parseMode());
+ processFakeStartTag(htmlTag);
+ resetInsertionModeAppropriately();
+ m_tree.setForm(closestFormAncestor(contextElement));
}
HTMLTreeBuilder::~HTMLTreeBuilder()
{
}
+HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext()
+ : m_fragment(0)
+ , m_contextElement(0)
+ , m_usingLegacyTreeBuilder(false)
+ , m_scriptingPermission(FragmentScriptingAllowed)
+{
+}
+
+HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext(DocumentFragment* fragment, Element* contextElement, FragmentScriptingPermission scriptingPermission, bool legacyMode)
+ : m_dummyDocumentForFragmentParsing(legacyMode ? 0 : HTMLDocument::create(0, KURL()))
+ , m_fragment(fragment)
+ , m_contextElement(contextElement)
+ , m_usingLegacyTreeBuilder(legacyMode)
+ , m_scriptingPermission(scriptingPermission)
+{
+}
+
+Document* HTMLTreeBuilder::FragmentParsingContext::document() const
+{
+ ASSERT(m_fragment);
+ if (m_usingLegacyTreeBuilder)
+ return m_fragment->document();
+ return m_dummyDocumentForFragmentParsing.get();
+}
+
+void HTMLTreeBuilder::FragmentParsingContext::finished()
+{
+ // Populate the DocumentFragment with the parsed content now that we're done.
+ ContainerNode* root = m_dummyDocumentForFragmentParsing.get();
+ if (m_contextElement)
+ root = m_dummyDocumentForFragmentParsing->documentElement();
+ Vector<RefPtr<Node> > children;
+ takeChildrenFromNode(root, children);
+ for (unsigned i = 0; i < children.size(); ++i) {
+ ExceptionCode ec = 0;
+ // FIXME: We need a parser-safe (no events) version of adoptNode.
+ RefPtr<Node> child = m_fragment->document()->adoptNode(children[i].release(), ec);
+ ASSERT(!ec);
+ m_fragment->parserAddChild(child.release());
+ }
+}
+
+HTMLTreeBuilder::FragmentParsingContext::~FragmentParsingContext()
+{
+}
+
static void convertToOldStyle(AtomicHTMLToken& token, Token& oldStyleToken)
{
switch (token.type()) {
@@ -412,9 +503,9 @@ HTMLTokenizer::State HTMLTreeBuilder::adjustedLexerState(HTMLTokenizer::State st
if (tagName == styleTag
|| tagName == iframeTag
|| tagName == xmpTag
- || tagName == noembedTag
+ || (tagName == noembedTag && pluginsEnabled(frame))
|| tagName == noframesTag
- || (tagName == noscriptTag && isScriptingFlagEnabled(frame)))
+ || (tagName == noscriptTag && scriptEnabled(frame)))
return HTMLTokenizer::RAWTEXTState;
if (tagName == plaintextTag)
@@ -453,14 +544,14 @@ void HTMLTreeBuilder::passTokenToLegacyParser(HTMLToken& token)
m_lastScriptElement = static_pointer_cast<Element>(result);
m_lastScriptElementStartLine = m_tokenizer->lineNumber();
} else if (oldStyleToken.tagName == preTag || oldStyleToken.tagName == listingTag)
- m_tokenizer->skipLeadingNewLineForListing();
+ m_tokenizer->setSkipLeadingNewLineForListing(true);
else
m_tokenizer->setState(adjustedLexerState(m_tokenizer->state(), oldStyleToken.tagName, m_document->frame()));
} else if (token.type() == HTMLToken::EndTag) {
if (oldStyleToken.tagName == scriptTag) {
if (m_lastScriptElement) {
ASSERT(m_lastScriptElementStartLine != uninitializedLineNumberValue);
- if (m_fragmentScriptingPermission == FragmentScriptingNotAllowed) {
+ if (m_fragmentContext.scriptingPermission() == FragmentScriptingNotAllowed) {
// FIXME: This is a horrible hack for platform/Pasteboard.
// Clear the <script> tag when using the Parser to create
// a DocumentFragment for pasting so that javascript content
@@ -493,6 +584,11 @@ void HTMLTreeBuilder::constructTreeFromToken(HTMLToken& rawToken)
AtomicHTMLToken token(rawToken);
processToken(token);
+
+ // Swallowing U+0000 characters isn't in the HTML5 spec, but turning all
+ // the U+0000 characters into replacement characters has compatibility
+ // problems.
+ m_tokenizer->setForceNullCharacterReplacement(m_insertionMode == TextMode || m_insertionMode == InForeignContentMode);
}
void HTMLTreeBuilder::processToken(AtomicHTMLToken& token)
@@ -776,12 +872,19 @@ void HTMLTreeBuilder::processStartTagForInBody(AtomicHTMLToken& token)
return;
}
if (token.name() == bodyTag) {
+ if (!m_tree.openElements()->secondElementIsHTMLBodyElement() || m_tree.openElements()->hasOnlyOneElement()) {
+ ASSERT(isParsingFragment());
+ return;
+ }
m_tree.insertHTMLBodyStartTagInBody(token);
return;
}
if (token.name() == framesetTag) {
parseError(token);
- notImplemented(); // fragment case
+ if (!m_tree.openElements()->secondElementIsHTMLBodyElement() || m_tree.openElements()->hasOnlyOneElement()) {
+ ASSERT(isParsingFragment());
+ return;
+ }
if (!m_framesetOk)
return;
ExceptionCode ec = 0;
@@ -832,7 +935,7 @@ void HTMLTreeBuilder::processStartTagForInBody(AtomicHTMLToken& token)
if (token.name() == preTag || token.name() == listingTag) {
processFakePEndTagIfPInButtonScope();
m_tree.insertHTMLElement(token);
- m_tokenizer->skipLeadingNewLineForListing();
+ m_tokenizer->setSkipLeadingNewLineForListing(true);
m_framesetOk = false;
return;
}
@@ -952,7 +1055,7 @@ void HTMLTreeBuilder::processStartTagForInBody(AtomicHTMLToken& token)
}
if (token.name() == textareaTag) {
m_tree.insertHTMLElement(token);
- m_tokenizer->skipLeadingNewLineForListing();
+ m_tokenizer->setSkipLeadingNewLineForListing(true);
m_tokenizer->setState(HTMLTokenizer::RCDATAState);
m_originalInsertionMode = m_insertionMode;
m_framesetOk = false;
@@ -971,11 +1074,11 @@ void HTMLTreeBuilder::processStartTagForInBody(AtomicHTMLToken& token)
processGenericRawTextStartTag(token);
return;
}
- if (token.name() == noembedTag) {
+ if (token.name() == noembedTag && pluginsEnabled(m_document->frame())) {
processGenericRawTextStartTag(token);
return;
}
- if (token.name() == noscriptTag && isScriptingFlagEnabled(m_document->frame())) {
+ if (token.name() == noscriptTag && scriptEnabled(m_document->frame())) {
processGenericRawTextStartTag(token);
return;
}
@@ -1052,7 +1155,7 @@ void HTMLTreeBuilder::processStartTagForInBody(AtomicHTMLToken& token)
bool HTMLTreeBuilder::processColgroupEndTagForInColumnGroup()
{
if (m_tree.currentElement() == m_tree.openElements()->htmlElement()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
// FIXME: parse error
return false;
}
@@ -1113,7 +1216,7 @@ void HTMLTreeBuilder::processStartTagForInTable(AtomicHTMLToken& token)
if (token.name() == tableTag) {
parseError(token);
if (!processTableEndTagForInTable()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
processStartTag(token);
@@ -1262,7 +1365,7 @@ void HTMLTreeBuilder::processStartTag(AtomicHTMLToken& token)
|| token.name() == trTag) {
parseError(token);
if (!processCaptionEndTagForInCaption()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
processStartTag(token);
@@ -1281,7 +1384,7 @@ void HTMLTreeBuilder::processStartTag(AtomicHTMLToken& token)
return;
}
if (!processColgroupEndTagForInColumnGroup()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
processStartTag(token);
@@ -1304,7 +1407,7 @@ void HTMLTreeBuilder::processStartTag(AtomicHTMLToken& token)
if (isCaptionColOrColgroupTag(token.name()) || isTableBodyContextTag(token.name())) {
// FIXME: This is slow.
if (!m_tree.openElements()->inTableScope(tbodyTag.localName()) && !m_tree.openElements()->inTableScope(theadTag.localName()) && !m_tree.openElements()->inTableScope(tfootTag.localName())) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
parseError(token);
return;
}
@@ -1329,7 +1432,7 @@ void HTMLTreeBuilder::processStartTag(AtomicHTMLToken& token)
|| isCaptionColOrColgroupTag(token.name())
|| isTableBodyContextTag(token.name())) {
if (!processTrEndTagForInRow()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
ASSERT(insertionMode() == InTableBodyMode);
@@ -1346,7 +1449,7 @@ void HTMLTreeBuilder::processStartTag(AtomicHTMLToken& token)
|| isTableBodyContextTag(token.name())) {
// FIXME: This could be more efficient.
if (!m_tree.openElements()->inTableScope(tdTag) && !m_tree.openElements()->inTableScope(thTag)) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
parseError(token);
return;
}
@@ -1630,7 +1733,12 @@ void HTMLTreeBuilder::reparentChildren(Element* oldParent, Element* newParent)
// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#parsing-main-inbody
void HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken& token)
{
- while (1) {
+ // The adoption agency algorithm is N^2. We limit the number of iterations
+ // to stop from hanging the whole browser. This limit is copied from the
+ // legacy tree builder and might need to be tweaked in the future.
+ static const int adoptionAgencyIterationLimit = 10;
+
+ for (int i = 0; i < adoptionAgencyIterationLimit; ++i) {
// 1.
Element* formattingElement = m_tree.activeFormattingElements()->closestElementInScopeWithName(token.name());
if (!formattingElement || ((m_tree.openElements()->contains(formattingElement)) && !m_tree.openElements()->inScope(formattingElement))) {
@@ -1663,7 +1771,7 @@ void HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken& token)
HTMLElementStack::ElementRecord* node = furthestBlock;
HTMLElementStack::ElementRecord* nextNode = node->next();
HTMLElementStack::ElementRecord* lastNode = furthestBlock;
- while (1) {
+ for (int i = 0; i < adoptionAgencyIterationLimit; ++i) {
// 6.1
node = nextNode;
ASSERT(node);
@@ -1690,7 +1798,7 @@ void HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken& token)
// 6.6
// Use appendChild instead of parserAddChild to handle possible reparenting.
ExceptionCode ec;
- node->element()->appendChild(lastNode->element(), ec);
+ node->element()->appendChild(lastNode->element(), ec, true);
ASSERT(!ec);
// 6.7
lastNode = node;
@@ -1705,7 +1813,7 @@ void HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken& token)
m_tree.fosterParent(lastNode->element());
else {
ExceptionCode ec;
- commonAncestor->appendChild(lastNode->element(), ec);
+ commonAncestor->appendChild(lastNode->element(), ec, true);
ASSERT(!ec);
}
// 8
@@ -1718,8 +1826,9 @@ void HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken& token)
// be in HTMLConstructionSite. My guess is that steps 8--12
// should all be in some HTMLConstructionSite function.
furthestBlockElement->parserAddChild(newElement);
- if (furthestBlockElement->attached()) {
- ASSERT(!newElement->attached());
+ if (furthestBlockElement->attached() && !newElement->attached()) {
+ // Notice that newElement might already be attached if, for example, one of the reparented
+ // children is a style element, which attaches itself automatically.
newElement->attach();
}
// 11
@@ -1754,12 +1863,12 @@ void HTMLTreeBuilder::resetInsertionModeAppropriately()
while (1) {
Element* node = nodeRecord->element();
if (node == m_tree.openElements()->bottom()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
last = true;
- notImplemented(); // node = m_contextElement;
+ node = m_fragmentContext.contextElement();
}
if (node->hasTagName(selectTag)) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return setInsertionModeAndEnd(InSelectMode, foreign);
}
if (node->hasTagName(tdTag) || node->hasTagName(thTag))
@@ -1771,30 +1880,30 @@ void HTMLTreeBuilder::resetInsertionModeAppropriately()
if (node->hasTagName(captionTag))
return setInsertionModeAndEnd(InCaptionMode, foreign);
if (node->hasTagName(colgroupTag)) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return setInsertionModeAndEnd(InColumnGroupMode, foreign);
}
if (node->hasTagName(tableTag))
return setInsertionModeAndEnd(InTableMode, foreign);
if (node->hasTagName(headTag)) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return setInsertionModeAndEnd(InBodyMode, foreign);
}
if (node->hasTagName(bodyTag))
return setInsertionModeAndEnd(InBodyMode, foreign);
if (node->hasTagName(framesetTag)) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return setInsertionModeAndEnd(InFramesetMode, foreign);
}
if (node->hasTagName(htmlTag)) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return setInsertionModeAndEnd(BeforeHeadMode, foreign);
}
if (node->namespaceURI() == SVGNames::svgNamespaceURI
|| node->namespaceURI() == MathMLNames::mathmlNamespaceURI)
foreign = true;
if (last) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return setInsertionModeAndEnd(InBodyMode, foreign);
}
nodeRecord = nodeRecord->next();
@@ -1817,7 +1926,7 @@ void HTMLTreeBuilder::processEndTagForInTableBody(AtomicHTMLToken& token)
if (token.name() == tableTag) {
// FIXME: This is slow.
if (!m_tree.openElements()->inTableScope(tbodyTag.localName()) && !m_tree.openElements()->inTableScope(theadTag.localName()) && !m_tree.openElements()->inTableScope(tfootTag.localName())) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
parseError(token);
return;
}
@@ -1847,7 +1956,7 @@ void HTMLTreeBuilder::processEndTagForInRow(AtomicHTMLToken& token)
}
if (token.name() == tableTag) {
if (!processTrEndTagForInRow()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
ASSERT(insertionMode() == InTableBodyMode);
@@ -1901,7 +2010,7 @@ void HTMLTreeBuilder::processEndTagForInCell(AtomicHTMLToken& token)
|| token.name() == trTag
|| isTableBodyContextTag(token.name())) {
if (!m_tree.openElements()->inTableScope(token.name())) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
// FIXME: It is unclear what the exact ASSERT should be.
// http://www.w3.org/Bugs/Public/show_bug.cgi?id=10098
parseError(token);
@@ -1938,6 +2047,7 @@ void HTMLTreeBuilder::processEndTagForInBody(AtomicHTMLToken& token)
|| token.name() == divTag
|| token.name() == dlTag
|| token.name() == fieldsetTag
+ || token.name() == figcaptionTag
|| token.name() == figureTag
|| token.name() == footerTag
|| token.name() == headerTag
@@ -1948,6 +2058,7 @@ void HTMLTreeBuilder::processEndTagForInBody(AtomicHTMLToken& token)
|| token.name() == olTag
|| token.name() == preTag
|| token.name() == sectionTag
+ || token.name() == summaryTag
|| token.name() == ulTag) {
if (!m_tree.openElements()->inScope(token.name())) {
parseError(token);
@@ -2051,7 +2162,7 @@ void HTMLTreeBuilder::processEndTagForInBody(AtomicHTMLToken& token)
bool HTMLTreeBuilder::processCaptionEndTagForInCaption()
{
if (!m_tree.openElements()->inTableScope(captionTag.localName())) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
// FIXME: parse error
return false;
}
@@ -2066,7 +2177,7 @@ bool HTMLTreeBuilder::processCaptionEndTagForInCaption()
bool HTMLTreeBuilder::processTrEndTagForInRow()
{
if (!m_tree.openElements()->inTableScope(trTag.localName())) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
// FIXME: parse error
return false;
}
@@ -2080,7 +2191,7 @@ bool HTMLTreeBuilder::processTrEndTagForInRow()
bool HTMLTreeBuilder::processTableEndTagForInTable()
{
if (!m_tree.openElements()->inTableScope(tableTag)) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
// FIXME: parse error.
return false;
}
@@ -2172,7 +2283,7 @@ void HTMLTreeBuilder::processEndTag(AtomicHTMLToken& token)
if (token.name() == tableTag) {
parseError(token);
if (!processCaptionEndTagForInCaption()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
processEndTag(token);
@@ -2201,7 +2312,7 @@ void HTMLTreeBuilder::processEndTag(AtomicHTMLToken& token)
return;
}
if (!processColgroupEndTagForInColumnGroup()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
processEndTag(token);
@@ -2221,7 +2332,7 @@ void HTMLTreeBuilder::processEndTag(AtomicHTMLToken& token)
case AfterBodyMode:
ASSERT(insertionMode() == AfterBodyMode);
if (token.name() == htmlTag) {
- if (m_isParsingFragment) {
+ if (isParsingFragment()) {
parseError(token);
return;
}
@@ -2273,7 +2384,7 @@ void HTMLTreeBuilder::processEndTag(AtomicHTMLToken& token)
return;
}
m_tree.openElements()->pop();
- if (!m_isParsingFragment && !m_tree.currentElement()->hasTagName(framesetTag))
+ if (!isParsingFragment() && !m_tree.currentElement()->hasTagName(framesetTag))
setInsertionMode(AfterFramesetMode);
return;
}
@@ -2491,7 +2602,7 @@ ReprocessBuffer:
m_tree.reconstructTheActiveFormattingElements();
String characters = buffer.takeRemaining();
m_tree.insertTextNode(characters);
- if (m_framesetOk && hasNonWhitespace(characters))
+ if (m_framesetOk && !isAllWhitespaceOrReplacementCharacters(characters))
m_framesetOk = false;
break;
}
@@ -2516,7 +2627,7 @@ ReprocessBuffer:
if (buffer.isEmpty())
return;
if (!processColgroupEndTagForInColumnGroup()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
goto ReprocessBuffer;
@@ -2565,7 +2676,7 @@ ReprocessBuffer:
ASSERT(insertionMode() == InForeignContentMode);
String characters = buffer.takeRemaining();
m_tree.insertTextNode(characters);
- if (m_framesetOk && hasNonWhitespace(characters))
+ if (m_framesetOk && !isAllWhitespace(characters))
m_framesetOk = false;
break;
}
@@ -2636,11 +2747,11 @@ void HTMLTreeBuilder::processEndOfFile(AtomicHTMLToken& token)
break;
case InColumnGroupMode:
if (m_tree.currentElement() == m_tree.openElements()->htmlElement()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
if (!processColgroupEndTagForInColumnGroup()) {
- ASSERT(m_isParsingFragment);
+ ASSERT(isParsingFragment());
return;
}
processEndOfFile(token);
@@ -2709,7 +2820,7 @@ void HTMLTreeBuilder::defaultForAfterHead()
void HTMLTreeBuilder::defaultForInTableText()
{
String characters = String::adopt(m_pendingTableCharacters);
- if (hasNonWhitespace(characters)) {
+ if (!isAllWhitespace(characters)) {
// FIXME: parse error
HTMLConstructionSite::RedirectToFosterParentGuard redirecter(m_tree);
m_tree.reconstructTheActiveFormattingElements();
@@ -2744,7 +2855,7 @@ bool HTMLTreeBuilder::processStartTagForInHead(AtomicHTMLToken& token)
return true;
}
if (token.name() == noscriptTag) {
- if (isScriptingFlagEnabled(m_document->frame())) {
+ if (scriptEnabled(m_document->frame())) {
processGenericRawTextStartTag(token);
return true;
}
@@ -2804,12 +2915,16 @@ void HTMLTreeBuilder::finished()
return;
}
+ if (isParsingFragment()) {
+ m_fragmentContext.finished();
+ return;
+ }
+
// Warning, this may delete the parser, so don't try to do anything else after this.
- if (!m_isParsingFragment)
- m_document->finishedParsing();
+ m_document->finishedParsing();
}
-bool HTMLTreeBuilder::isScriptingFlagEnabled(Frame* frame)
+bool HTMLTreeBuilder::scriptEnabled(Frame* frame)
{
if (!frame)
return false;
@@ -2818,4 +2933,11 @@ bool HTMLTreeBuilder::isScriptingFlagEnabled(Frame* frame)
return false;
}
+bool HTMLTreeBuilder::pluginsEnabled(Frame* frame)
+{
+ if (!frame)
+ return false;
+ return frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin);
+}
+
}
diff --git a/WebCore/html/HTMLTreeBuilder.h b/WebCore/html/HTMLTreeBuilder.h
index d723384..24cb542 100644
--- a/WebCore/html/HTMLTreeBuilder.h
+++ b/WebCore/html/HTMLTreeBuilder.h
@@ -54,7 +54,7 @@ class HTMLTreeBuilder : public Noncopyable {
public:
// FIXME: Replace constructors with create() functions returning PassOwnPtrs
HTMLTreeBuilder(HTMLTokenizer*, HTMLDocument*, bool reportErrors);
- HTMLTreeBuilder(HTMLTokenizer*, DocumentFragment*, FragmentScriptingPermission);
+ HTMLTreeBuilder(HTMLTokenizer*, DocumentFragment*, Element* contextElement, FragmentScriptingPermission);
~HTMLTreeBuilder();
void setPaused(bool paused) { m_isPaused = paused; }
@@ -74,6 +74,9 @@ public:
// until we stop using the legacy parser. DO NOT CALL THIS METHOD.
LegacyHTMLTreeBuilder* legacyTreeBuilder() const { return m_legacyTreeBuilder.get(); }
+ static bool scriptEnabled(Frame*);
+ static bool pluginsEnabled(Frame*);
+
private:
class FakeInsertionMode;
class ExternalCharacterTokenBuffer;
@@ -105,6 +108,8 @@ private:
AfterAfterFramesetMode,
};
+ bool isParsingFragment() const { return !!m_fragmentContext.fragment(); }
+
void passTokenToLegacyParser(HTMLToken&);
void processToken(AtomicHTMLToken&);
@@ -192,7 +197,31 @@ private:
void setInsertionModeAndEnd(InsertionMode, bool foreign); // Helper for resetInsertionModeAppropriately
void resetInsertionModeAppropriately();
- static bool isScriptingFlagEnabled(Frame* frame);
+ class FragmentParsingContext : public Noncopyable {
+ public:
+ FragmentParsingContext();
+ FragmentParsingContext(DocumentFragment*, Element* contextElement, FragmentScriptingPermission, bool usingLegacyTreeBuilder);
+ ~FragmentParsingContext();
+
+ Document* document() const;
+ DocumentFragment* fragment() const { return m_fragment; }
+ Element* contextElement() const { ASSERT(m_fragment); ASSERT(!m_usingLegacyTreeBuilder); return m_contextElement; }
+ FragmentScriptingPermission scriptingPermission() const { ASSERT(m_fragment); return m_scriptingPermission; }
+
+ void finished();
+
+ private:
+ RefPtr<Document> m_dummyDocumentForFragmentParsing;
+ DocumentFragment* m_fragment;
+ Element* m_contextElement;
+ bool m_usingLegacyTreeBuilder;
+
+ // FragmentScriptingNotAllowed causes the Parser to remove children
+ // from <script> tags (so javascript doesn't show up in pastes).
+ FragmentScriptingPermission m_scriptingPermission;
+ };
+
+ FragmentParsingContext m_fragmentContext;
Document* m_document;
HTMLConstructionSite m_tree;
@@ -225,12 +254,6 @@ private:
RefPtr<Element> m_scriptToProcess; // <script> tag which needs processing before resuming the parser.
int m_scriptToProcessStartLine; // Starting line number of the script tag needing processing.
-
- // FIXME: FragmentScriptingPermission is a HACK for platform/Pasteboard.
- // FragmentScriptingNotAllowed causes the Parser to remove children
- // from <script> tags (so javascript doesn't show up in pastes).
- FragmentScriptingPermission m_fragmentScriptingPermission;
- bool m_isParsingFragment;
};
}
diff --git a/WebCore/html/HTMLVideoElement.cpp b/WebCore/html/HTMLVideoElement.cpp
index bfdf241..ed2d35c 100644
--- a/WebCore/html/HTMLVideoElement.cpp
+++ b/WebCore/html/HTMLVideoElement.cpp
@@ -47,7 +47,6 @@ using namespace HTMLNames;
inline HTMLVideoElement::HTMLVideoElement(const QualifiedName& tagName, Document* document)
: HTMLMediaElement(tagName, document)
- , m_shouldDisplayPosterImage(false)
{
ASSERT(hasTagName(videoTag));
}
@@ -74,8 +73,8 @@ void HTMLVideoElement::attach()
HTMLMediaElement::attach();
#if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
- updatePosterImage();
- if (m_shouldDisplayPosterImage) {
+ updateDisplayState();
+ if (shouldDisplayPosterImage()) {
if (!m_imageLoader)
m_imageLoader.set(new HTMLImageLoader(this));
m_imageLoader->updateFromElement();
@@ -91,9 +90,8 @@ void HTMLVideoElement::detach()
{
HTMLMediaElement::detach();
- if (!m_shouldDisplayPosterImage)
- if (m_imageLoader)
- m_imageLoader.clear();
+ if (!shouldDisplayPosterImage() && m_imageLoader)
+ m_imageLoader.clear();
}
void HTMLVideoElement::parseMappedAttribute(Attribute* attr)
@@ -101,17 +99,21 @@ void HTMLVideoElement::parseMappedAttribute(Attribute* attr)
const QualifiedName& attrName = attr->name();
if (attrName == posterAttr) {
- updatePosterImage();
- if (m_shouldDisplayPosterImage) {
+ // Force a poster recalc by setting m_displayMode to Unknown directly before calling updateDisplayState.
+ HTMLMediaElement::setDisplayMode(Unknown);
+ updateDisplayState();
#if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
+ if (shouldDisplayPosterImage()) {
if (!m_imageLoader)
m_imageLoader.set(new HTMLImageLoader(this));
m_imageLoader->updateFromElementIgnoringPreviousError();
-#else
- if (player())
- player()->setPoster(getNonEmptyURLAttribute(posterAttr));
-#endif
+ } else {
+ if (m_imageLoader)
+ m_imageLoader.clear();
+ if (renderer())
+ toRenderImage(renderer())->setCachedImage(0);
}
+#endif
} else if (attrName == widthAttr)
addCSSLength(attr, CSSPropertyWidth, attr->value());
else if (attrName == heightAttr)
@@ -172,20 +174,42 @@ const QualifiedName& HTMLVideoElement::imageSourceAttributeName() const
return posterAttr;
}
-void HTMLVideoElement::updatePosterImage()
+void HTMLVideoElement::setDisplayMode(DisplayMode mode)
{
-#if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
- bool oldShouldShowPosterImage = m_shouldDisplayPosterImage;
-#endif
+ DisplayMode oldMode = displayMode();
+ KURL poster = getNonEmptyURLAttribute(posterAttr);
+
+ if (!poster.isEmpty()) {
+ // We have a poster path, but only show it until the user triggers display by playing or seeking and the
+ // media engine has something to display.
+ if (mode == Video) {
+ if (oldMode != Video && player())
+ player()->prepareForRendering();
+ if (!hasAvailableVideoFrame())
+ mode = Poster;
+ }
+ } else if (oldMode != Video && player())
+ player()->prepareForRendering();
- m_shouldDisplayPosterImage = !getAttribute(posterAttr).isEmpty() && !hasAvailableVideoFrame();
+ HTMLMediaElement::setDisplayMode(mode);
+
+ if (player() && player()->canLoadPoster())
+ player()->setPoster(poster);
#if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
- if (renderer() && oldShouldShowPosterImage != m_shouldDisplayPosterImage)
+ if (renderer() && displayMode() != oldMode)
renderer()->updateFromElement();
#endif
}
+void HTMLVideoElement::updateDisplayState()
+{
+ if (getNonEmptyURLAttribute(posterAttr).isEmpty())
+ setDisplayMode(Video);
+ else if (displayMode() < Poster)
+ setDisplayMode(Poster);
+}
+
void HTMLVideoElement::paintCurrentFrameInContext(GraphicsContext* context, const IntRect& destRect)
{
MediaPlayer* player = HTMLMediaElement::player();
diff --git a/WebCore/html/HTMLVideoElement.h b/WebCore/html/HTMLVideoElement.h
index e7c3f34..04a0beb 100644
--- a/WebCore/html/HTMLVideoElement.h
+++ b/WebCore/html/HTMLVideoElement.h
@@ -55,11 +55,11 @@ public:
void webkitEnterFullScreen(bool isUserGesture, ExceptionCode& ec) { webkitEnterFullscreen(isUserGesture, ec); }
void webkitExitFullScreen() { webkitExitFullscreen(); }
- bool shouldDisplayPosterImage() const { return m_shouldDisplayPosterImage; }
-
// Used by canvas to gain raw pixel access
void paintCurrentFrameInContext(GraphicsContext*, const IntRect&);
+ bool shouldDisplayPosterImage() const { return displayMode() == Poster; }
+
private:
HTMLVideoElement(const QualifiedName&, Document*);
@@ -78,11 +78,14 @@ private:
virtual const QualifiedName& imageSourceAttributeName() const;
virtual bool hasAvailableVideoFrame() const;
- virtual void updatePosterImage();
+ virtual void updateDisplayState();
+
virtual void willMoveToNewOwnerDocument();
+ virtual void setDisplayMode(DisplayMode);
+
OwnPtr<HTMLImageLoader> m_imageLoader;
- bool m_shouldDisplayPosterImage;
+
};
} //namespace
diff --git a/WebCore/html/HTMLViewSourceDocument.cpp b/WebCore/html/HTMLViewSourceDocument.cpp
index 6cee27c..e1b959b 100644
--- a/WebCore/html/HTMLViewSourceDocument.cpp
+++ b/WebCore/html/HTMLViewSourceDocument.cpp
@@ -19,7 +19,7 @@
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
@@ -69,26 +69,26 @@ DocumentParser* HTMLViewSourceDocument::createParser()
void HTMLViewSourceDocument::createContainingTable()
{
RefPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(this);
- legacyParserAddChild(html);
+ parserAddChild(html);
html->attach();
RefPtr<HTMLBodyElement> body = HTMLBodyElement::create(this);
- html->legacyParserAddChild(body);
+ html->parserAddChild(body);
body->attach();
-
+
// Create a line gutter div that can be used to make sure the gutter extends down the height of the whole
// document.
RefPtr<HTMLDivElement> div = HTMLDivElement::create(this);
RefPtr<NamedNodeMap> attrs = NamedNodeMap::create();
attrs->addAttribute(Attribute::createMapped(classAttr, "webkit-line-gutter-backdrop"));
div->setAttributeMap(attrs.release());
- body->legacyParserAddChild(div);
+ body->parserAddChild(div);
div->attach();
RefPtr<HTMLTableElement> table = HTMLTableElement::create(this);
- body->legacyParserAddChild(table);
+ body->parserAddChild(table);
table->attach();
m_tbody = HTMLTableSectionElement::create(tbodyTag, this);
- table->legacyParserAddChild(m_tbody);
+ table->parserAddChild(m_tbody);
m_tbody->attach();
m_current = m_tbody;
}
@@ -137,7 +137,7 @@ void HTMLViewSourceDocument::addViewSourceToken(Token* token)
if (guide->at(i) == 'a' || guide->at(i) == 'x' || guide->at(i) == 'v') {
// Add in the string.
addText(String(static_cast<UChar*>(guide->data()) + begin, i - begin), classNameStr);
-
+
begin = i + 1;
if (guide->at(i) == 'a') {
@@ -149,7 +149,7 @@ void HTMLViewSourceDocument::addViewSourceToken(Token* token)
if (attr) {
if (guide->at(i) == 'a') {
String name = attr->name().toString();
-
+
m_current = addSpanWithClassName("webkit-html-attribute-name");
addText(name, "webkit-html-attribute-name");
if (m_current != m_tbody)
@@ -179,7 +179,7 @@ void HTMLViewSourceDocument::addViewSourceToken(Token* token)
}
}
}
-
+
// Add in any string that might be left.
if (begin < size)
addText(String(static_cast<UChar*>(guide->data()) + begin, size - begin), classNameStr);
@@ -187,7 +187,7 @@ void HTMLViewSourceDocument::addViewSourceToken(Token* token)
// Add in the end tag.
addText(">", classNameStr);
}
-
+
m_current = m_td;
}
}
@@ -214,7 +214,7 @@ PassRefPtr<Element> HTMLViewSourceDocument::addSpanWithClassName(const String& c
RefPtr<NamedNodeMap> attrs = NamedNodeMap::create();
attrs->addAttribute(Attribute::createMapped(classAttr, className));
span->setAttributeMap(attrs.release());
- m_current->legacyParserAddChild(span);
+ m_current->parserAddChild(span);
span->attach();
return span.release();
}
@@ -223,15 +223,15 @@ void HTMLViewSourceDocument::addLine(const String& className)
{
// Create a table row.
RefPtr<HTMLTableRowElement> trow = HTMLTableRowElement::create(this);
- m_tbody->legacyParserAddChild(trow);
+ m_tbody->parserAddChild(trow);
trow->attach();
-
+
// Create a cell that will hold the line number (it is generated in the stylesheet using counters).
RefPtr<HTMLTableCellElement> td = HTMLTableCellElement::create(tdTag, this);
RefPtr<NamedNodeMap> attrs = NamedNodeMap::create();
attrs->addAttribute(Attribute::createMapped(classAttr, "webkit-line-number"));
td->setAttributeMap(attrs.release());
- trow->legacyParserAddChild(td);
+ trow->parserAddChild(td);
td->attach();
// Create a second cell for the line contents
@@ -239,7 +239,7 @@ void HTMLViewSourceDocument::addLine(const String& className)
attrs = NamedNodeMap::create();
attrs->addAttribute(Attribute::createMapped(classAttr, "webkit-line-content"));
td->setAttributeMap(attrs.release());
- trow->legacyParserAddChild(td);
+ trow->parserAddChild(td);
td->attach();
m_current = m_td = td;
@@ -276,12 +276,12 @@ void HTMLViewSourceDocument::addText(const String& text, const String& className
if (m_current == m_tbody)
addLine(className);
RefPtr<Text> t = Text::create(this, substring);
- m_current->legacyParserAddChild(t);
+ m_current->parserAddChild(t);
t->attach();
if (i < size - 1)
m_current = m_tbody;
}
-
+
// Set current to m_tbody if the last character was a newline.
if (text[text.length() - 1] == '\n')
m_current = m_tbody;
@@ -291,7 +291,7 @@ PassRefPtr<Element> HTMLViewSourceDocument::addLink(const String& url, bool isAn
{
if (m_current == m_tbody)
addLine("webkit-html-tag");
-
+
// Now create a link for the attribute value instead of a span.
RefPtr<HTMLAnchorElement> anchor = HTMLAnchorElement::create(this);
RefPtr<NamedNodeMap> attrs = NamedNodeMap::create();
@@ -304,7 +304,7 @@ PassRefPtr<Element> HTMLViewSourceDocument::addLink(const String& url, bool isAn
attrs->addAttribute(Attribute::createMapped(targetAttr, "_blank"));
attrs->addAttribute(Attribute::createMapped(hrefAttr, url));
anchor->setAttributeMap(attrs.release());
- m_current->legacyParserAddChild(anchor);
+ m_current->parserAddChild(anchor);
anchor->attach();
return anchor.release();
}
diff --git a/WebCore/html/LegacyHTMLDocumentParser.cpp b/WebCore/html/LegacyHTMLDocumentParser.cpp
index cb5fac8..980d6ed 100644
--- a/WebCore/html/LegacyHTMLDocumentParser.cpp
+++ b/WebCore/html/LegacyHTMLDocumentParser.cpp
@@ -346,7 +346,7 @@ LegacyHTMLDocumentParser::State LegacyHTMLDocumentParser::parseNonHTMLText(Segme
if (state.inScript())
state = scriptHandler(state);
else {
- state = processListing(SegmentedString(m_scriptCode, m_scriptCodeSize), state);
+ state = processListing(SegmentedString(String(m_scriptCode, m_scriptCodeSize)), state);
processToken();
if (state.inStyle()) {
m_currentToken.tagName = styleTag.localName();
@@ -451,7 +451,7 @@ LegacyHTMLDocumentParser::State LegacyHTMLDocumentParser::scriptHandler(State st
}
}
- state = processListing(SegmentedString(m_scriptCode, m_scriptCodeSize), state);
+ state = processListing(SegmentedString(String(m_scriptCode, m_scriptCodeSize)), state);
RefPtr<Node> node = processToken();
if (node && m_scriptingPermission == FragmentScriptingNotAllowed) {
@@ -625,7 +625,7 @@ LegacyHTMLDocumentParser::State LegacyHTMLDocumentParser::parseComment(Segmented
m_scriptCode[m_scriptCodeSize + 1] = 0;
m_currentToken.tagName = commentAtom;
m_currentToken.beginTag = true;
- state = processListing(SegmentedString(m_scriptCode, m_scriptCodeSize - endCharsCount), state);
+ state = processListing(SegmentedString(String(m_scriptCode, m_scriptCodeSize - endCharsCount)), state);
processToken();
m_currentToken.tagName = commentAtom;
m_currentToken.beginTag = false;
diff --git a/WebCore/html/StepRange.h b/WebCore/html/StepRange.h
index 2f5013a..ce044ea 100644
--- a/WebCore/html/StepRange.h
+++ b/WebCore/html/StepRange.h
@@ -21,12 +21,12 @@
#ifndef StepRange_h
#define StepRange_h
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
namespace WebCore {
class HTMLInputElement;
-class String;
class StepRange : public Noncopyable {
public:
diff --git a/WebCore/html/ValidityState.cpp b/WebCore/html/ValidityState.cpp
index 6a159e8..e286b64 100644
--- a/WebCore/html/ValidityState.cpp
+++ b/WebCore/html/ValidityState.cpp
@@ -66,6 +66,12 @@ String ValidityState::validationMessage() const
return String();
}
+void ValidityState::setCustomErrorMessage(const String& message)
+{
+ m_customErrorMessage = message;
+ m_control->setNeedsValidityCheck();
+}
+
bool ValidityState::typeMismatch() const
{
if (!m_control->hasTagName(inputTag))
diff --git a/WebCore/html/ValidityState.h b/WebCore/html/ValidityState.h
index 78238f1..04f11a1 100644
--- a/WebCore/html/ValidityState.h
+++ b/WebCore/html/ValidityState.h
@@ -41,7 +41,7 @@ public:
String validationMessage() const;
- void setCustomErrorMessage(const String& message) { m_customErrorMessage = message; }
+ void setCustomErrorMessage(const String&);
bool valueMissing() const { return m_control->valueMissing(); }
bool typeMismatch() const;
diff --git a/WebCore/html/canvas/ArrayBuffer.cpp b/WebCore/html/canvas/ArrayBuffer.cpp
index 0ba2ffd..3b204ff 100644
--- a/WebCore/html/canvas/ArrayBuffer.cpp
+++ b/WebCore/html/canvas/ArrayBuffer.cpp
@@ -53,26 +53,32 @@ PassRefPtr<ArrayBuffer> ArrayBuffer::create(ArrayBuffer* other)
ArrayBuffer::ArrayBuffer(void* data, unsigned sizeInBytes)
: m_sizeInBytes(sizeInBytes)
- , m_data(data) {
+ , m_data(data)
+{
}
-void* ArrayBuffer::data() {
+void* ArrayBuffer::data()
+{
return m_data;
}
-const void* ArrayBuffer::data() const {
+const void* ArrayBuffer::data() const
+{
return m_data;
}
-unsigned ArrayBuffer::byteLength() const {
+unsigned ArrayBuffer::byteLength() const
+{
return m_sizeInBytes;
}
-ArrayBuffer::~ArrayBuffer() {
+ArrayBuffer::~ArrayBuffer()
+{
WTF::fastFree(m_data);
}
-void* ArrayBuffer::tryAllocate(unsigned numElements, unsigned elementByteSize) {
+void* ArrayBuffer::tryAllocate(unsigned numElements, unsigned elementByteSize)
+{
void* result;
// Do not allow 32-bit overflow of the total size
if (numElements) {
diff --git a/WebCore/html/canvas/ArrayBufferView.cpp b/WebCore/html/canvas/ArrayBufferView.cpp
index 787fd61..bd22f88 100644
--- a/WebCore/html/canvas/ArrayBufferView.cpp
+++ b/WebCore/html/canvas/ArrayBufferView.cpp
@@ -28,6 +28,7 @@
#if ENABLE(3D_CANVAS)
#include "ArrayBufferView.h"
+
#include "ArrayBuffer.h"
namespace WebCore {
@@ -46,9 +47,9 @@ ArrayBufferView::~ArrayBufferView()
void ArrayBufferView::setImpl(ArrayBufferView* array, unsigned byteOffset, ExceptionCode& ec)
{
- if (byteOffset > byteLength() ||
- byteOffset + array->byteLength() > byteLength() ||
- byteOffset + array->byteLength() < byteOffset) {
+ if (byteOffset > byteLength()
+ || byteOffset + array->byteLength() > byteLength()
+ || byteOffset + array->byteLength() < byteOffset) {
// Out of range offset or overflow
ec = INDEX_SIZE_ERR;
return;
diff --git a/WebCore/html/canvas/ArrayBufferView.h b/WebCore/html/canvas/ArrayBufferView.h
index dcf6d13..29ad691 100644
--- a/WebCore/html/canvas/ArrayBufferView.h
+++ b/WebCore/html/canvas/ArrayBufferView.h
@@ -26,13 +26,14 @@
#ifndef ArrayBufferView_h
#define ArrayBufferView_h
-#include <algorithm>
+#include "ArrayBuffer.h"
#include "ExceptionCode.h"
+
+#include <algorithm>
#include <limits.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
-#include "ArrayBuffer.h"
namespace WebCore {
diff --git a/WebCore/html/canvas/CanvasGradient.h b/WebCore/html/canvas/CanvasGradient.h
index 0a77652..7550f9b 100644
--- a/WebCore/html/canvas/CanvasGradient.h
+++ b/WebCore/html/canvas/CanvasGradient.h
@@ -28,13 +28,12 @@
#define CanvasGradient_h
#include "Gradient.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
- class String;
-
typedef int ExceptionCode;
class CanvasGradient : public RefCounted<CanvasGradient> {
diff --git a/WebCore/html/canvas/CanvasNumberArray.h b/WebCore/html/canvas/CanvasNumberArray.h
index eb79866..09714a0 100644
--- a/WebCore/html/canvas/CanvasNumberArray.h
+++ b/WebCore/html/canvas/CanvasNumberArray.h
@@ -26,6 +26,7 @@
#ifndef CanvasNumberArray_h
#define CanvasNumberArray_h
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
@@ -33,8 +34,6 @@
namespace WebCore {
- class String;
-
class CanvasNumberArray : public RefCounted<CanvasNumberArray> {
public:
static PassRefPtr<CanvasNumberArray> create(unsigned length);
diff --git a/WebCore/html/canvas/CanvasObject.h b/WebCore/html/canvas/CanvasObject.h
deleted file mode 100644
index 6f89f12..0000000
--- a/WebCore/html/canvas/CanvasObject.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CanvasObject_h
-#define CanvasObject_h
-
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-#include "GraphicsContext3D.h"
-
-namespace WebCore {
-
- class WebGLRenderingContext;
-
- class CanvasObject : public RefCounted<CanvasObject> {
- public:
- virtual ~CanvasObject();
-
- Platform3DObject object() const { return m_object; }
- void setObject(Platform3DObject, bool shouldDeleteObject = true);
- void deleteObject();
-
- void detachContext()
- {
- deleteObject();
- m_context = 0;
- }
-
- WebGLRenderingContext* context() const { return m_context; }
-
- virtual bool isBuffer() const { return false; }
- virtual bool isFramebuffer() const { return false; }
- virtual bool isProgram() const { return false; }
- virtual bool isRenderbuffer() const { return false; }
- virtual bool isShader() const { return false; }
- virtual bool isTexture() const { return false; }
-
- protected:
- CanvasObject(WebGLRenderingContext*);
- virtual void _deleteObject(Platform3DObject) = 0;
-
- private:
- Platform3DObject m_object;
- // The shouldDeleteObject flag indicates whether this wrapper
- // owns the underlying resource and should delete it when the
- // wrapper is unreferenced for the last time and deleted. It
- // is only set to false for certain objects returned from get
- // queries. FIXME: should consider canonicalizing all of these
- // objects in the future.
- bool m_shouldDeleteObject;
- WebGLRenderingContext* m_context;
- };
-
-} // namespace WebCore
-
-#endif // CanvasObject_h
diff --git a/WebCore/html/canvas/CanvasPattern.h b/WebCore/html/canvas/CanvasPattern.h
index 6c012d1..91e0794 100644
--- a/WebCore/html/canvas/CanvasPattern.h
+++ b/WebCore/html/canvas/CanvasPattern.h
@@ -27,13 +27,13 @@
#define CanvasPattern_h
#include "Pattern.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
class Image;
- class String;
typedef int ExceptionCode;
diff --git a/WebCore/html/canvas/CanvasRenderingContext.h b/WebCore/html/canvas/CanvasRenderingContext.h
index 2ee1693..cb26363 100644
--- a/WebCore/html/canvas/CanvasRenderingContext.h
+++ b/WebCore/html/canvas/CanvasRenderingContext.h
@@ -30,7 +30,8 @@
namespace WebCore {
- class CanvasObject;
+ class WebGLObject;
+ class GraphicsContext3D;
class HTMLCanvasElement;
class CanvasRenderingContext : public Noncopyable {
@@ -47,6 +48,12 @@ namespace WebCore {
virtual bool is2d() const { return false; }
virtual bool is3d() const { return false; }
virtual bool isAccelerated() const { return false; }
+
+ // For accelerated canvases, returns a pointer to the underlying GraphicsContext3D.
+ // For non accelerated canvases returns 0.
+ virtual GraphicsContext3D* graphicsContext3D() const { return 0; }
+
+ virtual void paintRenderingResultsToCanvas() {}
private:
HTMLCanvasElement* m_canvas;
diff --git a/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/WebCore/html/canvas/CanvasRenderingContext2D.cpp
index 3b05348..559ddda 100644
--- a/WebCore/html/canvas/CanvasRenderingContext2D.cpp
+++ b/WebCore/html/canvas/CanvasRenderingContext2D.cpp
@@ -58,7 +58,13 @@
#include "StrokeStyleApplier.h"
#include "TextMetrics.h"
-#include <stdio.h>
+#if ENABLE(ACCELERATED_2D_CANVAS)
+#include "FrameView.h"
+#include "GraphicsContext3D.h"
+#if USE(ACCELERATED_COMPOSITING)
+#include "RenderLayer.h"
+#endif
+#endif
#include <wtf/ByteArray.h>
#include <wtf/MathExtras.h>
@@ -100,6 +106,9 @@ CanvasRenderingContext2D::CanvasRenderingContext2D(HTMLCanvasElement* canvas, bo
#if ENABLE(DASHBOARD_SUPPORT)
, m_usesDashboardCompatibilityMode(usesDashboardCompatibilityMode)
#endif
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ , m_context3D(0)
+#endif
{
#if !ENABLE(DASHBOARD_SUPPORT)
ASSERT_UNUSED(usesDashboardCompatibilityMode, !usesDashboardCompatibilityMode);
@@ -108,17 +117,53 @@ CanvasRenderingContext2D::CanvasRenderingContext2D(HTMLCanvasElement* canvas, bo
// Make sure that even if the drawingContext() has a different default
// thickness, it is in sync with the canvas thickness.
setLineWidth(lineWidth());
+
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ Page* p = canvas->document()->page();
+ if (!p)
+ return;
+ if (!p->settings()->accelerated2dCanvasEnabled())
+ return;
+ if (FrameView* view = canvas->document()->view()) {
+ if (ScrollView* rootView = view->root()) {
+ if (HostWindow* hostWindow = view->root()->hostWindow()) {
+ // Set up our context
+ GraphicsContext3D::Attributes attr;
+ attr.stencil = true;
+ m_context3D = GraphicsContext3D::create(attr, hostWindow);
+ if (m_context3D)
+ if (GraphicsContext* c = drawingContext())
+ c->setGraphicsContext3D(m_context3D.get(), IntSize(canvas->width(), canvas->height()));
+ }
+ }
+ }
+#endif
}
CanvasRenderingContext2D::~CanvasRenderingContext2D()
{
}
+bool CanvasRenderingContext2D::isAccelerated() const
+{
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ return m_context3D;
+#else
+ return false;
+#endif
+}
+
void CanvasRenderingContext2D::reset()
{
m_stateStack.resize(1);
m_stateStack.first() = State();
m_path.clear();
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ if (m_context3D) {
+ if (GraphicsContext* c = drawingContext())
+ c->setGraphicsContext3D(m_context3D.get(), IntSize(canvas()->width(), canvas()->height()));
+ }
+#endif
}
CanvasRenderingContext2D::State::State()
@@ -511,6 +556,8 @@ void CanvasRenderingContext2D::setStrokeColor(const String& color)
void CanvasRenderingContext2D::setStrokeColor(float grayLevel)
{
+ if (state().m_strokeStyle && state().m_strokeStyle->isEquivalentColor(grayLevel, grayLevel, grayLevel, 1.0f))
+ return;
setStrokeStyle(CanvasStyle::create(grayLevel, 1));
}
@@ -521,16 +568,22 @@ void CanvasRenderingContext2D::setStrokeColor(const String& color, float alpha)
void CanvasRenderingContext2D::setStrokeColor(float grayLevel, float alpha)
{
+ if (state().m_strokeStyle && state().m_strokeStyle->isEquivalentColor(grayLevel, grayLevel, grayLevel, alpha))
+ return;
setStrokeStyle(CanvasStyle::create(grayLevel, alpha));
}
void CanvasRenderingContext2D::setStrokeColor(float r, float g, float b, float a)
{
+ if (state().m_strokeStyle && state().m_strokeStyle->isEquivalentColor(r, g, b, a))
+ return;
setStrokeStyle(CanvasStyle::create(r, g, b, a));
}
void CanvasRenderingContext2D::setStrokeColor(float c, float m, float y, float k, float a)
{
+ if (state().m_strokeStyle && state().m_strokeStyle->isEquivalentColor(c, m, y, k, a))
+ return;
setStrokeStyle(CanvasStyle::create(c, m, y, k, a));
}
@@ -544,6 +597,8 @@ void CanvasRenderingContext2D::setFillColor(const String& color)
void CanvasRenderingContext2D::setFillColor(float grayLevel)
{
+ if (state().m_fillStyle && state().m_fillStyle->isEquivalentColor(grayLevel, grayLevel, grayLevel, 1.0f))
+ return;
setFillStyle(CanvasStyle::create(grayLevel, 1));
}
@@ -554,16 +609,22 @@ void CanvasRenderingContext2D::setFillColor(const String& color, float alpha)
void CanvasRenderingContext2D::setFillColor(float grayLevel, float alpha)
{
+ if (state().m_fillStyle && state().m_fillStyle->isEquivalentColor(grayLevel, grayLevel, grayLevel, alpha))
+ return;
setFillStyle(CanvasStyle::create(grayLevel, alpha));
}
void CanvasRenderingContext2D::setFillColor(float r, float g, float b, float a)
{
+ if (state().m_fillStyle && state().m_fillStyle->isEquivalentColor(r, g, b, a))
+ return;
setFillStyle(CanvasStyle::create(r, g, b, a));
}
void CanvasRenderingContext2D::setFillColor(float c, float m, float y, float k, float a)
{
+ if (state().m_fillStyle && state().m_fillStyle->isEquivalentColor(c, m, y, k, a))
+ return;
setFillStyle(CanvasStyle::create(c, m, y, k, a));
}
@@ -1434,7 +1495,14 @@ void CanvasRenderingContext2D::willDraw(const FloatRect& r, unsigned options)
// we'd have to keep the clip path around.
}
- canvas()->willDraw(dirtyRect);
+#if ENABLE(ACCELERATED_2D_CANVAS) && USE(ACCELERATED_COMPOSITING)
+ // If we are drawing to hardware and we have a composited layer, just call rendererContentChanged().
+ RenderBox* renderBox = canvas()->renderBox();
+ if (m_context3D && renderBox && renderBox->hasLayer() && renderBox->layer()->hasAcceleratedCompositing())
+ renderBox->layer()->rendererContentChanged();
+ else
+#endif
+ canvas()->willDraw(dirtyRect);
}
GraphicsContext* CanvasRenderingContext2D::drawingContext() const
@@ -1772,4 +1840,11 @@ const Font& CanvasRenderingContext2D::accessFont()
return state().m_font;
}
+void CanvasRenderingContext2D::paintRenderingResultsToCanvas()
+{
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ drawingContext()->syncSoftwareCanvas();
+#endif
+}
+
} // namespace WebCore
diff --git a/WebCore/html/canvas/CanvasRenderingContext2D.h b/WebCore/html/canvas/CanvasRenderingContext2D.h
index 22ed7fc..f610250 100644
--- a/WebCore/html/canvas/CanvasRenderingContext2D.h
+++ b/WebCore/html/canvas/CanvasRenderingContext2D.h
@@ -42,6 +42,10 @@
#include <ApplicationServices/ApplicationServices.h>
#endif
+#if USE(ACCELERATED_COMPOSITING)
+#include "GraphicsLayer.h"
+#endif
+
namespace WebCore {
class CanvasGradient;
@@ -56,6 +60,10 @@ class ImageData;
class KURL;
class TextMetrics;
+#if ENABLE(ACCELERATED_2D_CANVAS)
+class GraphicsContext3D;
+#endif
+
typedef int ExceptionCode;
class CanvasRenderingContext2D : public CanvasRenderingContext {
@@ -65,6 +73,7 @@ public:
virtual ~CanvasRenderingContext2D();
virtual bool is2d() const { return true; }
+ virtual bool isAccelerated() const;
CanvasStyle* strokeStyle() const;
void setStrokeStyle(PassRefPtr<CanvasStyle>);
@@ -212,6 +221,12 @@ public:
LineCap getLineCap() const { return state().m_lineCap; }
LineJoin getLineJoin() const { return state().m_lineJoin; }
+ virtual void paintRenderingResultsToCanvas();
+
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ virtual GraphicsContext3D* graphicsContext3D() const { return m_context3D.get(); }
+#endif
+
private:
struct State {
State();
@@ -281,6 +296,10 @@ private:
#if ENABLE(DASHBOARD_SUPPORT)
bool m_usesDashboardCompatibilityMode;
#endif
+
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ OwnPtr<GraphicsContext3D> m_context3D;
+#endif
};
} // namespace WebCore
diff --git a/WebCore/html/canvas/CanvasStyle.cpp b/WebCore/html/canvas/CanvasStyle.cpp
index 1ae5236..52b31c8 100644
--- a/WebCore/html/canvas/CanvasStyle.cpp
+++ b/WebCore/html/canvas/CanvasStyle.cpp
@@ -144,6 +144,26 @@ bool CanvasStyle::isEquivalentColor(const CanvasStyle& other) const
return false;
}
+bool CanvasStyle::isEquivalentColor(float r, float g, float b, float a) const
+{
+ if (m_type != RGBA)
+ return false;
+
+ return m_rgba == makeRGBA32FromFloats(r, g, b, a);
+}
+
+bool CanvasStyle::isEquivalentColor(float c, float m, float y, float k, float a) const
+{
+ if (m_type != CMYKA)
+ return false;
+
+ return c == m_cmyka.c
+ && m == m_cmyka.m
+ && y == m_cmyka.y
+ && k == m_cmyka.k
+ && a == m_cmyka.a;
+}
+
void CanvasStyle::applyStrokeColor(GraphicsContext* context)
{
if (!context)
diff --git a/WebCore/html/canvas/CanvasStyle.h b/WebCore/html/canvas/CanvasStyle.h
index 76ba6ef..8e47e63 100644
--- a/WebCore/html/canvas/CanvasStyle.h
+++ b/WebCore/html/canvas/CanvasStyle.h
@@ -56,6 +56,8 @@ namespace WebCore {
void applyStrokeColor(GraphicsContext*);
bool isEquivalentColor(const CanvasStyle&) const;
+ bool isEquivalentColor(float r, float g, float b, float a) const;
+ bool isEquivalentColor(float c, float m, float y, float k, float a) const;
private:
CanvasStyle(RGBA32 rgba);
diff --git a/WebCore/html/canvas/TypedArrayBase.h b/WebCore/html/canvas/TypedArrayBase.h
index a8bebd9..c55896b 100644
--- a/WebCore/html/canvas/TypedArrayBase.h
+++ b/WebCore/html/canvas/TypedArrayBase.h
@@ -27,8 +27,8 @@
#ifndef TypedArrayBase_h
#define TypedArrayBase_h
-#include "ArrayBufferView.h"
#include "ArrayBuffer.h"
+#include "ArrayBufferView.h"
namespace WebCore {
diff --git a/WebCore/html/canvas/WebGLBuffer.cpp b/WebCore/html/canvas/WebGLBuffer.cpp
index e449052..fc98a9d 100644
--- a/WebCore/html/canvas/WebGLBuffer.cpp
+++ b/WebCore/html/canvas/WebGLBuffer.cpp
@@ -28,6 +28,8 @@
#if ENABLE(3D_CANVAS)
#include "WebGLBuffer.h"
+
+#include "CheckedInt.h"
#include "WebGLRenderingContext.h"
namespace WebCore {
@@ -38,7 +40,7 @@ PassRefPtr<WebGLBuffer> WebGLBuffer::create(WebGLRenderingContext* ctx)
}
WebGLBuffer::WebGLBuffer(WebGLRenderingContext* ctx)
- : CanvasObject(ctx)
+ : WebGLObject(ctx)
, m_target(0)
, m_byteLength(0)
, m_nextAvailableCacheEntry(0)
@@ -47,153 +49,116 @@ WebGLBuffer::WebGLBuffer(WebGLRenderingContext* ctx)
clearCachedMaxIndices();
}
-void WebGLBuffer::_deleteObject(Platform3DObject object)
+void WebGLBuffer::deleteObjectImpl(Platform3DObject object)
{
context()->graphicsContext3D()->deleteBuffer(object);
}
-bool WebGLBuffer::associateBufferData(int size)
+bool WebGLBuffer::associateBufferDataImpl(ArrayBuffer* array, unsigned byteOffset, unsigned byteLength)
{
- if (!m_target)
- return false;
+ if (array && byteLength) {
+ CheckedInt<uint32_t> checkedOffset(byteOffset);
+ CheckedInt<uint32_t> checkedLength(byteLength);
+ CheckedInt<uint32_t> checkedMax = checkedOffset + checkedLength;
+ if (!checkedMax.valid() || checkedMax.value() > array->byteLength())
+ return false;
+ }
- if (m_target == GraphicsContext3D::ELEMENT_ARRAY_BUFFER) {
- m_byteLength = size;
+ switch (m_target) {
+ case GraphicsContext3D::ELEMENT_ARRAY_BUFFER:
+ m_byteLength = byteLength;
clearCachedMaxIndices();
- m_elementArrayBuffer = ArrayBuffer::create(size, 1);
- if (!m_elementArrayBuffer) {
- m_byteLength = 0;
- return false;
- }
+ if (byteLength) {
+ m_elementArrayBuffer = ArrayBuffer::create(byteLength, 1);
+ if (!m_elementArrayBuffer) {
+ m_byteLength = 0;
+ return false;
+ }
+ if (array) {
+ // We must always clone the incoming data because client-side
+ // modifications without calling bufferData or bufferSubData
+ // must never be able to change the validation results.
+ memcpy(static_cast<unsigned char*>(m_elementArrayBuffer->data()),
+ static_cast<unsigned char*>(array->data()) + byteOffset,
+ byteLength);
+ }
+ } else
+ m_elementArrayBuffer = 0;
return true;
- } else if (m_target == GraphicsContext3D::ARRAY_BUFFER) {
- m_byteLength = size;
+ case GraphicsContext3D::ARRAY_BUFFER:
+ m_byteLength = byteLength;
return true;
+ default:
+ return false;
}
+}
- return false;
+bool WebGLBuffer::associateBufferData(int size)
+{
+ if (size < 0)
+ return false;
+ return associateBufferDataImpl(0, 0, static_cast<unsigned>(size));
}
bool WebGLBuffer::associateBufferData(ArrayBuffer* array)
{
- if (!m_target)
- return false;
if (!array)
return false;
-
- if (m_target == GraphicsContext3D::ELEMENT_ARRAY_BUFFER) {
- clearCachedMaxIndices();
- m_byteLength = array->byteLength();
- // We must always clone the incoming data because client-side
- // modifications without calling bufferData or bufferSubData
- // must never be able to change the validation results.
- m_elementArrayBuffer = ArrayBuffer::create(array);
- if (!m_elementArrayBuffer) {
- m_byteLength = 0;
- return false;
- }
- return true;
- }
-
- if (m_target == GraphicsContext3D::ARRAY_BUFFER) {
- m_byteLength = array->byteLength();
- return true;
- }
-
- return false;
+ return associateBufferDataImpl(array, 0, array->byteLength());
}
bool WebGLBuffer::associateBufferData(ArrayBufferView* array)
{
- if (!m_target)
- return false;
if (!array)
return false;
+ return associateBufferDataImpl(array->buffer().get(), array->byteOffset(), array->byteLength());
+}
- if (m_target == GraphicsContext3D::ELEMENT_ARRAY_BUFFER) {
- clearCachedMaxIndices();
- m_byteLength = array->byteLength();
- // We must always clone the incoming data because client-side
- // modifications without calling bufferData or bufferSubData
- // must never be able to change the validation results.
- m_elementArrayBuffer = ArrayBuffer::create(array->buffer().get());
- if (!m_elementArrayBuffer) {
- m_byteLength = 0;
+bool WebGLBuffer::associateBufferSubDataImpl(long offset, ArrayBuffer* array, unsigned arrayByteOffset, unsigned byteLength)
+{
+ if (!array || offset < 0)
+ return false;
+
+ if (byteLength) {
+ CheckedInt<uint32_t> checkedBufferOffset(offset);
+ CheckedInt<uint32_t> checkedArrayOffset(arrayByteOffset);
+ CheckedInt<uint32_t> checkedLength(byteLength);
+ CheckedInt<uint32_t> checkedArrayMax = checkedArrayOffset + checkedLength;
+ CheckedInt<uint32_t> checkedBufferMax = checkedBufferOffset + checkedLength;
+ if (!checkedArrayMax.valid() || checkedArrayMax.value() > array->byteLength() || !checkedBufferMax.valid() || checkedBufferMax.value() > m_byteLength)
return false;
- }
- return true;
}
- if (m_target == GraphicsContext3D::ARRAY_BUFFER) {
- m_byteLength = array->byteLength();
+ switch (m_target) {
+ case GraphicsContext3D::ELEMENT_ARRAY_BUFFER:
+ clearCachedMaxIndices();
+ if (byteLength) {
+ if (!m_elementArrayBuffer)
+ return false;
+ memcpy(static_cast<unsigned char*>(m_elementArrayBuffer->data()) + offset,
+ static_cast<unsigned char*>(array->data()) + arrayByteOffset,
+ byteLength);
+ }
return true;
+ case GraphicsContext3D::ARRAY_BUFFER:
+ return true;
+ default:
+ return false;
}
-
- return false;
}
bool WebGLBuffer::associateBufferSubData(long offset, ArrayBuffer* array)
{
- if (!m_target)
- return false;
if (!array)
return false;
-
- if (m_target == GraphicsContext3D::ELEMENT_ARRAY_BUFFER) {
- clearCachedMaxIndices();
-
- // We need to protect against integer overflow with these tests
- if (offset < 0)
- return false;
-
- unsigned long uoffset = static_cast<unsigned long>(offset);
- if (uoffset > m_byteLength || array->byteLength() > m_byteLength - uoffset)
- return false;
-
- if (!m_elementArrayBuffer)
- return false;
-
- memcpy(static_cast<unsigned char*>(m_elementArrayBuffer->data()) + offset,
- static_cast<unsigned char*>(array->data()),
- array->byteLength());
- return true;
- }
-
- if (m_target == GraphicsContext3D::ARRAY_BUFFER)
- return array->byteLength() + offset <= m_byteLength;
-
- return false;
+ return associateBufferSubDataImpl(offset, array, 0, array->byteLength());
}
bool WebGLBuffer::associateBufferSubData(long offset, ArrayBufferView* array)
{
- if (!m_target)
- return false;
if (!array)
return false;
-
- if (m_target == GraphicsContext3D::ELEMENT_ARRAY_BUFFER) {
- clearCachedMaxIndices();
-
- // We need to protect against integer overflow with these tests
- if (offset < 0)
- return false;
-
- unsigned long uoffset = static_cast<unsigned long>(offset);
- if (uoffset > m_byteLength || array->byteLength() > m_byteLength - uoffset)
- return false;
-
- if (!m_elementArrayBuffer)
- return false;
-
- memcpy(static_cast<unsigned char*>(m_elementArrayBuffer->data()) + offset, array->baseAddress(), array->byteLength());
- return true;
- }
-
- if (m_target == GraphicsContext3D::ARRAY_BUFFER)
- return array->byteLength() + offset <= m_byteLength;
-
- return false;
+ return associateBufferSubDataImpl(offset, array->buffer().get(), array->byteOffset(), array->byteLength());
}
unsigned WebGLBuffer::byteLength() const
diff --git a/WebCore/html/canvas/WebGLBuffer.h b/WebCore/html/canvas/WebGLBuffer.h
index 1280cf9..a7a25b9 100644
--- a/WebCore/html/canvas/WebGLBuffer.h
+++ b/WebCore/html/canvas/WebGLBuffer.h
@@ -26,72 +26,77 @@
#ifndef WebGLBuffer_h
#define WebGLBuffer_h
-#include "CanvasObject.h"
#include "ArrayBuffer.h"
+#include "WebGLObject.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
-
- class WebGLBuffer : public CanvasObject {
- public:
- virtual ~WebGLBuffer() { deleteObject(); }
-
- static PassRefPtr<WebGLBuffer> create(WebGLRenderingContext*);
-
- bool associateBufferData(int size);
- bool associateBufferData(ArrayBuffer* array);
- bool associateBufferData(ArrayBufferView* array);
- bool associateBufferSubData(long offset, ArrayBuffer* array);
- bool associateBufferSubData(long offset, ArrayBufferView* array);
-
- unsigned byteLength() const;
- const ArrayBuffer* elementArrayBuffer() const { return m_elementArrayBuffer.get(); }
-
- // Gets the cached max index for the given type. Returns -1 if
- // none has been set.
- long getCachedMaxIndex(unsigned long type);
- // Sets the cached max index for the given type.
- void setCachedMaxIndex(unsigned long type, long value);
-
- unsigned long getTarget() const { return m_target; }
- void setTarget(unsigned long);
-
- protected:
- WebGLBuffer(WebGLRenderingContext*);
-
- virtual void _deleteObject(Platform3DObject o);
-
- private:
- virtual bool isBuffer() const { return true; }
-
- unsigned long m_target;
-
- RefPtr<ArrayBuffer> m_elementArrayBuffer;
- unsigned m_byteLength;
-
- // Optimization for index validation. For each type of index
- // (i.e., UNSIGNED_SHORT), cache the maximum index in the
- // entire buffer.
- //
- // This is sufficient to eliminate a lot of work upon each
- // draw call as long as all bound array buffers are at least
- // that size.
- struct MaxIndexCacheEntry {
- unsigned long type;
- long maxIndex;
- };
- // OpenGL ES 2.0 only has two valid index types (UNSIGNED_BYTE
- // and UNSIGNED_SHORT), but might as well leave open the
- // possibility of adding others.
- MaxIndexCacheEntry m_maxIndexCache[4];
- unsigned m_nextAvailableCacheEntry;
-
- // Clears all of the cached max indices.
- void clearCachedMaxIndices();
+
+class WebGLBuffer : public WebGLObject {
+public:
+ virtual ~WebGLBuffer() { deleteObject(); }
+
+ static PassRefPtr<WebGLBuffer> create(WebGLRenderingContext*);
+
+ bool associateBufferData(int size);
+ bool associateBufferData(ArrayBuffer* array);
+ bool associateBufferData(ArrayBufferView* array);
+ bool associateBufferSubData(long offset, ArrayBuffer* array);
+ bool associateBufferSubData(long offset, ArrayBufferView* array);
+
+ unsigned byteLength() const;
+ const ArrayBuffer* elementArrayBuffer() const { return m_elementArrayBuffer.get(); }
+
+ // Gets the cached max index for the given type. Returns -1 if
+ // none has been set.
+ long getCachedMaxIndex(unsigned long type);
+ // Sets the cached max index for the given type.
+ void setCachedMaxIndex(unsigned long type, long value);
+
+ unsigned long getTarget() const { return m_target; }
+ void setTarget(unsigned long);
+
+protected:
+ WebGLBuffer(WebGLRenderingContext*);
+
+ virtual void deleteObjectImpl(Platform3DObject o);
+
+private:
+ virtual bool isBuffer() const { return true; }
+
+ unsigned long m_target;
+
+ RefPtr<ArrayBuffer> m_elementArrayBuffer;
+ unsigned m_byteLength;
+
+ // Optimization for index validation. For each type of index
+ // (i.e., UNSIGNED_SHORT), cache the maximum index in the
+ // entire buffer.
+ //
+ // This is sufficient to eliminate a lot of work upon each
+ // draw call as long as all bound array buffers are at least
+ // that size.
+ struct MaxIndexCacheEntry {
+ unsigned long type;
+ long maxIndex;
};
-
+ // OpenGL ES 2.0 only has two valid index types (UNSIGNED_BYTE
+ // and UNSIGNED_SHORT), but might as well leave open the
+ // possibility of adding others.
+ MaxIndexCacheEntry m_maxIndexCache[4];
+ unsigned m_nextAvailableCacheEntry;
+
+ // Clears all of the cached max indices.
+ void clearCachedMaxIndices();
+
+ // Helper function called by the three associateBufferData().
+ bool associateBufferDataImpl(ArrayBuffer* array, unsigned byteOffset, unsigned byteLength);
+ // Helper function called by the two associateBufferSubData().
+ bool associateBufferSubDataImpl(long offset, ArrayBuffer* array, unsigned arrayByteOffset, unsigned byteLength);
+};
+
} // namespace WebCore
#endif // WebGLBuffer_h
diff --git a/WebCore/html/canvas/WebGLFramebuffer.cpp b/WebCore/html/canvas/WebGLFramebuffer.cpp
index a3d4681..bfa08b7 100644
--- a/WebCore/html/canvas/WebGLFramebuffer.cpp
+++ b/WebCore/html/canvas/WebGLFramebuffer.cpp
@@ -28,6 +28,7 @@
#if ENABLE(3D_CANVAS)
#include "WebGLFramebuffer.h"
+
#include "WebGLRenderingContext.h"
namespace WebCore {
@@ -38,7 +39,7 @@ PassRefPtr<WebGLFramebuffer> WebGLFramebuffer::create(WebGLRenderingContext* ctx
}
WebGLFramebuffer::WebGLFramebuffer(WebGLRenderingContext* ctx)
- : CanvasObject(ctx)
+ : WebGLObject(ctx)
, m_colorAttachment(0)
, m_depthAttachment(0)
, m_stencilAttachment(0)
@@ -47,7 +48,7 @@ WebGLFramebuffer::WebGLFramebuffer(WebGLRenderingContext* ctx)
setObject(context()->graphicsContext3D()->createFramebuffer());
}
-void WebGLFramebuffer::setAttachment(unsigned long attachment, CanvasObject* attachedObject)
+void WebGLFramebuffer::setAttachment(unsigned long attachment, WebGLObject* attachedObject)
{
if (!object())
return;
@@ -77,10 +78,10 @@ void WebGLFramebuffer::onBind()
initializeRenderbuffers();
}
-void WebGLFramebuffer::onAttachedObjectChange(CanvasObject* object)
+void WebGLFramebuffer::onAttachedObjectChange(WebGLObject* object)
{
// Currently object == 0 is not considered, but this might change if the
- // lifespan of CanvasObject changes.
+ // lifespan of WebGLObject changes.
if (object
&& (object == m_colorAttachment || object == m_depthAttachment
|| object == m_stencilAttachment || object == m_depthStencilAttachment))
@@ -105,12 +106,12 @@ unsigned long WebGLFramebuffer::getColorBufferFormat()
return 0;
}
-void WebGLFramebuffer::_deleteObject(Platform3DObject object)
+void WebGLFramebuffer::deleteObjectImpl(Platform3DObject object)
{
context()->graphicsContext3D()->deleteFramebuffer(object);
}
-bool WebGLFramebuffer::isUninitialized(CanvasObject* attachedObject)
+bool WebGLFramebuffer::isUninitialized(WebGLObject* attachedObject)
{
if (attachedObject && attachedObject->object() && attachedObject->isRenderbuffer()
&& !(reinterpret_cast<WebGLRenderbuffer*>(attachedObject))->isInitialized())
@@ -118,7 +119,7 @@ bool WebGLFramebuffer::isUninitialized(CanvasObject* attachedObject)
return false;
}
-void WebGLFramebuffer::setInitialized(CanvasObject* attachedObject)
+void WebGLFramebuffer::setInitialized(WebGLObject* attachedObject)
{
if (attachedObject && attachedObject->object() && attachedObject->isRenderbuffer())
(reinterpret_cast<WebGLRenderbuffer*>(attachedObject))->setInitialized();
diff --git a/WebCore/html/canvas/WebGLFramebuffer.h b/WebCore/html/canvas/WebGLFramebuffer.h
index ae1f4dc..ac945dd 100644
--- a/WebCore/html/canvas/WebGLFramebuffer.h
+++ b/WebCore/html/canvas/WebGLFramebuffer.h
@@ -26,59 +26,59 @@
#ifndef WebGLFramebuffer_h
#define WebGLFramebuffer_h
-#include "CanvasObject.h"
+#include "WebGLObject.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
- class WebGLFramebuffer : public CanvasObject {
- public:
- virtual ~WebGLFramebuffer() { deleteObject(); }
-
- static PassRefPtr<WebGLFramebuffer> create(WebGLRenderingContext*);
-
- bool isDepthAttached() const { return (m_depthAttachment && m_depthAttachment->object()); }
- bool isStencilAttached() const { return (m_stencilAttachment && m_stencilAttachment->object()); }
- bool isDepthStencilAttached() const { return (m_depthStencilAttachment && m_depthStencilAttachment->object()); }
-
- void setAttachment(unsigned long, CanvasObject*);
-
- // This function is called right after a framebuffer is bound.
- // Because renderbuffers and textures attached to the framebuffer might
- // have changed and the framebuffer might have become complete when it
- // isn't bound, so we need to clear un-initialized renderbuffers.
- void onBind();
-
- // When a texture or a renderbuffer changes, we need to check the
- // current bound framebuffer; if the newly changed object is attached
- // to the framebuffer and the framebuffer becomes complete, we need to
- // clear un-initialized renderbuffers.
- void onAttachedObjectChange(CanvasObject*);
-
- unsigned long getColorBufferFormat();
-
- protected:
- WebGLFramebuffer(WebGLRenderingContext*);
-
- virtual void _deleteObject(Platform3DObject);
-
- private:
- virtual bool isFramebuffer() const { return true; }
-
- bool isUninitialized(CanvasObject*);
- void setInitialized(CanvasObject*);
- void initializeRenderbuffers();
-
- // These objects are kept alive by the global table in
- // WebGLRenderingContext.
- CanvasObject* m_colorAttachment;
- CanvasObject* m_depthAttachment;
- CanvasObject* m_stencilAttachment;
- CanvasObject* m_depthStencilAttachment;
- };
-
+class WebGLFramebuffer : public WebGLObject {
+public:
+ virtual ~WebGLFramebuffer() { deleteObject(); }
+
+ static PassRefPtr<WebGLFramebuffer> create(WebGLRenderingContext*);
+
+ bool isDepthAttached() const { return (m_depthAttachment && m_depthAttachment->object()); }
+ bool isStencilAttached() const { return (m_stencilAttachment && m_stencilAttachment->object()); }
+ bool isDepthStencilAttached() const { return (m_depthStencilAttachment && m_depthStencilAttachment->object()); }
+
+ void setAttachment(unsigned long, WebGLObject*);
+
+ // This function is called right after a framebuffer is bound.
+ // Because renderbuffers and textures attached to the framebuffer might
+ // have changed and the framebuffer might have become complete when it
+ // isn't bound, so we need to clear un-initialized renderbuffers.
+ void onBind();
+
+ // When a texture or a renderbuffer changes, we need to check the
+ // current bound framebuffer; if the newly changed object is attached
+ // to the framebuffer and the framebuffer becomes complete, we need to
+ // clear un-initialized renderbuffers.
+ void onAttachedObjectChange(WebGLObject*);
+
+ unsigned long getColorBufferFormat();
+
+protected:
+ WebGLFramebuffer(WebGLRenderingContext*);
+
+ virtual void deleteObjectImpl(Platform3DObject);
+
+private:
+ virtual bool isFramebuffer() const { return true; }
+
+ bool isUninitialized(WebGLObject*);
+ void setInitialized(WebGLObject*);
+ void initializeRenderbuffers();
+
+ // These objects are kept alive by the global table in
+ // WebGLRenderingContext.
+ WebGLObject* m_colorAttachment;
+ WebGLObject* m_depthAttachment;
+ WebGLObject* m_stencilAttachment;
+ WebGLObject* m_depthStencilAttachment;
+};
+
} // namespace WebCore
#endif // WebGLFramebuffer_h
diff --git a/WebCore/html/canvas/WebGLGetInfo.cpp b/WebCore/html/canvas/WebGLGetInfo.cpp
index 0c8b548..6aff82f 100644
--- a/WebCore/html/canvas/WebGLGetInfo.cpp
+++ b/WebCore/html/canvas/WebGLGetInfo.cpp
@@ -29,14 +29,15 @@
#if ENABLE(3D_CANVAS)
#include "WebGLGetInfo.h"
-#include "WebGLBuffer.h"
+
#include "Float32Array.h"
-#include "WebGLFramebuffer.h"
#include "Int32Array.h"
+#include "Uint8Array.h"
+#include "WebGLBuffer.h"
+#include "WebGLFramebuffer.h"
#include "WebGLProgram.h"
#include "WebGLRenderbuffer.h"
#include "WebGLTexture.h"
-#include "Uint8Array.h"
namespace WebCore {
diff --git a/WebCore/html/canvas/WebGLGetInfo.h b/WebCore/html/canvas/WebGLGetInfo.h
index 94f6f9b..caee520 100644
--- a/WebCore/html/canvas/WebGLGetInfo.h
+++ b/WebCore/html/canvas/WebGLGetInfo.h
@@ -27,20 +27,18 @@
#ifndef WebGLGetInfo_h
#define WebGLGetInfo_h
-#include "wtf/PassRefPtr.h"
-#include "wtf/RefPtr.h"
+#include "Float32Array.h"
+#include "Int32Array.h"
#include "PlatformString.h"
-
+#include "Uint8Array.h"
#include "WebGLBuffer.h"
-#include "Float32Array.h"
#include "WebGLFramebuffer.h"
-#include "Int32Array.h"
-// FIXME: implement WebGLObjectArray
-//#include "WebGLObjectArray.h"
#include "WebGLProgram.h"
#include "WebGLRenderbuffer.h"
#include "WebGLTexture.h"
-#include "Uint8Array.h"
+
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefPtr.h>
namespace WebCore {
@@ -74,7 +72,7 @@ public:
WebGLGetInfo(const bool* value, int size);
WebGLGetInfo(float value);
WebGLGetInfo(long value);
- // Represents the NULL value and type
+ // Represents the null value and type.
WebGLGetInfo();
WebGLGetInfo(const String& value);
WebGLGetInfo(unsigned long value);
@@ -132,4 +130,4 @@ private:
} // namespace WebCore
-#endif // WebGLGetInfo_h
+#endif // WebGLGetInfo_h
diff --git a/WebCore/html/canvas/CanvasObject.cpp b/WebCore/html/canvas/WebGLObject.cpp
index 6c7667b..6a34269 100644
--- a/WebCore/html/canvas/CanvasObject.cpp
+++ b/WebCore/html/canvas/WebGLObject.cpp
@@ -27,25 +27,26 @@
#if ENABLE(3D_CANVAS)
-#include "CanvasObject.h"
+#include "WebGLObject.h"
+
#include "WebGLRenderingContext.h"
namespace WebCore {
-CanvasObject::CanvasObject(WebGLRenderingContext* context)
+WebGLObject::WebGLObject(WebGLRenderingContext* context)
: m_object(0)
, m_shouldDeleteObject(true)
, m_context(context)
{
}
-CanvasObject::~CanvasObject()
+WebGLObject::~WebGLObject()
{
if (m_context)
m_context->removeObject(this);
}
-void CanvasObject::setObject(Platform3DObject object, bool shouldDeleteObject)
+void WebGLObject::setObject(Platform3DObject object, bool shouldDeleteObject)
{
if (object == m_object)
return;
@@ -55,13 +56,13 @@ void CanvasObject::setObject(Platform3DObject object, bool shouldDeleteObject)
m_shouldDeleteObject = shouldDeleteObject;
}
-void CanvasObject::deleteObject()
+void WebGLObject::deleteObject()
{
if (m_object) {
if (m_shouldDeleteObject)
if (m_context) {
m_context->graphicsContext3D()->makeContextCurrent();
- _deleteObject(m_object);
+ deleteObjectImpl(m_object);
}
m_object = 0;
}
diff --git a/WebCore/html/canvas/WebGLObject.h b/WebCore/html/canvas/WebGLObject.h
new file mode 100644
index 0000000..b66311f
--- /dev/null
+++ b/WebCore/html/canvas/WebGLObject.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2009 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebGLObject_h
+#define WebGLObject_h
+
+#include "GraphicsContext3D.h"
+
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class WebGLRenderingContext;
+
+class WebGLObject : public RefCounted<WebGLObject> {
+public:
+ virtual ~WebGLObject();
+
+ Platform3DObject object() const { return m_object; }
+ void setObject(Platform3DObject, bool shouldDeleteObject = true);
+ void deleteObject();
+
+ void detachContext()
+ {
+ deleteObject();
+ m_context = 0;
+ }
+
+ WebGLRenderingContext* context() const { return m_context; }
+
+ virtual bool isBuffer() const { return false; }
+ virtual bool isFramebuffer() const { return false; }
+ virtual bool isProgram() const { return false; }
+ virtual bool isRenderbuffer() const { return false; }
+ virtual bool isShader() const { return false; }
+ virtual bool isTexture() const { return false; }
+
+protected:
+ WebGLObject(WebGLRenderingContext*);
+ virtual void deleteObjectImpl(Platform3DObject) = 0;
+
+private:
+ Platform3DObject m_object;
+ // The shouldDeleteObject flag indicates whether this wrapper
+ // owns the underlying resource and should delete it when the
+ // wrapper is unreferenced for the last time and deleted. It
+ // is only set to false for certain objects returned from get
+ // queries. FIXME: should consider canonicalizing all of these
+ // objects in the future.
+ bool m_shouldDeleteObject;
+ WebGLRenderingContext* m_context;
+};
+
+} // namespace WebCore
+
+#endif // WebGLObject_h
diff --git a/WebCore/html/canvas/WebGLProgram.cpp b/WebCore/html/canvas/WebGLProgram.cpp
index 0004465..846b171 100644
--- a/WebCore/html/canvas/WebGLProgram.cpp
+++ b/WebCore/html/canvas/WebGLProgram.cpp
@@ -28,6 +28,7 @@
#if ENABLE(3D_CANVAS)
#include "WebGLProgram.h"
+
#include "WebGLRenderingContext.h"
namespace WebCore {
@@ -38,13 +39,13 @@ PassRefPtr<WebGLProgram> WebGLProgram::create(WebGLRenderingContext* ctx)
}
WebGLProgram::WebGLProgram(WebGLRenderingContext* ctx)
- : CanvasObject(ctx)
+ : WebGLObject(ctx)
, m_linkFailure(false)
{
setObject(context()->graphicsContext3D()->createProgram());
}
-void WebGLProgram::_deleteObject(Platform3DObject object)
+void WebGLProgram::deleteObjectImpl(Platform3DObject object)
{
context()->graphicsContext3D()->deleteProgram(object);
}
@@ -56,17 +57,17 @@ bool WebGLProgram::cacheActiveAttribLocations()
return false;
GraphicsContext3D* context3d = context()->graphicsContext3D();
int linkStatus;
- context3d->getProgramiv(this, GraphicsContext3D::LINK_STATUS, &linkStatus);
+ context3d->getProgramiv(object(), GraphicsContext3D::LINK_STATUS, &linkStatus);
if (!linkStatus)
return false;
int numAttribs = 0;
- context3d->getProgramiv(this, GraphicsContext3D::ACTIVE_ATTRIBUTES, &numAttribs);
+ context3d->getProgramiv(object(), GraphicsContext3D::ACTIVE_ATTRIBUTES, &numAttribs);
m_activeAttribLocations.resize(static_cast<size_t>(numAttribs));
for (int i = 0; i < numAttribs; ++i) {
ActiveInfo info;
- context3d->getActiveAttrib(this, i, info);
- m_activeAttribLocations[i] = context3d->getAttribLocation(this, info.name.charactersWithNullTermination());
+ context3d->getActiveAttrib(object(), i, info);
+ m_activeAttribLocations[i] = context3d->getAttribLocation(object(), info.name.charactersWithNullTermination());
}
return true;
diff --git a/WebCore/html/canvas/WebGLProgram.h b/WebCore/html/canvas/WebGLProgram.h
index 1049334..0156938 100644
--- a/WebCore/html/canvas/WebGLProgram.h
+++ b/WebCore/html/canvas/WebGLProgram.h
@@ -26,47 +26,47 @@
#ifndef WebGLProgram_h
#define WebGLProgram_h
-#include "CanvasObject.h"
+#include "WebGLObject.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
namespace WebCore {
-
- class WebGLProgram : public CanvasObject {
- public:
- virtual ~WebGLProgram() { deleteObject(); }
-
- static PassRefPtr<WebGLProgram> create(WebGLRenderingContext*);
-
- // cacheActiveAttribLocation() is only called once after linkProgram()
- // succeeds.
- bool cacheActiveAttribLocations();
- int numActiveAttribLocations() const;
- int getActiveAttribLocation(int index) const;
-
- bool isUsingVertexAttrib0() const;
-
- // Return true means getProgramParameter(LINK_STATUS) should return
- // false; return false means we should actually call
- // getProgramParameter(LINK_STATUS) to find out.
- bool isLinkFailureFlagSet() const { return m_linkFailure; }
- void setLinkFailureFlag(bool failed) { m_linkFailure = failed; }
-
- protected:
- WebGLProgram(WebGLRenderingContext*);
-
- virtual void _deleteObject(Platform3DObject);
-
- private:
- virtual bool isProgram() const { return true; }
-
- Vector<int> m_activeAttribLocations;
-
- bool m_linkFailure;
- };
-
+
+class WebGLProgram : public WebGLObject {
+public:
+ virtual ~WebGLProgram() { deleteObject(); }
+
+ static PassRefPtr<WebGLProgram> create(WebGLRenderingContext*);
+
+ // cacheActiveAttribLocation() is only called once after linkProgram()
+ // succeeds.
+ bool cacheActiveAttribLocations();
+ int numActiveAttribLocations() const;
+ int getActiveAttribLocation(int index) const;
+
+ bool isUsingVertexAttrib0() const;
+
+ // Return true means getProgramParameter(LINK_STATUS) should return
+ // false; return false means we should actually call
+ // getProgramParameter(LINK_STATUS) to find out.
+ bool isLinkFailureFlagSet() const { return m_linkFailure; }
+ void setLinkFailureFlag(bool failed) { m_linkFailure = failed; }
+
+protected:
+ WebGLProgram(WebGLRenderingContext*);
+
+ virtual void deleteObjectImpl(Platform3DObject);
+
+private:
+ virtual bool isProgram() const { return true; }
+
+ Vector<int> m_activeAttribLocations;
+
+ bool m_linkFailure;
+};
+
} // namespace WebCore
#endif // WebGLProgram_h
diff --git a/WebCore/html/canvas/WebGLRenderbuffer.cpp b/WebCore/html/canvas/WebGLRenderbuffer.cpp
index 701e2c9..7bc2eec 100644
--- a/WebCore/html/canvas/WebGLRenderbuffer.cpp
+++ b/WebCore/html/canvas/WebGLRenderbuffer.cpp
@@ -28,6 +28,7 @@
#if ENABLE(3D_CANVAS)
#include "WebGLRenderbuffer.h"
+
#include "WebGLRenderingContext.h"
namespace WebCore {
@@ -38,14 +39,14 @@ PassRefPtr<WebGLRenderbuffer> WebGLRenderbuffer::create(WebGLRenderingContext* c
}
WebGLRenderbuffer::WebGLRenderbuffer(WebGLRenderingContext* ctx)
- : CanvasObject(ctx)
+ : WebGLObject(ctx)
, m_internalFormat(GraphicsContext3D::RGBA4)
, m_initialized(false)
{
setObject(context()->graphicsContext3D()->createRenderbuffer());
}
-void WebGLRenderbuffer::_deleteObject(Platform3DObject object)
+void WebGLRenderbuffer::deleteObjectImpl(Platform3DObject object)
{
context()->graphicsContext3D()->deleteRenderbuffer(object);
}
diff --git a/WebCore/html/canvas/WebGLRenderbuffer.h b/WebCore/html/canvas/WebGLRenderbuffer.h
index dbb08c1..5765061 100644
--- a/WebCore/html/canvas/WebGLRenderbuffer.h
+++ b/WebCore/html/canvas/WebGLRenderbuffer.h
@@ -26,37 +26,37 @@
#ifndef WebGLRenderbuffer_h
#define WebGLRenderbuffer_h
-#include "CanvasObject.h"
+#include "WebGLObject.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
-
- class WebGLRenderbuffer : public CanvasObject {
- public:
- virtual ~WebGLRenderbuffer() { deleteObject(); }
-
- static PassRefPtr<WebGLRenderbuffer> create(WebGLRenderingContext*);
-
- void setInternalFormat(unsigned long internalformat) { m_internalFormat = internalformat; }
- unsigned long getInternalFormat() const { return m_internalFormat; }
-
- bool isInitialized() const { return m_initialized; }
- void setInitialized() { m_initialized = true; }
-
- protected:
- WebGLRenderbuffer(WebGLRenderingContext*);
-
- virtual void _deleteObject(Platform3DObject);
-
- private:
- virtual bool isRenderbuffer() const { return true; }
-
- unsigned long m_internalFormat;
- bool m_initialized;
- };
-
+
+class WebGLRenderbuffer : public WebGLObject {
+public:
+ virtual ~WebGLRenderbuffer() { deleteObject(); }
+
+ static PassRefPtr<WebGLRenderbuffer> create(WebGLRenderingContext*);
+
+ void setInternalFormat(unsigned long internalformat) { m_internalFormat = internalformat; }
+ unsigned long getInternalFormat() const { return m_internalFormat; }
+
+ bool isInitialized() const { return m_initialized; }
+ void setInitialized() { m_initialized = true; }
+
+protected:
+ WebGLRenderbuffer(WebGLRenderingContext*);
+
+ virtual void deleteObjectImpl(Platform3DObject);
+
+private:
+ virtual bool isRenderbuffer() const { return true; }
+
+ unsigned long m_internalFormat;
+ bool m_initialized;
+};
+
} // namespace WebCore
#endif // WebGLRenderbuffer_h
diff --git a/WebCore/html/canvas/WebGLRenderingContext.cpp b/WebCore/html/canvas/WebGLRenderingContext.cpp
index fb17db9..0284ec6 100644
--- a/WebCore/html/canvas/WebGLRenderingContext.cpp
+++ b/WebCore/html/canvas/WebGLRenderingContext.cpp
@@ -29,8 +29,8 @@
#include "WebGLRenderingContext.h"
-#include "CheckedInt.h"
#include "CanvasPixelArray.h"
+#include "CheckedInt.h"
#include "Console.h"
#include "DOMWindow.h"
#include "FrameView.h"
@@ -41,15 +41,15 @@
#include "NotImplemented.h"
#include "RenderBox.h"
#include "RenderLayer.h"
-#include "WebGLActiveInfo.h"
#include "Uint16Array.h"
+#include "WebGLActiveInfo.h"
#include "WebGLBuffer.h"
#include "WebGLContextAttributes.h"
#include "WebGLFramebuffer.h"
#include "WebGLProgram.h"
#include "WebGLRenderbuffer.h"
-#include "WebGLTexture.h"
#include "WebGLShader.h"
+#include "WebGLTexture.h"
#include "WebGLUniformLocation.h"
#include <wtf/ByteArray.h>
@@ -57,6 +57,11 @@
namespace WebCore {
+static inline Platform3DObject objectOrZero(WebGLObject* object)
+{
+ return object ? object->object() : 0;
+}
+
class WebGLStateRestorer {
public:
WebGLStateRestorer(WebGLRenderingContext* context,
@@ -151,7 +156,7 @@ void WebGLRenderingContext::markContextChanged()
m_markedCanvasDirty = true;
}
-bool WebGLRenderingContext::paintRenderingResultsToCanvas()
+void WebGLRenderingContext::paintRenderingResultsToCanvas()
{
if (m_markedCanvasDirty) {
// FIXME: It should not be necessary to clear the image before doing a readback.
@@ -159,16 +164,13 @@ bool WebGLRenderingContext::paintRenderingResultsToCanvas()
canvas()->buffer()->clearImage();
m_markedCanvasDirty = false;
m_context->paintRenderingResultsToCanvas(this);
- return true;
}
- return false;
}
void WebGLRenderingContext::beginPaint()
{
- if (m_markedCanvasDirty) {
+ if (m_markedCanvasDirty)
m_context->beginPaint(this);
- }
}
void WebGLRenderingContext::endPaint()
@@ -193,14 +195,9 @@ void WebGLRenderingContext::reshape(int width, int height)
m_context->reshape(width, height);
}
-int WebGLRenderingContext::sizeInBytes(int type, ExceptionCode& ec)
+int WebGLRenderingContext::sizeInBytes(int type)
{
- UNUSED_PARAM(ec);
- int result = m_context->sizeInBytes(type);
- if (result <= 0)
- m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
-
- return result;
+ return m_context->sizeInBytes(type);
}
void WebGLRenderingContext::activeTexture(unsigned long texture, ExceptionCode& ec)
@@ -220,7 +217,7 @@ void WebGLRenderingContext::attachShader(WebGLProgram* program, WebGLShader* sha
UNUSED_PARAM(ec);
if (!validateWebGLObject(program) || !validateWebGLObject(shader))
return;
- m_context->attachShader(program, shader);
+ m_context->attachShader(objectOrZero(program), objectOrZero(shader));
cleanupAfterGraphicsCall(false);
}
@@ -229,7 +226,7 @@ void WebGLRenderingContext::bindAttribLocation(WebGLProgram* program, unsigned l
UNUSED_PARAM(ec);
if (!validateWebGLObject(program))
return;
- m_context->bindAttribLocation(program, index, name);
+ m_context->bindAttribLocation(objectOrZero(program), index, name);
cleanupAfterGraphicsCall(false);
}
@@ -254,7 +251,7 @@ void WebGLRenderingContext::bindBuffer(unsigned long target, WebGLBuffer* buffer
return;
}
- m_context->bindBuffer(target, buffer);
+ m_context->bindBuffer(target, objectOrZero(buffer));
if (buffer)
buffer->setTarget(target);
cleanupAfterGraphicsCall(false);
@@ -273,7 +270,7 @@ void WebGLRenderingContext::bindFramebuffer(unsigned long target, WebGLFramebuff
return;
}
m_framebufferBinding = buffer;
- m_context->bindFramebuffer(target, buffer);
+ m_context->bindFramebuffer(target, objectOrZero(buffer));
if (m_framebufferBinding)
m_framebufferBinding->onBind();
cleanupAfterGraphicsCall(false);
@@ -291,7 +288,7 @@ void WebGLRenderingContext::bindRenderbuffer(unsigned long target, WebGLRenderbu
return;
}
m_renderbufferBinding = renderBuffer;
- m_context->bindRenderbuffer(target, renderBuffer);
+ m_context->bindRenderbuffer(target, objectOrZero(renderBuffer));
cleanupAfterGraphicsCall(false);
}
@@ -314,9 +311,28 @@ void WebGLRenderingContext::bindTexture(unsigned long target, WebGLTexture* text
m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
return;
}
- m_context->bindTexture(target, texture);
+ m_context->bindTexture(target, objectOrZero(texture));
if (!isGLES2Compliant() && texture)
texture->setTarget(target, maxLevel);
+
+ // FIXME: do we want to do this on all platforms?
+#if PLATFORM(CHROMIUM)
+ // FIXME: GL_TEXTURE_WRAP_R isn't exposed in the OpenGL ES 2.0
+ // API. On desktop OpenGL implementations it seems necessary to
+ // set this wrap mode to GL_CLAMP_TO_EDGE to get correct behavior
+ // of cube maps.
+ if (texture) {
+ if (target == GraphicsContext3D::TEXTURE_CUBE_MAP) {
+ if (!texture->isCubeMapRWrapModeInitialized()) {
+ static const int textureWrapR = 0x8072;
+ texParameteri(GraphicsContext3D::TEXTURE_CUBE_MAP, textureWrapR, GraphicsContext3D::CLAMP_TO_EDGE);
+ texture->setCubeMapRWrapModeInitialized(true);
+ }
+ } else
+ texture->setCubeMapRWrapModeInitialized(false);
+ }
+#endif
+
cleanupAfterGraphicsCall(false);
}
@@ -326,7 +342,7 @@ void WebGLRenderingContext::blendColor(double red, double green, double blue, do
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::blendEquation( unsigned long mode )
+void WebGLRenderingContext::blendEquation(unsigned long mode)
{
if (!isGLES2Compliant()) {
if (!validateBlendEquation(mode))
@@ -497,7 +513,7 @@ void WebGLRenderingContext::compileShader(WebGLShader* shader, ExceptionCode& ec
UNUSED_PARAM(ec);
if (!validateWebGLObject(shader))
return;
- m_context->compileShader(shader);
+ m_context->compileShader(objectOrZero(shader));
cleanupAfterGraphicsCall(false);
}
@@ -687,7 +703,7 @@ void WebGLRenderingContext::detachShader(WebGLProgram* program, WebGLShader* sha
UNUSED_PARAM(ec);
if (!validateWebGLObject(program) || !validateWebGLObject(shader))
return;
- m_context->detachShader(program, shader);
+ m_context->detachShader(objectOrZero(program), objectOrZero(shader));
cleanupAfterGraphicsCall(false);
}
@@ -872,7 +888,7 @@ bool WebGLRenderingContext::validateRenderingState(long numElementsRequired)
return numElementsRequired <= smallestNumElements;
}
-bool WebGLRenderingContext::validateWebGLObject(CanvasObject* object)
+bool WebGLRenderingContext::validateWebGLObject(WebGLObject* object)
{
if (!object) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
@@ -1056,7 +1072,7 @@ void WebGLRenderingContext::framebufferRenderbuffer(unsigned long target, unsign
return;
}
}
- m_context->framebufferRenderbuffer(target, attachment, renderbuffertarget, buffer);
+ m_context->framebufferRenderbuffer(target, attachment, renderbuffertarget, objectOrZero(buffer));
m_framebufferBinding->setAttachment(attachment, buffer);
cleanupAfterGraphicsCall(false);
}
@@ -1081,7 +1097,7 @@ void WebGLRenderingContext::framebufferTexture2D(unsigned long target, unsigned
m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return;
}
- m_context->framebufferTexture2D(target, attachment, textarget, texture, level);
+ m_context->framebufferTexture2D(target, attachment, textarget, objectOrZero(texture), level);
m_framebufferBinding->setAttachment(attachment, texture);
cleanupAfterGraphicsCall(false);
}
@@ -1119,9 +1135,8 @@ PassRefPtr<WebGLActiveInfo> WebGLRenderingContext::getActiveAttrib(WebGLProgram*
ActiveInfo info;
if (!validateWebGLObject(program))
return 0;
- if (!m_context->getActiveAttrib(program, index, info)) {
+ if (!m_context->getActiveAttrib(objectOrZero(program), index, info))
return 0;
- }
return WebGLActiveInfo::create(info.name, info.type, info.size);
}
@@ -1131,13 +1146,11 @@ PassRefPtr<WebGLActiveInfo> WebGLRenderingContext::getActiveUniform(WebGLProgram
ActiveInfo info;
if (!validateWebGLObject(program))
return 0;
- if (!m_context->getActiveUniform(program, index, info)) {
+ if (!m_context->getActiveUniform(objectOrZero(program), index, info))
return 0;
- }
- if (!isGLES2Compliant()) {
+ if (!isGLES2Compliant())
if (info.size > 1 && !info.name.endsWith("[0]"))
info.name.append("[0]");
- }
return WebGLActiveInfo::create(info.name, info.type, info.size);
}
@@ -1148,11 +1161,11 @@ bool WebGLRenderingContext::getAttachedShaders(WebGLProgram* program, Vector<Web
if (!validateWebGLObject(program))
return false;
int numShaders = 0;
- m_context->getProgramiv(program, GraphicsContext3D::ATTACHED_SHADERS, &numShaders);
+ m_context->getProgramiv(objectOrZero(program), GraphicsContext3D::ATTACHED_SHADERS, &numShaders);
if (numShaders) {
OwnArrayPtr<unsigned int> shaders(new unsigned int[numShaders]);
int count;
- m_context->getAttachedShaders(program, numShaders, &count, shaders.get());
+ m_context->getAttachedShaders(objectOrZero(program), numShaders, &count, shaders.get());
if (count != numShaders)
return false;
shaderObjects.resize(numShaders);
@@ -1170,7 +1183,7 @@ bool WebGLRenderingContext::getAttachedShaders(WebGLProgram* program, Vector<Web
int WebGLRenderingContext::getAttribLocation(WebGLProgram* program, const String& name)
{
- return m_context->getAttribLocation(program, name);
+ return m_context->getAttribLocation(objectOrZero(program), name);
}
WebGLGetInfo WebGLRenderingContext::getBufferParameter(unsigned long target, unsigned long pname, ExceptionCode& ec)
@@ -1191,8 +1204,7 @@ WebGLGetInfo WebGLRenderingContext::getBufferParameter(unsigned long target, uns
m_context->getBufferParameteriv(target, pname, &value);
if (pname == GraphicsContext3D::BUFFER_SIZE)
return WebGLGetInfo(static_cast<long>(value));
- else
- return WebGLGetInfo(static_cast<unsigned long>(value));
+ return WebGLGetInfo(static_cast<unsigned long>(value));
}
PassRefPtr<WebGLContextAttributes> WebGLRenderingContext::getContextAttributes()
@@ -1234,23 +1246,22 @@ WebGLGetInfo WebGLRenderingContext::getFramebufferAttachmentParameter(unsigned l
m_context->getFramebufferAttachmentParameteriv(target, attachment, pname, &value);
if (pname == GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)
return WebGLGetInfo(static_cast<unsigned long>(value));
- else
- return WebGLGetInfo(static_cast<long>(value));
- } else {
- WebGLStateRestorer(this, false);
- int type = 0;
- m_context->getFramebufferAttachmentParameteriv(target, attachment, GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &type);
- int value = 0;
- m_context->getFramebufferAttachmentParameteriv(target, attachment, GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &value);
- switch (type) {
- case GraphicsContext3D::RENDERBUFFER:
- return WebGLGetInfo(PassRefPtr<WebGLRenderbuffer>(findRenderbuffer(static_cast<Platform3DObject>(value))));
- case GraphicsContext3D::TEXTURE:
- return WebGLGetInfo(PassRefPtr<WebGLTexture>(findTexture(static_cast<Platform3DObject>(value))));
- default:
- // FIXME: raise exception?
- return WebGLGetInfo();
- }
+ return WebGLGetInfo(static_cast<long>(value));
+ }
+
+ WebGLStateRestorer(this, false);
+ int type = 0;
+ m_context->getFramebufferAttachmentParameteriv(target, attachment, GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &type);
+ int value = 0;
+ m_context->getFramebufferAttachmentParameteriv(target, attachment, GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &value);
+ switch (type) {
+ case GraphicsContext3D::RENDERBUFFER:
+ return WebGLGetInfo(PassRefPtr<WebGLRenderbuffer>(findRenderbuffer(static_cast<Platform3DObject>(value))));
+ case GraphicsContext3D::TEXTURE:
+ return WebGLGetInfo(PassRefPtr<WebGLTexture>(findTexture(static_cast<Platform3DObject>(value))));
+ default:
+ // FIXME: raise exception?
+ return WebGLGetInfo();
}
}
@@ -1448,12 +1459,12 @@ WebGLGetInfo WebGLRenderingContext::getProgramParameter(WebGLProgram* program, u
switch (pname) {
case GraphicsContext3D::DELETE_STATUS:
case GraphicsContext3D::VALIDATE_STATUS:
- m_context->getProgramiv(program, pname, &value);
+ m_context->getProgramiv(objectOrZero(program), pname, &value);
return WebGLGetInfo(static_cast<bool>(value));
case GraphicsContext3D::LINK_STATUS:
if (program->isLinkFailureFlagSet())
return WebGLGetInfo(false);
- m_context->getProgramiv(program, pname, &value);
+ m_context->getProgramiv(objectOrZero(program), pname, &value);
return WebGLGetInfo(static_cast<bool>(value));
case GraphicsContext3D::INFO_LOG_LENGTH:
case GraphicsContext3D::ATTACHED_SHADERS:
@@ -1461,7 +1472,7 @@ WebGLGetInfo WebGLRenderingContext::getProgramParameter(WebGLProgram* program, u
case GraphicsContext3D::ACTIVE_ATTRIBUTE_MAX_LENGTH:
case GraphicsContext3D::ACTIVE_UNIFORMS:
case GraphicsContext3D::ACTIVE_UNIFORM_MAX_LENGTH:
- m_context->getProgramiv(program, pname, &value);
+ m_context->getProgramiv(objectOrZero(program), pname, &value);
return WebGLGetInfo(static_cast<long>(value));
default:
m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
@@ -1475,7 +1486,7 @@ String WebGLRenderingContext::getProgramInfoLog(WebGLProgram* program, Exception
if (!validateWebGLObject(program))
return "";
WebGLStateRestorer(this, false);
- return m_context->getProgramInfoLog(program);
+ return m_context->getProgramInfoLog(objectOrZero(program));
}
WebGLGetInfo WebGLRenderingContext::getRenderbufferParameter(unsigned long target, unsigned long pname, ExceptionCode& ec)
@@ -1521,14 +1532,14 @@ WebGLGetInfo WebGLRenderingContext::getShaderParameter(WebGLShader* shader, unsi
switch (pname) {
case GraphicsContext3D::DELETE_STATUS:
case GraphicsContext3D::COMPILE_STATUS:
- m_context->getShaderiv(shader, pname, &value);
+ m_context->getShaderiv(objectOrZero(shader), pname, &value);
return WebGLGetInfo(static_cast<bool>(value));
case GraphicsContext3D::SHADER_TYPE:
- m_context->getShaderiv(shader, pname, &value);
+ m_context->getShaderiv(objectOrZero(shader), pname, &value);
return WebGLGetInfo(static_cast<unsigned long>(value));
case GraphicsContext3D::INFO_LOG_LENGTH:
case GraphicsContext3D::SHADER_SOURCE_LENGTH:
- m_context->getShaderiv(shader, pname, &value);
+ m_context->getShaderiv(objectOrZero(shader), pname, &value);
return WebGLGetInfo(static_cast<long>(value));
default:
m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
@@ -1542,7 +1553,7 @@ String WebGLRenderingContext::getShaderInfoLog(WebGLShader* shader, ExceptionCod
if (!validateWebGLObject(shader))
return "";
WebGLStateRestorer(this, false);
- return m_context->getShaderInfoLog(shader);
+ return m_context->getShaderInfoLog(objectOrZero(shader));
}
String WebGLRenderingContext::getShaderSource(WebGLShader* shader, ExceptionCode& ec)
@@ -1551,7 +1562,7 @@ String WebGLRenderingContext::getShaderSource(WebGLShader* shader, ExceptionCode
if (!validateWebGLObject(shader))
return "";
WebGLStateRestorer(this, false);
- return m_context->getShaderSource(shader);
+ return m_context->getShaderSource(objectOrZero(shader));
}
String WebGLRenderingContext::getString(unsigned long name)
@@ -1601,10 +1612,10 @@ WebGLGetInfo WebGLRenderingContext::getUniform(WebGLProgram* program, const WebG
WebGLStateRestorer(this, false);
// FIXME: make this more efficient using WebGLUniformLocation and caching types in it
int activeUniforms = 0;
- m_context->getProgramiv(program, GraphicsContext3D::ACTIVE_UNIFORMS, &activeUniforms);
+ m_context->getProgramiv(objectOrZero(program), GraphicsContext3D::ACTIVE_UNIFORMS, &activeUniforms);
for (int i = 0; i < activeUniforms; i++) {
ActiveInfo info;
- if (!m_context->getActiveUniform(program, i, info))
+ if (!m_context->getActiveUniform(objectOrZero(program), i, info))
return WebGLGetInfo();
// Strip "[0]" from the name if it's an array.
if (info.size > 1)
@@ -1618,7 +1629,7 @@ WebGLGetInfo WebGLRenderingContext::getUniform(WebGLProgram* program, const WebG
name.append(']');
}
// Now need to look this up by name again to find its location
- long loc = m_context->getUniformLocation(program, name);
+ long loc = m_context->getUniformLocation(objectOrZero(program), name);
if (loc == location) {
// Found it. Use the type in the ActiveInfo to determine the return type.
GraphicsContext3D::WebGLEnumType baseType;
@@ -1693,21 +1704,21 @@ WebGLGetInfo WebGLRenderingContext::getUniform(WebGLProgram* program, const WebG
switch (baseType) {
case GraphicsContext3D::FLOAT: {
float value[16] = {0};
- m_context->getUniformfv(program, location, value);
+ m_context->getUniformfv(objectOrZero(program), location, value);
if (length == 1)
return WebGLGetInfo(value[0]);
return WebGLGetInfo(Float32Array::create(value, length));
}
case GraphicsContext3D::INT: {
int value[16] = {0};
- m_context->getUniformiv(program, location, value);
+ m_context->getUniformiv(objectOrZero(program), location, value);
if (length == 1)
return WebGLGetInfo(static_cast<long>(value[0]));
return WebGLGetInfo(Int32Array::create(value, length));
}
case GraphicsContext3D::BOOL: {
int value[16] = {0};
- m_context->getUniformiv(program, location, value);
+ m_context->getUniformiv(objectOrZero(program), location, value);
if (length > 1) {
unsigned char boolValue[16] = {0};
for (unsigned j = 0; j < length; j++)
@@ -1733,7 +1744,7 @@ PassRefPtr<WebGLUniformLocation> WebGLRenderingContext::getUniformLocation(WebGL
if (!validateWebGLObject(program))
return 0;
WebGLStateRestorer(this, false);
- long uniformLocation = m_context->getUniformLocation(program, name);
+ long uniformLocation = m_context->getUniformLocation(objectOrZero(program), name);
if (uniformLocation == -1)
return 0;
return WebGLUniformLocation::create(program, uniformLocation);
@@ -1811,7 +1822,7 @@ bool WebGLRenderingContext::isBuffer(WebGLBuffer* buffer)
if (!buffer)
return false;
- return m_context->isBuffer(buffer);
+ return m_context->isBuffer(buffer->object());
}
bool WebGLRenderingContext::isEnabled(unsigned long cap)
@@ -1828,7 +1839,7 @@ bool WebGLRenderingContext::isFramebuffer(WebGLFramebuffer* framebuffer)
if (!framebuffer)
return false;
- return m_context->isFramebuffer(framebuffer);
+ return m_context->isFramebuffer(framebuffer->object());
}
bool WebGLRenderingContext::isProgram(WebGLProgram* program)
@@ -1836,7 +1847,7 @@ bool WebGLRenderingContext::isProgram(WebGLProgram* program)
if (!program)
return false;
- return m_context->isProgram(program);
+ return m_context->isProgram(program->object());
}
bool WebGLRenderingContext::isRenderbuffer(WebGLRenderbuffer* renderbuffer)
@@ -1844,7 +1855,7 @@ bool WebGLRenderingContext::isRenderbuffer(WebGLRenderbuffer* renderbuffer)
if (!renderbuffer)
return false;
- return m_context->isRenderbuffer(renderbuffer);
+ return m_context->isRenderbuffer(renderbuffer->object());
}
bool WebGLRenderingContext::isShader(WebGLShader* shader)
@@ -1852,7 +1863,7 @@ bool WebGLRenderingContext::isShader(WebGLShader* shader)
if (!shader)
return false;
- return m_context->isShader(shader);
+ return m_context->isShader(shader->object());
}
bool WebGLRenderingContext::isTexture(WebGLTexture* texture)
@@ -1860,7 +1871,7 @@ bool WebGLRenderingContext::isTexture(WebGLTexture* texture)
if (!texture)
return false;
- return m_context->isTexture(texture);
+ return m_context->isTexture(texture->object());
}
void WebGLRenderingContext::lineWidth(double width)
@@ -1896,7 +1907,7 @@ void WebGLRenderingContext::linkProgram(WebGLProgram* program, ExceptionCode& ec
program->setLinkFailureFlag(false);
}
- m_context->linkProgram(program);
+ m_context->linkProgram(objectOrZero(program));
program->cacheActiveAttribLocations();
cleanupAfterGraphicsCall(false);
}
@@ -2041,7 +2052,7 @@ void WebGLRenderingContext::shaderSource(WebGLShader* shader, const String& stri
UNUSED_PARAM(ec);
if (!validateWebGLObject(shader))
return;
- m_context->shaderSource(shader, string);
+ m_context->shaderSource(objectOrZero(shader), string);
cleanupAfterGraphicsCall(false);
}
@@ -2930,7 +2941,7 @@ void WebGLRenderingContext::useProgram(WebGLProgram* program, ExceptionCode& ec)
return;
}
m_currentProgram = program;
- m_context->useProgram(program);
+ m_context->useProgram(objectOrZero(program));
cleanupAfterGraphicsCall(false);
}
@@ -2939,7 +2950,7 @@ void WebGLRenderingContext::validateProgram(WebGLProgram* program, ExceptionCode
UNUSED_PARAM(ec);
if (!validateWebGLObject(program))
return;
- m_context->validateProgram(program);
+ m_context->validateProgram(objectOrZero(program));
cleanupAfterGraphicsCall(false);
}
@@ -3005,6 +3016,7 @@ void WebGLRenderingContext::vertexAttrib4fv(unsigned long index, float* v, int s
void WebGLRenderingContext::vertexAttribPointer(unsigned long index, long size, unsigned long type, bool normalized, long stride, long offset, ExceptionCode& ec)
{
+ UNUSED_PARAM(ec);
if (index >= m_maxVertexAttribs) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
return;
@@ -3018,15 +3030,17 @@ void WebGLRenderingContext::vertexAttribPointer(unsigned long index, long size,
return;
}
// Determine the number of elements the bound buffer can hold, given the offset, size, type and stride
- long bytesPerElement = size * sizeInBytes(type, ec);
- if (bytesPerElement <= 0)
+ long bytesPerElement = size * sizeInBytes(type);
+ if (bytesPerElement <= 0) {
+ m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
return;
+ }
if (index >= m_vertexAttribState.size())
m_vertexAttribState.resize(index + 1);
long validatedStride = bytesPerElement;
- if (stride != 0) {
+ if (stride) {
if ((long) stride < bytesPerElement) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
return;
@@ -3059,12 +3073,12 @@ void WebGLRenderingContext::viewport(long x, long y, unsigned long width, unsign
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::removeObject(CanvasObject* object)
+void WebGLRenderingContext::removeObject(WebGLObject* object)
{
m_canvasObjects.remove(object);
}
-void WebGLRenderingContext::addObject(CanvasObject* object)
+void WebGLRenderingContext::addObject(WebGLObject* object)
{
removeObject(object);
m_canvasObjects.add(object);
@@ -3072,8 +3086,8 @@ void WebGLRenderingContext::addObject(CanvasObject* object)
void WebGLRenderingContext::detachAndRemoveAllObjects()
{
- HashSet<RefPtr<CanvasObject> >::iterator pend = m_canvasObjects.end();
- for (HashSet<RefPtr<CanvasObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it)
+ HashSet<RefPtr<WebGLObject> >::iterator pend = m_canvasObjects.end();
+ for (HashSet<RefPtr<WebGLObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it)
(*it)->detachContext();
m_canvasObjects.clear();
@@ -3083,8 +3097,8 @@ WebGLTexture* WebGLRenderingContext::findTexture(Platform3DObject obj)
{
if (!obj)
return 0;
- HashSet<RefPtr<CanvasObject> >::iterator pend = m_canvasObjects.end();
- for (HashSet<RefPtr<CanvasObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it) {
+ HashSet<RefPtr<WebGLObject> >::iterator pend = m_canvasObjects.end();
+ for (HashSet<RefPtr<WebGLObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it) {
if ((*it)->isTexture() && (*it)->object() == obj)
return reinterpret_cast<WebGLTexture*>((*it).get());
}
@@ -3095,8 +3109,8 @@ WebGLRenderbuffer* WebGLRenderingContext::findRenderbuffer(Platform3DObject obj)
{
if (!obj)
return 0;
- HashSet<RefPtr<CanvasObject> >::iterator pend = m_canvasObjects.end();
- for (HashSet<RefPtr<CanvasObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it) {
+ HashSet<RefPtr<WebGLObject> >::iterator pend = m_canvasObjects.end();
+ for (HashSet<RefPtr<WebGLObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it) {
if ((*it)->isRenderbuffer() && (*it)->object() == obj)
return reinterpret_cast<WebGLRenderbuffer*>((*it).get());
}
@@ -3107,8 +3121,8 @@ WebGLBuffer* WebGLRenderingContext::findBuffer(Platform3DObject obj)
{
if (!obj)
return 0;
- HashSet<RefPtr<CanvasObject> >::iterator pend = m_canvasObjects.end();
- for (HashSet<RefPtr<CanvasObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it) {
+ HashSet<RefPtr<WebGLObject> >::iterator pend = m_canvasObjects.end();
+ for (HashSet<RefPtr<WebGLObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it) {
if ((*it)->isBuffer() && (*it)->object() == obj)
return reinterpret_cast<WebGLBuffer*>((*it).get());
}
@@ -3119,8 +3133,8 @@ WebGLShader* WebGLRenderingContext::findShader(Platform3DObject obj)
{
if (!obj)
return 0;
- HashSet<RefPtr<CanvasObject> >::iterator pend = m_canvasObjects.end();
- for (HashSet<RefPtr<CanvasObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it) {
+ HashSet<RefPtr<WebGLObject> >::iterator pend = m_canvasObjects.end();
+ for (HashSet<RefPtr<WebGLObject> >::iterator it = m_canvasObjects.begin(); it != pend; ++it) {
if ((*it)->isShader() && (*it)->object() == obj)
return reinterpret_cast<WebGLShader*>((*it).get());
}
@@ -3242,9 +3256,9 @@ void WebGLRenderingContext::handleNPOTTextures(bool prepareToDraw)
texCubeMap = m_textureUnits[ii].m_textureCubeMapBinding.get();
}
if (m_textureUnits[ii].m_texture2DBinding && m_textureUnits[ii].m_texture2DBinding->needToUseBlackTexture())
- m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, tex2D);
+ m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, objectOrZero(tex2D));
if (m_textureUnits[ii].m_textureCubeMapBinding && m_textureUnits[ii].m_textureCubeMapBinding->needToUseBlackTexture())
- m_context->bindTexture(GraphicsContext3D::TEXTURE_CUBE_MAP, texCubeMap);
+ m_context->bindTexture(GraphicsContext3D::TEXTURE_CUBE_MAP, objectOrZero(texCubeMap));
}
}
if (resetActiveUnit)
@@ -3255,12 +3269,12 @@ void WebGLRenderingContext::createFallbackBlackTextures1x1()
{
unsigned char black[] = {0, 0, 0, 255};
m_blackTexture2D = createTexture();
- m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, m_blackTexture2D.get());
+ m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, m_blackTexture2D->object());
m_context->texImage2D(GraphicsContext3D::TEXTURE_2D, 0, GraphicsContext3D::RGBA, 1, 1,
0, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE, black);
m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, 0);
m_blackTextureCubeMap = createTexture();
- m_context->bindTexture(GraphicsContext3D::TEXTURE_CUBE_MAP, m_blackTextureCubeMap.get());
+ m_context->bindTexture(GraphicsContext3D::TEXTURE_CUBE_MAP, m_blackTextureCubeMap->object());
m_context->texImage2D(GraphicsContext3D::TEXTURE_CUBE_MAP_POSITIVE_X, 0, GraphicsContext3D::RGBA, 1, 1,
0, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE, black);
m_context->texImage2D(GraphicsContext3D::TEXTURE_CUBE_MAP_NEGATIVE_X, 0, GraphicsContext3D::RGBA, 1, 1,
@@ -3716,7 +3730,7 @@ void WebGLRenderingContext::initVertexAttrib0()
{
m_vertexAttribState.resize(1);
m_vertexAttrib0Buffer = createBuffer();
- m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, m_vertexAttrib0Buffer.get());
+ m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, m_vertexAttrib0Buffer->object());
m_context->bufferData(GraphicsContext3D::ARRAY_BUFFER, 0, GraphicsContext3D::DYNAMIC_DRAW);
m_context->vertexAttribPointer(0, 4, GraphicsContext3D::FLOAT, false, 0, 0);
m_vertexAttribState[0].bufferBinding = m_vertexAttrib0Buffer;
@@ -3735,7 +3749,7 @@ bool WebGLRenderingContext::simulateVertexAttrib0(long numVertex)
if (state.enabled || !m_currentProgram || !m_currentProgram->object()
|| !m_currentProgram->isUsingVertexAttrib0())
return false;
- m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, m_vertexAttrib0Buffer.get());
+ m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, m_vertexAttrib0Buffer->object());
long bufferDataSize = (numVertex + 1) * 4 * sizeof(float);
if (bufferDataSize > m_vertexAttrib0BufferSize
|| state.value[0] != m_vertexAttrib0BufferValue[0]
@@ -3764,10 +3778,10 @@ void WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation()
{
const VertexAttribState& state = m_vertexAttribState[0];
if (state.bufferBinding != m_vertexAttrib0Buffer) {
- m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, state.bufferBinding.get());
+ m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, objectOrZero(state.bufferBinding.get()));
m_context->vertexAttribPointer(0, state.size, state.type, state.normalized, state.originalStride, state.offset);
}
- m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, m_boundArrayBuffer.get());
+ m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, objectOrZero(m_boundArrayBuffer.get()));
}
} // namespace WebCore
diff --git a/WebCore/html/canvas/WebGLRenderingContext.h b/WebCore/html/canvas/WebGLRenderingContext.h
index 017570b..608797f 100644
--- a/WebCore/html/canvas/WebGLRenderingContext.h
+++ b/WebCore/html/canvas/WebGLRenderingContext.h
@@ -29,11 +29,11 @@
#include "CanvasRenderingContext.h"
#include "ExceptionCode.h"
#include "Float32Array.h"
-#include "WebGLGetInfo.h"
-#include "Int32Array.h"
-#include "Uint8Array.h"
#include "GraphicsContext3D.h"
+#include "Int32Array.h"
#include "PlatformString.h"
+#include "Uint8Array.h"
+#include "WebGLGetInfo.h"
namespace WebCore {
@@ -41,7 +41,7 @@ class WebGLActiveInfo;
class WebGLBuffer;
class WebGLContextAttributes;
class WebGLFramebuffer;
-class CanvasObject;
+class WebGLObject;
class WebGLProgram;
class WebGLRenderbuffer;
class WebGLShader;
@@ -52,480 +52,478 @@ class HTMLVideoElement;
class ImageData;
class WebKitCSSMatrix;
- class WebGLRenderingContext : public CanvasRenderingContext {
- public:
- static PassOwnPtr<WebGLRenderingContext> create(HTMLCanvasElement*, WebGLContextAttributes*);
- virtual ~WebGLRenderingContext();
-
- virtual bool is3d() const { return true; }
- virtual bool isAccelerated() const { return true; }
-
- // Helper to return the size in bytes of OpenGL data types
- // like GL_FLOAT, GL_INT, etc.
- int sizeInBytes(int type, ExceptionCode& ec);
-
- void activeTexture(unsigned long texture, ExceptionCode& ec);
- void attachShader(WebGLProgram*, WebGLShader*, ExceptionCode& ec);
- void bindAttribLocation(WebGLProgram*, unsigned long index, const String& name, ExceptionCode& ec);
- void bindBuffer(unsigned long target, WebGLBuffer*, ExceptionCode& ec);
- void bindFramebuffer(unsigned long target, WebGLFramebuffer*, ExceptionCode& ec);
- void bindRenderbuffer(unsigned long target, WebGLRenderbuffer*, ExceptionCode& ec);
- void bindTexture(unsigned long target, WebGLTexture*, ExceptionCode& ec);
- void blendColor(double red, double green, double blue, double alpha);
- void blendEquation(unsigned long mode);
- void blendEquationSeparate(unsigned long modeRGB, unsigned long modeAlpha);
- void blendFunc(unsigned long sfactor, unsigned long dfactor);
- void blendFuncSeparate(unsigned long srcRGB, unsigned long dstRGB, unsigned long srcAlpha, unsigned long dstAlpha);
+class WebGLRenderingContext : public CanvasRenderingContext {
+public:
+ static PassOwnPtr<WebGLRenderingContext> create(HTMLCanvasElement*, WebGLContextAttributes*);
+ virtual ~WebGLRenderingContext();
- void bufferData(unsigned long target, int size, unsigned long usage, ExceptionCode&);
- void bufferData(unsigned long target, ArrayBuffer* data, unsigned long usage, ExceptionCode&);
- void bufferData(unsigned long target, ArrayBufferView* data, unsigned long usage, ExceptionCode&);
- void bufferSubData(unsigned long target, long offset, ArrayBuffer* data, ExceptionCode&);
- void bufferSubData(unsigned long target, long offset, ArrayBufferView* data, ExceptionCode&);
-
- unsigned long checkFramebufferStatus(unsigned long target);
- void clear(unsigned long mask);
- void clearColor(double red, double green, double blue, double alpha);
- void clearDepth(double);
- void clearStencil(long);
- void colorMask(bool red, bool green, bool blue, bool alpha);
- void compileShader(WebGLShader*, ExceptionCode& ec);
-
- //void compressedTexImage2D(unsigned long target, long level, unsigned long internalformat, unsigned long width, unsigned long height, long border, unsigned long imageSize, const void* data);
- //void compressedTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, unsigned long width, unsigned long height, unsigned long format, unsigned long imageSize, const void* data);
-
- void copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, unsigned long width, unsigned long height, long border);
- void copyTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, long x, long y, unsigned long width, unsigned long height);
-
- PassRefPtr<WebGLBuffer> createBuffer();
- PassRefPtr<WebGLFramebuffer> createFramebuffer();
- PassRefPtr<WebGLProgram> createProgram();
- PassRefPtr<WebGLRenderbuffer> createRenderbuffer();
- PassRefPtr<WebGLShader> createShader(unsigned long type, ExceptionCode&);
- PassRefPtr<WebGLTexture> createTexture();
-
- void cullFace(unsigned long mode);
-
- void deleteBuffer(WebGLBuffer*);
- void deleteFramebuffer(WebGLFramebuffer*);
- void deleteProgram(WebGLProgram*);
- void deleteRenderbuffer(WebGLRenderbuffer*);
- void deleteShader(WebGLShader*);
- void deleteTexture(WebGLTexture*);
-
- void depthFunc(unsigned long);
- void depthMask(bool);
- void depthRange(double zNear, double zFar);
- void detachShader(WebGLProgram*, WebGLShader*, ExceptionCode&);
- void disable(unsigned long cap);
- void disableVertexAttribArray(unsigned long index, ExceptionCode&);
- void drawArrays(unsigned long mode, long first, long count, ExceptionCode&);
- void drawElements(unsigned long mode, long count, unsigned long type, long offset, ExceptionCode&);
-
- void enable(unsigned long cap);
- void enableVertexAttribArray(unsigned long index, ExceptionCode&);
- void finish();
- void flush();
- void framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, WebGLRenderbuffer*, ExceptionCode& ec);
- void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, WebGLTexture*, long level, ExceptionCode& ec);
- void frontFace(unsigned long mode);
- void generateMipmap(unsigned long target);
-
- PassRefPtr<WebGLActiveInfo> getActiveAttrib(WebGLProgram*, unsigned long index, ExceptionCode&);
- PassRefPtr<WebGLActiveInfo> getActiveUniform(WebGLProgram*, unsigned long index, ExceptionCode&);
-
- bool getAttachedShaders(WebGLProgram*, Vector<WebGLShader*>&, ExceptionCode&);
-
- int getAttribLocation(WebGLProgram*, const String& name);
-
- WebGLGetInfo getBufferParameter(unsigned long target, unsigned long pname, ExceptionCode&);
-
- PassRefPtr<WebGLContextAttributes> getContextAttributes();
-
- unsigned long getError();
-
- WebGLGetInfo getFramebufferAttachmentParameter(unsigned long target, unsigned long attachment, unsigned long pname, ExceptionCode&);
-
- WebGLGetInfo getParameter(unsigned long pname, ExceptionCode&);
-
- WebGLGetInfo getProgramParameter(WebGLProgram*, unsigned long pname, ExceptionCode&);
-
- String getProgramInfoLog(WebGLProgram*, ExceptionCode& ec);
-
- WebGLGetInfo getRenderbufferParameter(unsigned long target, unsigned long pname, ExceptionCode&);
-
- WebGLGetInfo getShaderParameter(WebGLShader*, unsigned long pname, ExceptionCode& ec);
-
- String getShaderInfoLog(WebGLShader*, ExceptionCode& ec);
-
- // TBD
- // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-
- String getShaderSource(WebGLShader*, ExceptionCode&);
- String getString(unsigned long name);
-
- WebGLGetInfo getTexParameter(unsigned long target, unsigned long pname, ExceptionCode&);
-
- WebGLGetInfo getUniform(WebGLProgram*, const WebGLUniformLocation*, ExceptionCode&);
-
- PassRefPtr<WebGLUniformLocation> getUniformLocation(WebGLProgram*, const String&, ExceptionCode&);
-
- WebGLGetInfo getVertexAttrib(unsigned long index, unsigned long pname, ExceptionCode&);
-
- long getVertexAttribOffset(unsigned long index, unsigned long pname);
-
- void hint(unsigned long target, unsigned long mode);
- bool isBuffer(WebGLBuffer*);
- bool isEnabled(unsigned long cap);
- bool isFramebuffer(WebGLFramebuffer*);
- bool isProgram(WebGLProgram*);
- bool isRenderbuffer(WebGLRenderbuffer*);
- bool isShader(WebGLShader*);
- bool isTexture(WebGLTexture*);
- void lineWidth(double);
- void linkProgram(WebGLProgram*, ExceptionCode&);
- void pixelStorei(unsigned long pname, long param);
- void polygonOffset(double factor, double units);
- void readPixels(long x, long y, long width, long height, unsigned long format, unsigned long type, ArrayBufferView* pixels);
- void releaseShaderCompiler();
- void renderbufferStorage(unsigned long target, unsigned long internalformat, unsigned long width, unsigned long height);
- void sampleCoverage(double value, bool invert);
- void scissor(long x, long y, unsigned long width, unsigned long height);
- void shaderSource(WebGLShader*, const String&, ExceptionCode&);
- void stencilFunc(unsigned long func, long ref, unsigned long mask);
- void stencilFuncSeparate(unsigned long face, unsigned long func, long ref, unsigned long mask);
- void stencilMask(unsigned long);
- void stencilMaskSeparate(unsigned long face, unsigned long mask);
- void stencilOp(unsigned long fail, unsigned long zfail, unsigned long zpass);
- void stencilOpSeparate(unsigned long face, unsigned long fail, unsigned long zfail, unsigned long zpass);
+ virtual bool is3d() const { return true; }
+ virtual bool isAccelerated() const { return true; }
- void texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned width, unsigned height, unsigned border,
- unsigned format, unsigned type, ArrayBufferView* pixels, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, ImageData* pixels, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, HTMLImageElement* image, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, HTMLCanvasElement* canvas, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, HTMLVideoElement* video, ExceptionCode&);
- // Obsolete entry points -- to be removed shortly. (FIXME)
- void texImage2D(unsigned target, unsigned level, ImageData* pixels, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, ImageData* pixels, bool flipY, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, ImageData* pixels, bool flipY, bool premultiplyAlpha, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLImageElement* image, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLImageElement* image, bool flipY, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLImageElement* image, bool flipY, bool premultiplyAlpha, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLCanvasElement* canvas, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLCanvasElement* canvas, bool flipY, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLCanvasElement* canvas, bool flipY, bool premultiplyAlpha, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLVideoElement* video, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLVideoElement* video, bool flipY, ExceptionCode&);
- void texImage2D(unsigned target, unsigned level, HTMLVideoElement* video, bool flipY, bool premultiplyAlpha, ExceptionCode&);
-
- void texParameterf(unsigned target, unsigned pname, float param);
- void texParameteri(unsigned target, unsigned pname, int param);
-
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
- unsigned width, unsigned height,
- unsigned format, unsigned type, ArrayBufferView* pixels, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
- unsigned format, unsigned type, ImageData* pixels, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
- unsigned format, unsigned type, HTMLImageElement* image, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
- unsigned format, unsigned type, HTMLCanvasElement* canvas, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
- unsigned format, unsigned type, HTMLVideoElement* video, ExceptionCode&);
- // Obsolete entry points -- to be removed shortly. (FIXME)
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, ImageData* pixels, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, ImageData* pixels, bool flipY, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, ImageData* pixels, bool flipY, bool premultiplyAlpha, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLImageElement* image, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLImageElement* image, bool flipY, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLImageElement* image, bool flipY, bool premultiplyAlpha, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLCanvasElement* canvas, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLCanvasElement* canvas, bool flipY, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLCanvasElement* canvas, bool flipY, bool premultiplyAlpha, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLVideoElement* video, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLVideoElement* video, bool flipY, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLVideoElement* video, bool flipY, bool premultiplyAlpha, ExceptionCode&);
-
- void uniform1f(const WebGLUniformLocation* location, float x, ExceptionCode&);
- void uniform1fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
- void uniform1fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&);
- void uniform1i(const WebGLUniformLocation* location, int x, ExceptionCode&);
- void uniform1iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
- void uniform1iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&);
- void uniform2f(const WebGLUniformLocation* location, float x, float y, ExceptionCode&);
- void uniform2fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
- void uniform2fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&);
- void uniform2i(const WebGLUniformLocation* location, int x, int y, ExceptionCode&);
- void uniform2iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
- void uniform2iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&);
- void uniform3f(const WebGLUniformLocation* location, float x, float y, float z, ExceptionCode&);
- void uniform3fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
- void uniform3fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&);
- void uniform3i(const WebGLUniformLocation* location, int x, int y, int z, ExceptionCode&);
- void uniform3iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
- void uniform3iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&);
- void uniform4f(const WebGLUniformLocation* location, float x, float y, float z, float w, ExceptionCode&);
- void uniform4fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
- void uniform4fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&);
- void uniform4i(const WebGLUniformLocation* location, int x, int y, int z, int w, ExceptionCode&);
- void uniform4iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
- void uniform4iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&);
- void uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, Float32Array* value, ExceptionCode&);
- void uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&);
- void uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, Float32Array* value, ExceptionCode&);
- void uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&);
- void uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, Float32Array* value, ExceptionCode&);
- void uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&);
-
- void useProgram(WebGLProgram*, ExceptionCode&);
- void validateProgram(WebGLProgram*, ExceptionCode&);
-
- void vertexAttrib1f(unsigned long index, float x);
- void vertexAttrib1fv(unsigned long index, Float32Array* values);
- void vertexAttrib1fv(unsigned long index, float* values, int size);
- void vertexAttrib2f(unsigned long index, float x, float y);
- void vertexAttrib2fv(unsigned long index, Float32Array* values);
- void vertexAttrib2fv(unsigned long index, float* values, int size);
- void vertexAttrib3f(unsigned long index, float x, float y, float z);
- void vertexAttrib3fv(unsigned long index, Float32Array* values);
- void vertexAttrib3fv(unsigned long index, float* values, int size);
- void vertexAttrib4f(unsigned long index, float x, float y, float z, float w);
- void vertexAttrib4fv(unsigned long index, Float32Array* values);
- void vertexAttrib4fv(unsigned long index, float* values, int size);
- void vertexAttribPointer(unsigned long index, long size, unsigned long type, bool normalized,
- long stride, long offset, ExceptionCode&);
-
- void viewport(long x, long y, unsigned long width, unsigned long height);
-
- GraphicsContext3D* graphicsContext3D() const { return m_context.get(); }
-
- void reshape(int width, int height);
-
- // Return value true indicates canvas is updated during the call,
- // false indicates no updates.
- bool paintRenderingResultsToCanvas();
-
- // Helpers for notification about paint events.
- void beginPaint();
- void endPaint();
-
- void removeObject(CanvasObject*);
-
- private:
- friend class CanvasObject;
-
- WebGLRenderingContext(HTMLCanvasElement*, PassOwnPtr<GraphicsContext3D>);
-
- void addObject(CanvasObject*);
- void detachAndRemoveAllObjects();
- WebGLTexture* findTexture(Platform3DObject);
- WebGLRenderbuffer* findRenderbuffer(Platform3DObject);
- WebGLBuffer* findBuffer(Platform3DObject);
- WebGLShader* findShader(Platform3DObject);
-
- void markContextChanged();
- void cleanupAfterGraphicsCall(bool changed)
+ void activeTexture(unsigned long texture, ExceptionCode& ec);
+ void attachShader(WebGLProgram*, WebGLShader*, ExceptionCode& ec);
+ void bindAttribLocation(WebGLProgram*, unsigned long index, const String& name, ExceptionCode& ec);
+ void bindBuffer(unsigned long target, WebGLBuffer*, ExceptionCode& ec);
+ void bindFramebuffer(unsigned long target, WebGLFramebuffer*, ExceptionCode& ec);
+ void bindRenderbuffer(unsigned long target, WebGLRenderbuffer*, ExceptionCode& ec);
+ void bindTexture(unsigned long target, WebGLTexture*, ExceptionCode& ec);
+ void blendColor(double red, double green, double blue, double alpha);
+ void blendEquation(unsigned long mode);
+ void blendEquationSeparate(unsigned long modeRGB, unsigned long modeAlpha);
+ void blendFunc(unsigned long sfactor, unsigned long dfactor);
+ void blendFuncSeparate(unsigned long srcRGB, unsigned long dstRGB, unsigned long srcAlpha, unsigned long dstAlpha);
+
+ void bufferData(unsigned long target, int size, unsigned long usage, ExceptionCode&);
+ void bufferData(unsigned long target, ArrayBuffer* data, unsigned long usage, ExceptionCode&);
+ void bufferData(unsigned long target, ArrayBufferView* data, unsigned long usage, ExceptionCode&);
+ void bufferSubData(unsigned long target, long offset, ArrayBuffer* data, ExceptionCode&);
+ void bufferSubData(unsigned long target, long offset, ArrayBufferView* data, ExceptionCode&);
+
+ unsigned long checkFramebufferStatus(unsigned long target);
+ void clear(unsigned long mask);
+ void clearColor(double red, double green, double blue, double alpha);
+ void clearDepth(double);
+ void clearStencil(long);
+ void colorMask(bool red, bool green, bool blue, bool alpha);
+ void compileShader(WebGLShader*, ExceptionCode& ec);
+
+ // void compressedTexImage2D(unsigned long target, long level, unsigned long internalformat, unsigned long width, unsigned long height, long border, unsigned long imageSize, const void* data);
+ // void compressedTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, unsigned long width, unsigned long height, unsigned long format, unsigned long imageSize, const void* data);
+
+ void copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, unsigned long width, unsigned long height, long border);
+ void copyTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, long x, long y, unsigned long width, unsigned long height);
+
+ PassRefPtr<WebGLBuffer> createBuffer();
+ PassRefPtr<WebGLFramebuffer> createFramebuffer();
+ PassRefPtr<WebGLProgram> createProgram();
+ PassRefPtr<WebGLRenderbuffer> createRenderbuffer();
+ PassRefPtr<WebGLShader> createShader(unsigned long type, ExceptionCode&);
+ PassRefPtr<WebGLTexture> createTexture();
+
+ void cullFace(unsigned long mode);
+
+ void deleteBuffer(WebGLBuffer*);
+ void deleteFramebuffer(WebGLFramebuffer*);
+ void deleteProgram(WebGLProgram*);
+ void deleteRenderbuffer(WebGLRenderbuffer*);
+ void deleteShader(WebGLShader*);
+ void deleteTexture(WebGLTexture*);
+
+ void depthFunc(unsigned long);
+ void depthMask(bool);
+ void depthRange(double zNear, double zFar);
+ void detachShader(WebGLProgram*, WebGLShader*, ExceptionCode&);
+ void disable(unsigned long cap);
+ void disableVertexAttribArray(unsigned long index, ExceptionCode&);
+ void drawArrays(unsigned long mode, long first, long count, ExceptionCode&);
+ void drawElements(unsigned long mode, long count, unsigned long type, long offset, ExceptionCode&);
+
+ void enable(unsigned long cap);
+ void enableVertexAttribArray(unsigned long index, ExceptionCode&);
+ void finish();
+ void flush();
+ void framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, WebGLRenderbuffer*, ExceptionCode& ec);
+ void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, WebGLTexture*, long level, ExceptionCode& ec);
+ void frontFace(unsigned long mode);
+ void generateMipmap(unsigned long target);
+
+ PassRefPtr<WebGLActiveInfo> getActiveAttrib(WebGLProgram*, unsigned long index, ExceptionCode&);
+ PassRefPtr<WebGLActiveInfo> getActiveUniform(WebGLProgram*, unsigned long index, ExceptionCode&);
+
+ bool getAttachedShaders(WebGLProgram*, Vector<WebGLShader*>&, ExceptionCode&);
+
+ int getAttribLocation(WebGLProgram*, const String& name);
+
+ WebGLGetInfo getBufferParameter(unsigned long target, unsigned long pname, ExceptionCode&);
+
+ PassRefPtr<WebGLContextAttributes> getContextAttributes();
+
+ unsigned long getError();
+
+ WebGLGetInfo getFramebufferAttachmentParameter(unsigned long target, unsigned long attachment, unsigned long pname, ExceptionCode&);
+
+ WebGLGetInfo getParameter(unsigned long pname, ExceptionCode&);
+
+ WebGLGetInfo getProgramParameter(WebGLProgram*, unsigned long pname, ExceptionCode&);
+
+ String getProgramInfoLog(WebGLProgram*, ExceptionCode& ec);
+
+ WebGLGetInfo getRenderbufferParameter(unsigned long target, unsigned long pname, ExceptionCode&);
+
+ WebGLGetInfo getShaderParameter(WebGLShader*, unsigned long pname, ExceptionCode& ec);
+
+ String getShaderInfoLog(WebGLShader*, ExceptionCode& ec);
+
+ // TBD
+ // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+
+ String getShaderSource(WebGLShader*, ExceptionCode&);
+ String getString(unsigned long name);
+
+ WebGLGetInfo getTexParameter(unsigned long target, unsigned long pname, ExceptionCode&);
+
+ WebGLGetInfo getUniform(WebGLProgram*, const WebGLUniformLocation*, ExceptionCode&);
+
+ PassRefPtr<WebGLUniformLocation> getUniformLocation(WebGLProgram*, const String&, ExceptionCode&);
+
+ WebGLGetInfo getVertexAttrib(unsigned long index, unsigned long pname, ExceptionCode&);
+
+ long getVertexAttribOffset(unsigned long index, unsigned long pname);
+
+ void hint(unsigned long target, unsigned long mode);
+ bool isBuffer(WebGLBuffer*);
+ bool isEnabled(unsigned long cap);
+ bool isFramebuffer(WebGLFramebuffer*);
+ bool isProgram(WebGLProgram*);
+ bool isRenderbuffer(WebGLRenderbuffer*);
+ bool isShader(WebGLShader*);
+ bool isTexture(WebGLTexture*);
+ void lineWidth(double);
+ void linkProgram(WebGLProgram*, ExceptionCode&);
+ void pixelStorei(unsigned long pname, long param);
+ void polygonOffset(double factor, double units);
+ void readPixels(long x, long y, long width, long height, unsigned long format, unsigned long type, ArrayBufferView* pixels);
+ void releaseShaderCompiler();
+ void renderbufferStorage(unsigned long target, unsigned long internalformat, unsigned long width, unsigned long height);
+ void sampleCoverage(double value, bool invert);
+ void scissor(long x, long y, unsigned long width, unsigned long height);
+ void shaderSource(WebGLShader*, const String&, ExceptionCode&);
+ void stencilFunc(unsigned long func, long ref, unsigned long mask);
+ void stencilFuncSeparate(unsigned long face, unsigned long func, long ref, unsigned long mask);
+ void stencilMask(unsigned long);
+ void stencilMaskSeparate(unsigned long face, unsigned long mask);
+ void stencilOp(unsigned long fail, unsigned long zfail, unsigned long zpass);
+ void stencilOpSeparate(unsigned long face, unsigned long fail, unsigned long zfail, unsigned long zpass);
+
+ void texImage2D(unsigned target, unsigned level, unsigned internalformat,
+ unsigned width, unsigned height, unsigned border,
+ unsigned format, unsigned type, ArrayBufferView* pixels, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, unsigned internalformat,
+ unsigned format, unsigned type, ImageData* pixels, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, unsigned internalformat,
+ unsigned format, unsigned type, HTMLImageElement* image, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, unsigned internalformat,
+ unsigned format, unsigned type, HTMLCanvasElement* canvas, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, unsigned internalformat,
+ unsigned format, unsigned type, HTMLVideoElement* video, ExceptionCode&);
+ // Obsolete entry points -- to be removed shortly. (FIXME)
+ void texImage2D(unsigned target, unsigned level, ImageData* pixels, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, ImageData* pixels, bool flipY, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, ImageData* pixels, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLImageElement* image, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLImageElement* image, bool flipY, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLImageElement* image, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLCanvasElement* canvas, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLCanvasElement* canvas, bool flipY, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLCanvasElement* canvas, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLVideoElement* video, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLVideoElement* video, bool flipY, ExceptionCode&);
+ void texImage2D(unsigned target, unsigned level, HTMLVideoElement* video, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+
+ void texParameterf(unsigned target, unsigned pname, float param);
+ void texParameteri(unsigned target, unsigned pname, int param);
+
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
+ unsigned width, unsigned height,
+ unsigned format, unsigned type, ArrayBufferView* pixels, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
+ unsigned format, unsigned type, ImageData* pixels, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
+ unsigned format, unsigned type, HTMLImageElement* image, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
+ unsigned format, unsigned type, HTMLCanvasElement* canvas, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
+ unsigned format, unsigned type, HTMLVideoElement* video, ExceptionCode&);
+ // Obsolete entry points -- to be removed shortly. (FIXME)
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, ImageData* pixels, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, ImageData* pixels, bool flipY, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, ImageData* pixels, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLImageElement* image, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLImageElement* image, bool flipY, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLImageElement* image, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLCanvasElement* canvas, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLCanvasElement* canvas, bool flipY, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLCanvasElement* canvas, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLVideoElement* video, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLVideoElement* video, bool flipY, ExceptionCode&);
+ void texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, HTMLVideoElement* video, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+
+ void uniform1f(const WebGLUniformLocation* location, float x, ExceptionCode&);
+ void uniform1fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
+ void uniform1fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&);
+ void uniform1i(const WebGLUniformLocation* location, int x, ExceptionCode&);
+ void uniform1iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
+ void uniform1iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&);
+ void uniform2f(const WebGLUniformLocation* location, float x, float y, ExceptionCode&);
+ void uniform2fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
+ void uniform2fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&);
+ void uniform2i(const WebGLUniformLocation* location, int x, int y, ExceptionCode&);
+ void uniform2iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
+ void uniform2iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&);
+ void uniform3f(const WebGLUniformLocation* location, float x, float y, float z, ExceptionCode&);
+ void uniform3fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
+ void uniform3fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&);
+ void uniform3i(const WebGLUniformLocation* location, int x, int y, int z, ExceptionCode&);
+ void uniform3iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
+ void uniform3iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&);
+ void uniform4f(const WebGLUniformLocation* location, float x, float y, float z, float w, ExceptionCode&);
+ void uniform4fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
+ void uniform4fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&);
+ void uniform4i(const WebGLUniformLocation* location, int x, int y, int z, int w, ExceptionCode&);
+ void uniform4iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
+ void uniform4iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&);
+ void uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, Float32Array* value, ExceptionCode&);
+ void uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&);
+ void uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, Float32Array* value, ExceptionCode&);
+ void uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&);
+ void uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, Float32Array* value, ExceptionCode&);
+ void uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&);
+
+ void useProgram(WebGLProgram*, ExceptionCode&);
+ void validateProgram(WebGLProgram*, ExceptionCode&);
+
+ void vertexAttrib1f(unsigned long index, float x);
+ void vertexAttrib1fv(unsigned long index, Float32Array* values);
+ void vertexAttrib1fv(unsigned long index, float* values, int size);
+ void vertexAttrib2f(unsigned long index, float x, float y);
+ void vertexAttrib2fv(unsigned long index, Float32Array* values);
+ void vertexAttrib2fv(unsigned long index, float* values, int size);
+ void vertexAttrib3f(unsigned long index, float x, float y, float z);
+ void vertexAttrib3fv(unsigned long index, Float32Array* values);
+ void vertexAttrib3fv(unsigned long index, float* values, int size);
+ void vertexAttrib4f(unsigned long index, float x, float y, float z, float w);
+ void vertexAttrib4fv(unsigned long index, Float32Array* values);
+ void vertexAttrib4fv(unsigned long index, float* values, int size);
+ void vertexAttribPointer(unsigned long index, long size, unsigned long type, bool normalized,
+ long stride, long offset, ExceptionCode&);
+
+ void viewport(long x, long y, unsigned long width, unsigned long height);
+
+ virtual GraphicsContext3D* graphicsContext3D() const { return m_context.get(); }
+
+ void reshape(int width, int height);
+
+ virtual void paintRenderingResultsToCanvas();
+
+ // Helpers for notification about paint events.
+ void beginPaint();
+ void endPaint();
+
+ void removeObject(WebGLObject*);
+
+ private:
+ friend class WebGLObject;
+
+ WebGLRenderingContext(HTMLCanvasElement*, PassOwnPtr<GraphicsContext3D>);
+
+ void addObject(WebGLObject*);
+ void detachAndRemoveAllObjects();
+ WebGLTexture* findTexture(Platform3DObject);
+ WebGLRenderbuffer* findRenderbuffer(Platform3DObject);
+ WebGLBuffer* findBuffer(Platform3DObject);
+ WebGLShader* findShader(Platform3DObject);
+
+ void markContextChanged();
+ void cleanupAfterGraphicsCall(bool changed)
+ {
+ if (changed)
+ markContextChanged();
+ }
+
+ bool isGLES2Compliant();
+
+ // Helper to return the size in bytes of OpenGL data types
+ // like GL_FLOAT, GL_INT, etc.
+ int sizeInBytes(int type);
+
+ // Basic validation of count and offset against number of elements in element array buffer
+ bool validateElementArraySize(unsigned long count, unsigned long type, long offset);
+
+ // Conservative but quick index validation
+ bool validateIndexArrayConservative(unsigned long type, long& numElementsRequired);
+
+ // Precise but slow index validation -- only done if conservative checks fail
+ bool validateIndexArrayPrecise(unsigned long count, unsigned long type, long offset, long& numElementsRequired);
+ bool validateRenderingState(long numElements);
+
+ bool validateWebGLObject(WebGLObject* object);
+
+ OwnPtr<GraphicsContext3D> m_context;
+ bool m_needsUpdate;
+ bool m_markedCanvasDirty;
+ // FIXME: I think this is broken -- it does not increment any
+ // reference counts, so may refer to destroyed objects.
+ HashSet<RefPtr<WebGLObject> > m_canvasObjects;
+
+ // List of bound VBO's. Used to maintain info about sizes for ARRAY_BUFFER and stored values for ELEMENT_ARRAY_BUFFER
+ RefPtr<WebGLBuffer> m_boundArrayBuffer;
+ RefPtr<WebGLBuffer> m_boundElementArrayBuffer;
+
+ // Cached values for vertex attrib range checks
+ class VertexAttribState {
+ public:
+ VertexAttribState()
+ : enabled(false)
+ , bytesPerElement(0)
+ , size(4)
+ , type(GraphicsContext3D::FLOAT)
+ , normalized(false)
+ , stride(16)
+ , originalStride(0)
+ , offset(0)
{
- if (changed)
- markContextChanged();
+ initValue();
}
- bool isGLES2Compliant();
-
- // Basic validation of count and offset against number of elements in element array buffer
- bool validateElementArraySize(unsigned long count, unsigned long type, long offset);
-
- // Conservative but quick index validation
- bool validateIndexArrayConservative(unsigned long type, long& numElementsRequired);
-
- // Precise but slow index validation -- only done if conservative checks fail
- bool validateIndexArrayPrecise(unsigned long count, unsigned long type, long offset, long& numElementsRequired);
- bool validateRenderingState(long numElements);
-
- bool validateWebGLObject(CanvasObject* object);
-
- OwnPtr<GraphicsContext3D> m_context;
- bool m_needsUpdate;
- bool m_markedCanvasDirty;
- // FIXME: I think this is broken -- it does not increment any
- // reference counts, so may refer to destroyed objects.
- HashSet<RefPtr<CanvasObject> > m_canvasObjects;
-
- // List of bound VBO's. Used to maintain info about sizes for ARRAY_BUFFER and stored values for ELEMENT_ARRAY_BUFFER
- RefPtr<WebGLBuffer> m_boundArrayBuffer;
- RefPtr<WebGLBuffer> m_boundElementArrayBuffer;
-
- // Cached values for vertex attrib range checks
- class VertexAttribState {
- public:
- VertexAttribState()
- : enabled(false)
- , bytesPerElement(0)
- , size(4)
- , type(GraphicsContext3D::FLOAT)
- , normalized(false)
- , stride(16)
- , originalStride(0)
- , offset(0)
- {
- initValue();
- }
-
- void initValue()
- {
- value[0] = 0.0f;
- value[1] = 0.0f;
- value[2] = 0.0f;
- value[3] = 1.0f;
- }
-
- bool enabled;
- RefPtr<WebGLBuffer> bufferBinding;
- long bytesPerElement;
- long size;
- unsigned long type;
- bool normalized;
- long stride;
- long originalStride;
- long offset;
- float value[4];
- };
-
- Vector<VertexAttribState> m_vertexAttribState;
- unsigned m_maxVertexAttribs;
- RefPtr<WebGLBuffer> m_vertexAttrib0Buffer;
- long m_vertexAttrib0BufferSize;
- float m_vertexAttrib0BufferValue[4];
-
- RefPtr<WebGLProgram> m_currentProgram;
- RefPtr<WebGLFramebuffer> m_framebufferBinding;
- RefPtr<WebGLRenderbuffer> m_renderbufferBinding;
- class TextureUnitState {
- public:
- RefPtr<WebGLTexture> m_texture2DBinding;
- RefPtr<WebGLTexture> m_textureCubeMapBinding;
- };
- Vector<TextureUnitState> m_textureUnits;
- unsigned long m_activeTextureUnit;
-
- RefPtr<WebGLTexture> m_blackTexture2D;
- RefPtr<WebGLTexture> m_blackTextureCubeMap;
-
- int m_maxTextureSize;
- int m_maxCubeMapTextureSize;
- int m_maxTextureLevel;
- int m_maxCubeMapTextureLevel;
-
- int m_packAlignment;
- int m_unpackAlignment;
- unsigned long m_implementationColorReadFormat;
- unsigned long m_implementationColorReadType;
- bool m_unpackFlipY;
- bool m_unpackPremultiplyAlpha;
-
- // Helpers for getParameter and others
- WebGLGetInfo getBooleanParameter(unsigned long pname);
- WebGLGetInfo getBooleanArrayParameter(unsigned long pname);
- WebGLGetInfo getFloatParameter(unsigned long pname);
- WebGLGetInfo getIntParameter(unsigned long pname);
- WebGLGetInfo getLongParameter(unsigned long pname);
- WebGLGetInfo getUnsignedLongParameter(unsigned long pname);
- WebGLGetInfo getWebGLFloatArrayParameter(unsigned long pname);
- WebGLGetInfo getWebGLIntArrayParameter(unsigned long pname);
-
- void texImage2DBase(unsigned target, unsigned level, unsigned internalformat,
- unsigned width, unsigned height, unsigned border,
- unsigned format, unsigned type, void* pixels, ExceptionCode&);
- void texImage2DImpl(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, Image* image,
- bool flipY, bool premultiplyAlpha, ExceptionCode&);
- void texSubImage2DBase(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
- unsigned width, unsigned height,
- unsigned format, unsigned type, void* pixels, ExceptionCode&);
- void texSubImage2DImpl(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
- unsigned format, unsigned type,
- Image* image, bool flipY, bool premultiplyAlpha, ExceptionCode&);
-
- void handleNPOTTextures(bool prepareToDraw);
-
- void createFallbackBlackTextures1x1();
-
- // Helper function for copyTex{Sub}Image, check whether the internalformat
- // and the color buffer format of the current bound framebuffer combination
- // is valid.
- bool isTexInternalFormatColorBufferCombinationValid(unsigned long texInternalFormat,
- unsigned long colorBufferFormat);
-
- // Helper function to get the current bound texture.
- WebGLTexture* getTextureBinding(unsigned long target);
-
- // Helper function to check input format/type for functions {copy}Tex{Sub}Image.
- // Generates GL error and returns false if parameters are invalid.
- bool validateTexFuncFormatAndType(unsigned long format, unsigned long type);
-
- // Helper function to check input parameters for functions {copy}Tex{Sub}Image.
- // Generates GL error and returns false if parameters are invalid.
- bool validateTexFuncParameters(unsigned long target, long level,
- unsigned long internalformat,
- long width, long height, long border,
- unsigned long format, unsigned long type);
-
- // Helper function to validate that the given ArrayBufferView
- // is of the correct type and contains enough data for the texImage call.
- // Generates GL error and returns false if parameters are invalid.
- bool validateTexFuncData(long width, long height,
- unsigned long format, unsigned long type,
- ArrayBufferView* pixels);
-
- // Helper function to validate mode for draw{Arrays/Elements}.
- bool validateDrawMode(unsigned long);
-
- // Helper function for texParameterf and texParameteri.
- void texParameter(unsigned long target, unsigned long pname, float parami, int paramf, bool isFloat);
-
- // Helper function to print warnings to console. Currently
- // used only to warn about use of obsolete functions.
- void printWarningToConsole(const String& message);
-
- // Helper function to validate input parameters for framebuffer functions.
- // Generate GL error if parameters are illegal.
- bool validateFramebufferFuncParameters(unsigned long target, unsigned long attachment);
-
- // Helper function to validate blend equation mode.
- bool validateBlendEquation(unsigned long);
-
- // Helper function to validate a GL capability.
- bool validateCapability(unsigned long);
-
- // Helper function to validate input parameters for uniform functions.
- bool validateUniformParameters(const WebGLUniformLocation* location, Float32Array* v, int mod);
- bool validateUniformParameters(const WebGLUniformLocation* location, Int32Array* v, int mod);
- bool validateUniformParameters(const WebGLUniformLocation* location, void* v, int size, int mod);
- bool validateUniformMatrixParameters(const WebGLUniformLocation* location, bool transpose, Float32Array* v, int mod);
- bool validateUniformMatrixParameters(const WebGLUniformLocation* location, bool transpose, void* v, int size, int mod);
-
- // Helper function to validate parameters for bufferData.
- // Return the current bound buffer to target, or 0 if parameters are invalid.
- WebGLBuffer* validateBufferDataParameters(unsigned long target, unsigned long usage);
-
- // Helper functions for vertexAttribNf{v}.
- void vertexAttribfImpl(unsigned long index, int expectedSize, float v0, float v1, float v2, float v3);
- void vertexAttribfvImpl(unsigned long index, Float32Array* v, int expectedSize);
- void vertexAttribfvImpl(unsigned long index, float* v, int size, int expectedSize);
-
- // Helpers for simulating vertexAttrib0
- void initVertexAttrib0();
- bool simulateVertexAttrib0(long numVertex);
- void restoreStatesAfterVertexAttrib0Simulation();
-
- friend class WebGLStateRestorer;
+ void initValue()
+ {
+ value[0] = 0.0f;
+ value[1] = 0.0f;
+ value[2] = 0.0f;
+ value[3] = 1.0f;
+ }
+
+ bool enabled;
+ RefPtr<WebGLBuffer> bufferBinding;
+ long bytesPerElement;
+ long size;
+ unsigned long type;
+ bool normalized;
+ long stride;
+ long originalStride;
+ long offset;
+ float value[4];
+ };
+
+ Vector<VertexAttribState> m_vertexAttribState;
+ unsigned m_maxVertexAttribs;
+ RefPtr<WebGLBuffer> m_vertexAttrib0Buffer;
+ long m_vertexAttrib0BufferSize;
+ float m_vertexAttrib0BufferValue[4];
+
+ RefPtr<WebGLProgram> m_currentProgram;
+ RefPtr<WebGLFramebuffer> m_framebufferBinding;
+ RefPtr<WebGLRenderbuffer> m_renderbufferBinding;
+ class TextureUnitState {
+ public:
+ RefPtr<WebGLTexture> m_texture2DBinding;
+ RefPtr<WebGLTexture> m_textureCubeMapBinding;
};
+ Vector<TextureUnitState> m_textureUnits;
+ unsigned long m_activeTextureUnit;
+
+ RefPtr<WebGLTexture> m_blackTexture2D;
+ RefPtr<WebGLTexture> m_blackTextureCubeMap;
+
+ int m_maxTextureSize;
+ int m_maxCubeMapTextureSize;
+ int m_maxTextureLevel;
+ int m_maxCubeMapTextureLevel;
+
+ int m_packAlignment;
+ int m_unpackAlignment;
+ unsigned long m_implementationColorReadFormat;
+ unsigned long m_implementationColorReadType;
+ bool m_unpackFlipY;
+ bool m_unpackPremultiplyAlpha;
+
+ // Helpers for getParameter and others
+ WebGLGetInfo getBooleanParameter(unsigned long pname);
+ WebGLGetInfo getBooleanArrayParameter(unsigned long pname);
+ WebGLGetInfo getFloatParameter(unsigned long pname);
+ WebGLGetInfo getIntParameter(unsigned long pname);
+ WebGLGetInfo getLongParameter(unsigned long pname);
+ WebGLGetInfo getUnsignedLongParameter(unsigned long pname);
+ WebGLGetInfo getWebGLFloatArrayParameter(unsigned long pname);
+ WebGLGetInfo getWebGLIntArrayParameter(unsigned long pname);
+
+ void texImage2DBase(unsigned target, unsigned level, unsigned internalformat,
+ unsigned width, unsigned height, unsigned border,
+ unsigned format, unsigned type, void* pixels, ExceptionCode&);
+ void texImage2DImpl(unsigned target, unsigned level, unsigned internalformat,
+ unsigned format, unsigned type, Image* image,
+ bool flipY, bool premultiplyAlpha, ExceptionCode&);
+ void texSubImage2DBase(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
+ unsigned width, unsigned height,
+ unsigned format, unsigned type, void* pixels, ExceptionCode&);
+ void texSubImage2DImpl(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset,
+ unsigned format, unsigned type,
+ Image* image, bool flipY, bool premultiplyAlpha, ExceptionCode&);
+
+ void handleNPOTTextures(bool prepareToDraw);
+
+ void createFallbackBlackTextures1x1();
+
+ // Helper function for copyTex{Sub}Image, check whether the internalformat
+ // and the color buffer format of the current bound framebuffer combination
+ // is valid.
+ bool isTexInternalFormatColorBufferCombinationValid(unsigned long texInternalFormat,
+ unsigned long colorBufferFormat);
+
+ // Helper function to get the current bound texture.
+ WebGLTexture* getTextureBinding(unsigned long target);
+
+ // Helper function to check input format/type for functions {copy}Tex{Sub}Image.
+ // Generates GL error and returns false if parameters are invalid.
+ bool validateTexFuncFormatAndType(unsigned long format, unsigned long type);
+
+ // Helper function to check input parameters for functions {copy}Tex{Sub}Image.
+ // Generates GL error and returns false if parameters are invalid.
+ bool validateTexFuncParameters(unsigned long target, long level,
+ unsigned long internalformat,
+ long width, long height, long border,
+ unsigned long format, unsigned long type);
+
+ // Helper function to validate that the given ArrayBufferView
+ // is of the correct type and contains enough data for the texImage call.
+ // Generates GL error and returns false if parameters are invalid.
+ bool validateTexFuncData(long width, long height,
+ unsigned long format, unsigned long type,
+ ArrayBufferView* pixels);
+
+ // Helper function to validate mode for draw{Arrays/Elements}.
+ bool validateDrawMode(unsigned long);
+
+ // Helper function for texParameterf and texParameteri.
+ void texParameter(unsigned long target, unsigned long pname, float parami, int paramf, bool isFloat);
+
+ // Helper function to print warnings to console. Currently
+ // used only to warn about use of obsolete functions.
+ void printWarningToConsole(const String& message);
+
+ // Helper function to validate input parameters for framebuffer functions.
+ // Generate GL error if parameters are illegal.
+ bool validateFramebufferFuncParameters(unsigned long target, unsigned long attachment);
+
+ // Helper function to validate blend equation mode.
+ bool validateBlendEquation(unsigned long);
+
+ // Helper function to validate a GL capability.
+ bool validateCapability(unsigned long);
+
+ // Helper function to validate input parameters for uniform functions.
+ bool validateUniformParameters(const WebGLUniformLocation* location, Float32Array* v, int mod);
+ bool validateUniformParameters(const WebGLUniformLocation* location, Int32Array* v, int mod);
+ bool validateUniformParameters(const WebGLUniformLocation* location, void* v, int size, int mod);
+ bool validateUniformMatrixParameters(const WebGLUniformLocation* location, bool transpose, Float32Array* v, int mod);
+ bool validateUniformMatrixParameters(const WebGLUniformLocation* location, bool transpose, void* v, int size, int mod);
+
+ // Helper function to validate parameters for bufferData.
+ // Return the current bound buffer to target, or 0 if parameters are invalid.
+ WebGLBuffer* validateBufferDataParameters(unsigned long target, unsigned long usage);
+
+ // Helper functions for vertexAttribNf{v}.
+ void vertexAttribfImpl(unsigned long index, int expectedSize, float v0, float v1, float v2, float v3);
+ void vertexAttribfvImpl(unsigned long index, Float32Array* v, int expectedSize);
+ void vertexAttribfvImpl(unsigned long index, float* v, int size, int expectedSize);
+
+ // Helpers for simulating vertexAttrib0
+ void initVertexAttrib0();
+ bool simulateVertexAttrib0(long numVertex);
+ void restoreStatesAfterVertexAttrib0Simulation();
+
+ friend class WebGLStateRestorer;
+};
} // namespace WebCore
diff --git a/WebCore/html/canvas/WebGLRenderingContext.idl b/WebCore/html/canvas/WebGLRenderingContext.idl
index 654c7aa..711aa42 100644
--- a/WebCore/html/canvas/WebGLRenderingContext.idl
+++ b/WebCore/html/canvas/WebGLRenderingContext.idl
@@ -464,8 +464,6 @@ module html {
const unsigned int UNPACK_FLIP_Y_WEBGL = 0x9240;
const unsigned int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
- long sizeInBytes(in unsigned long type) raises(DOMException);
-
void activeTexture(in unsigned long texture) raises(DOMException);
void attachShader(in WebGLProgram program, in WebGLShader shader) raises(DOMException);
void bindAttribLocation(in WebGLProgram program, in unsigned long index, in DOMString name) raises(DOMException);
@@ -538,8 +536,7 @@ module html {
WebGLActiveInfo getActiveUniform(in WebGLProgram program, in unsigned long index)
raises (DOMException);
- // Array getAttachedShaders(GLuint program) raises (DOMException);
- [Custom] void getAttachedShaders(GLuint program)
+ [Custom] void getAttachedShaders(in WebGLProgram program)
raises (DOMException);
int getAttribLocation(in WebGLProgram program, in DOMString name);
diff --git a/WebCore/html/canvas/WebGLShader.cpp b/WebCore/html/canvas/WebGLShader.cpp
index 664d3cb..4f8bf68 100644
--- a/WebCore/html/canvas/WebGLShader.cpp
+++ b/WebCore/html/canvas/WebGLShader.cpp
@@ -28,6 +28,7 @@
#if ENABLE(3D_CANVAS)
#include "WebGLShader.h"
+
#include "WebGLRenderingContext.h"
namespace WebCore {
@@ -38,13 +39,13 @@ PassRefPtr<WebGLShader> WebGLShader::create(WebGLRenderingContext* ctx, Graphics
}
WebGLShader::WebGLShader(WebGLRenderingContext* ctx, GraphicsContext3D::WebGLEnumType type)
- : CanvasObject(ctx)
+ : WebGLObject(ctx)
, m_type(type)
{
setObject(context()->graphicsContext3D()->createShader(type));
}
-void WebGLShader::_deleteObject(Platform3DObject object)
+void WebGLShader::deleteObjectImpl(Platform3DObject object)
{
context()->graphicsContext3D()->deleteShader(object);
}
diff --git a/WebCore/html/canvas/WebGLShader.h b/WebCore/html/canvas/WebGLShader.h
index a0daa59..c0c41df 100644
--- a/WebCore/html/canvas/WebGLShader.h
+++ b/WebCore/html/canvas/WebGLShader.h
@@ -26,31 +26,31 @@
#ifndef WebGLShader_h
#define WebGLShader_h
-#include "CanvasObject.h"
+#include "WebGLObject.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
-
- class WebGLShader : public CanvasObject {
- public:
- virtual ~WebGLShader() { deleteObject(); }
-
- static PassRefPtr<WebGLShader> create(WebGLRenderingContext*, GraphicsContext3D::WebGLEnumType);
- GraphicsContext3D::WebGLEnumType getType() const { return m_type; }
+class WebGLShader : public WebGLObject {
+public:
+ virtual ~WebGLShader() { deleteObject(); }
- private:
- WebGLShader(WebGLRenderingContext*, GraphicsContext3D::WebGLEnumType);
+ static PassRefPtr<WebGLShader> create(WebGLRenderingContext*, GraphicsContext3D::WebGLEnumType);
- virtual void _deleteObject(Platform3DObject);
+ GraphicsContext3D::WebGLEnumType getType() const { return m_type; }
- virtual bool isShader() const { return true; }
+private:
+ WebGLShader(WebGLRenderingContext*, GraphicsContext3D::WebGLEnumType);
+
+ virtual void deleteObjectImpl(Platform3DObject);
+
+ virtual bool isShader() const { return true; }
+
+ GraphicsContext3D::WebGLEnumType m_type;
+};
- GraphicsContext3D::WebGLEnumType m_type;
- };
-
} // namespace WebCore
#endif // WebGLShader_h
diff --git a/WebCore/html/canvas/WebGLTexture.cpp b/WebCore/html/canvas/WebGLTexture.cpp
index d832038..2c50bf8 100644
--- a/WebCore/html/canvas/WebGLTexture.cpp
+++ b/WebCore/html/canvas/WebGLTexture.cpp
@@ -28,6 +28,7 @@
#if ENABLE(3D_CANVAS)
#include "WebGLTexture.h"
+
#include "WebGLRenderingContext.h"
namespace WebCore {
@@ -38,7 +39,7 @@ PassRefPtr<WebGLTexture> WebGLTexture::create(WebGLRenderingContext* ctx)
}
WebGLTexture::WebGLTexture(WebGLRenderingContext* ctx)
- : CanvasObject(ctx)
+ : WebGLObject(ctx)
, cubeMapRWrapModeInitialized(false)
, m_target(0)
, m_minFilter(GraphicsContext3D::NEAREST_MIPMAP_LINEAR)
@@ -197,7 +198,7 @@ bool WebGLTexture::needToUseBlackTexture() const
return m_needToUseBlackTexture;
}
-void WebGLTexture::_deleteObject(Platform3DObject object)
+void WebGLTexture::deleteObjectImpl(Platform3DObject object)
{
context()->graphicsContext3D()->deleteTexture(object);
}
diff --git a/WebCore/html/canvas/WebGLTexture.h b/WebCore/html/canvas/WebGLTexture.h
index d4a32f0..64bd6e0 100644
--- a/WebCore/html/canvas/WebGLTexture.h
+++ b/WebCore/html/canvas/WebGLTexture.h
@@ -26,104 +26,106 @@
#ifndef WebGLTexture_h
#define WebGLTexture_h
-#include "CanvasObject.h"
+#include "WebGLObject.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
namespace WebCore {
-
- class WebGLTexture : public CanvasObject {
- public:
- virtual ~WebGLTexture() { deleteObject(); }
-
- static PassRefPtr<WebGLTexture> create(WebGLRenderingContext*);
- bool isCubeMapRWrapModeInitialized() {
- return cubeMapRWrapModeInitialized;
- }
+class WebGLTexture : public WebGLObject {
+public:
+ virtual ~WebGLTexture() { deleteObject(); }
- void setCubeMapRWrapModeInitialized(bool initialized) {
- cubeMapRWrapModeInitialized = initialized;
- }
+ static PassRefPtr<WebGLTexture> create(WebGLRenderingContext*);
- void setTarget(unsigned long target, int maxLevel);
- void setParameteri(unsigned long pname, int param);
- void setParameterf(unsigned long pname, float param);
+ bool isCubeMapRWrapModeInitialized()
+ {
+ return cubeMapRWrapModeInitialized;
+ }
- void setLevelInfo(unsigned long target, int level, unsigned long internalFormat, int width, int height, unsigned long type);
+ void setCubeMapRWrapModeInitialized(bool initialized)
+ {
+ cubeMapRWrapModeInitialized = initialized;
+ }
- bool canGenerateMipmaps();
- // Generate all level information.
- void generateMipmapLevelInfo();
+ void setTarget(unsigned long target, int maxLevel);
+ void setParameteri(unsigned long pname, int param);
+ void setParameterf(unsigned long pname, float param);
- unsigned long getInternalFormat() const;
+ void setLevelInfo(unsigned long target, int level, unsigned long internalFormat, int width, int height, unsigned long type);
- // Whether width/height is NotPowerOfTwo.
- static bool isNPOT(unsigned, unsigned);
+ bool canGenerateMipmaps();
+ // Generate all level information.
+ void generateMipmapLevelInfo();
- bool isNPOT() const;
- // Determine if texture sampling should always return [0, 0, 0, 1] (OpenGL ES 2.0 Sec 3.8.2).
- bool needToUseBlackTexture() const;
+ unsigned long getInternalFormat() const;
- static int computeLevelCount(int width, int height);
+ // Whether width/height is NotPowerOfTwo.
+ static bool isNPOT(unsigned, unsigned);
- protected:
- WebGLTexture(WebGLRenderingContext*);
+ bool isNPOT() const;
+ // Determine if texture sampling should always return [0, 0, 0, 1] (OpenGL ES 2.0 Sec 3.8.2).
+ bool needToUseBlackTexture() const;
- virtual void _deleteObject(Platform3DObject);
+ static int computeLevelCount(int width, int height);
- private:
- virtual bool isTexture() const { return true; }
+protected:
+ WebGLTexture(WebGLRenderingContext*);
- void update();
+ virtual void deleteObjectImpl(Platform3DObject);
- int mapTargetToIndex(unsigned long);
+private:
+ virtual bool isTexture() const { return true; }
- bool cubeMapRWrapModeInitialized;
+ void update();
- unsigned long m_target;
+ int mapTargetToIndex(unsigned long);
- int m_minFilter;
- int m_magFilter;
- int m_wrapS;
- int m_wrapT;
+ bool cubeMapRWrapModeInitialized;
- class LevelInfo {
- public:
- LevelInfo()
- : valid(false)
- , internalFormat(0)
- , width(0)
- , height(0)
- , type(0)
- {
- }
+ unsigned long m_target;
- void setInfo(unsigned long internalFmt, int w, int h, unsigned long tp)
- {
- valid = true;
- internalFormat = internalFmt;
- width = w;
- height = h;
- type = tp;
- }
+ int m_minFilter;
+ int m_magFilter;
+ int m_wrapS;
+ int m_wrapT;
- bool valid;
- unsigned long internalFormat;
- int width;
- int height;
- unsigned long type;
- };
+ class LevelInfo {
+ public:
+ LevelInfo()
+ : valid(false)
+ , internalFormat(0)
+ , width(0)
+ , height(0)
+ , type(0)
+ {
+ }
- Vector<Vector<LevelInfo> > m_info;
+ void setInfo(unsigned long internalFmt, int w, int h, unsigned long tp)
+ {
+ valid = true;
+ internalFormat = internalFmt;
+ width = w;
+ height = h;
+ type = tp;
+ }
- bool m_isNPOT;
- bool m_isComplete;
- bool m_needToUseBlackTexture;
+ bool valid;
+ unsigned long internalFormat;
+ int width;
+ int height;
+ unsigned long type;
};
-
+
+ Vector<Vector<LevelInfo> > m_info;
+
+ bool m_isNPOT;
+ bool m_isComplete;
+ bool m_needToUseBlackTexture;
+};
+
} // namespace WebCore
#endif // WebGLTexture_h
diff --git a/WebCore/html/canvas/WebGLUniformLocation.h b/WebCore/html/canvas/WebGLUniformLocation.h
index f9f7a11..66647c5 100644
--- a/WebCore/html/canvas/WebGLUniformLocation.h
+++ b/WebCore/html/canvas/WebGLUniformLocation.h
@@ -27,7 +27,7 @@
#ifndef WebGLUniformLocation_h
#define WebGLUniformLocation_h
-#include "CanvasObject.h"
+#include "WebGLObject.h"
#include "WebGLProgram.h"
#include <wtf/PassRefPtr.h>
diff --git a/WebCore/inspector/CodeGeneratorInspector.pm b/WebCore/inspector/CodeGeneratorInspector.pm
index 5488dbd..9d0af53 100644
--- a/WebCore/inspector/CodeGeneratorInspector.pm
+++ b/WebCore/inspector/CodeGeneratorInspector.pm
@@ -14,9 +14,33 @@ $typeTransform{"InspectorClient"} = {
"forward" => "InspectorClient",
"header" => "InspectorClient.h",
};
-$typeTransform{"InspectorBackend"} = {
+$typeTransform{"Backend"} = {
"forward" => "InspectorBackend",
"header" => "InspectorBackend.h",
+ "handlerAccessor" => "m_inspectorController->inspectorBackend()",
+};
+$typeTransform{"Controller"} = {
+ "forwardHeader" => "InspectorController.h",
+ "handlerAccessor" => "m_inspectorController",
+};
+$typeTransform{"Debug"} = {
+ "forward" => "InspectorDebuggerAgent",
+ "header" => "InspectorDebuggerAgent.h",
+ "handlerAccessor" => "m_inspectorController->debuggerAgent()",
+};
+$typeTransform{"DOM"} = {
+ "forward" => "InspectorDOMAgent",
+ "header" => "InspectorDOMAgent.h",
+ "handlerAccessor" => "m_inspectorController->domAgent()",
+};
+$typeTransform{"ApplicationCache"} = {
+ "forward" => "InspectorApplicationCacheAgent",
+ "header" => "InspectorApplicationCacheAgent.h",
+ "handlerAccessor" => "m_inspectorController->applicationCacheAgent()",
+};
+$typeTransform{"Frontend"} = {
+ "forward" => "RemoteInspectorFrontend",
+ "header" => "RemoteInspectorFrontend.h",
};
$typeTransform{"PassRefPtr"} = {
"forwardHeader" => "wtf/PassRefPtr.h",
@@ -24,6 +48,8 @@ $typeTransform{"PassRefPtr"} = {
$typeTransform{"Object"} = {
"param" => "PassRefPtr<InspectorObject>",
"retVal" => "PassRefPtr<InspectorObject>",
+ "variable" => "RefPtr<InspectorObject>",
+ "defaultValue" => "InspectorObject::create()",
"forward" => "InspectorObject",
"header" => "InspectorValues.h",
"accessorSuffix" => ""
@@ -31,6 +57,8 @@ $typeTransform{"Object"} = {
$typeTransform{"Array"} = {
"param" => "PassRefPtr<InspectorArray>",
"retVal" => "PassRefPtr<InspectorArray>",
+ "variable" => "RefPtr<InspectorArray>",
+ "defaultValue" => "InspectorArray::create()",
"forward" => "InspectorArray",
"header" => "InspectorValues.h",
"accessorSuffix" => ""
@@ -38,41 +66,55 @@ $typeTransform{"Array"} = {
$typeTransform{"Value"} = {
"param" => "PassRefPtr<InspectorValue>",
"retVal" => "PassRefPtr<InspectorValue>",
+ "variable" => "RefPtr<InspectorValue>",
+ "defaultValue" => "InspectorValue::null()",
"forward" => "InspectorValue",
"header" => "InspectorValues.h",
"accessorSuffix" => ""
};
$typeTransform{"String"} = {
"param" => "const String&",
- "retVal" => "String",
- "forward" => "String",
+ "variable" => "String",
+ "forwardHeader" => "wtf/Forward.h",
"header" => "PlatformString.h",
"accessorSuffix" => "String"
};
$typeTransform{"long"} = {
"param" => "long",
- "retVal" => "long",
+ "variable" => "long",
+ "defaultValue" => "0",
"forward" => "",
"header" => "",
"accessorSuffix" => "Number"
};
$typeTransform{"int"} = {
"param" => "int",
- "retVal" => "int",
+ "variable" => "int",
+ "defaultValue" => "0",
"forward" => "",
"header" => "",
"accessorSuffix" => "Number",
};
$typeTransform{"unsigned long"} = {
"param" => "unsigned long",
- "retVal" => "unsigned long",
+ "variable" => "unsigned long",
+ "defaultValue" => "0u",
+ "forward" => "",
+ "header" => "",
+ "accessorSuffix" => "Number"
+};
+$typeTransform{"unsigned int"} = {
+ "param" => "unsigned int",
+ "variable" => "unsigned int",
+ "defaultValue" => "0u",
"forward" => "",
"header" => "",
"accessorSuffix" => "Number"
};
$typeTransform{"boolean"} = {
"param" => "bool",
- "retVal"=> "bool",
+ "variable"=> "bool",
+ "defaultValue" => "false",
"forward" => "",
"header" => "",
"accessorSuffix" => "Bool"
@@ -163,12 +205,14 @@ sub GenerateInterface
$backendClassName = $className . "BackendDispatcher";
my @backendHead;
- push(@backendHead, " ${backendClassName}(InspectorBackend* inspectorBackend) : m_inspectorBackend(inspectorBackend) { }");
+ push(@backendHead, " ${backendClassName}(InspectorController* inspectorController) : m_inspectorController(inspectorController) { }");
+ push(@backendHead, " void reportProtocolError(const long callId, const String& method, const String& errorText) const;");
push(@backendHead, " void dispatch(const String& message);");
push(@backendHead, "private:");
$backendConstructor = join("\n", @backendHead);
- $backendFooter = " InspectorBackend* m_inspectorBackend;";
- $backendTypes{"InspectorBackend"} = 1;
+ $backendFooter = " InspectorController* m_inspectorController;";
+ $backendTypes{"Controller"} = 1;
+ $backendTypes{"InspectorClient"} = 1;
$backendTypes{"PassRefPtr"} = 1;
$backendTypes{"Array"} = 1;
@@ -185,20 +229,16 @@ sub generateFunctions
generateBackendFunction($function);
}
push(@backendMethodsImpl, generateBackendDispatcher());
+ push(@backendMethodsImpl, generateBackendReportProtocolError());
}
sub generateFrontendFunction
{
my $function = shift;
- my $functionName;
my $notify = $function->signature->extendedAttributes->{"notify"};
- if ($notify) {
- $functionName = $function->signature->name;
- } else {
- my $customResponse = $function->signature->extendedAttributes->{"customResponse"};
- $functionName = $customResponse ? $customResponse : "did" . ucfirst($function->signature->name);
- }
+ return if !$notify;
+ my $functionName = $notify ? $function->signature->name : "did" . ucfirst($function->signature->name);
my @argsFiltered = grep($_->direction eq "out", @{$function->parameters}); # just keep only out parameters for frontend interface.
unshift(@argsFiltered, $callId) if !$notify; # Add callId as the first argument for all frontend did* methods.
@@ -214,9 +254,10 @@ sub generateFrontendFunction
push(@function, "void ${frontendClassName}::${functionName}(${arguments})");
push(@function, "{");
push(@function, " RefPtr<InspectorArray> arguments = InspectorArray::create();");
- push(@function, " arguments->pushString(\"$functionName\");");
+ push(@function, " arguments->pushString(\"" . ($notify ? $functionName : "processResponse") . "\");");
push(@function, @pushArguments);
push(@function, " m_inspectorClient->sendMessageToFrontend(arguments->toJSONString());");
+
push(@function, "}");
push(@function, "");
push(@frontendMethodsImpl, @function);
@@ -228,12 +269,12 @@ sub generateBackendPrivateFunctions
my $privateFunctions = << "EOF";
static String formatWrongArgumentsCountMessage(unsigned expected, unsigned actual)
{
- return String::format(\"Wrong number of parameters: %d (expected: %d)\", actual, expected);
+ return String::format("Wrong number of parameters: %d (expected: %d)", actual, expected);
}
static String formatWrongArgumentTypeMessage(unsigned position, const char* name, const char* expectedType)
{
- return String::format(\"Failed to convert parameter %d (%s) to %s\", position, name, expectedType);
+ return String::format("Failed to convert parameter %d (%s) to %s", position, name, expectedType);
}
EOF
push(@backendMethodsImpl, $privateFunctions);
@@ -246,95 +287,153 @@ sub generateBackendFunction
my $functionName = $function->signature->name;
- my @argsFiltered = grep($_->direction eq "in", @{$function->parameters});
- map($backendTypes{$_->type} = 1, @argsFiltered); # register required types
- my $arguments = join(", ", map($typeTransform{$_->type}->{"param"} . " " . $_->name, @argsFiltered));
+ map($backendTypes{$_->type} = 1, @{$function->parameters}); # register required types
+ my @inArgs = grep($_->direction eq "in", @{$function->parameters});
+ my @outArgs = grep($_->direction eq "out", @{$function->parameters});
- my $signature = " void ${functionName}(PassRefPtr<InspectorArray> args, String* exception);";
+ my $signature = " void ${functionName}(PassRefPtr<InspectorArray> args);";
!$backendMethods{${signature}} || die "Duplicate function was detected for signature '$signature'.";
$backendMethods{${signature}} = $functionName;
my @function;
- push(@function, "void ${backendClassName}::${functionName}(PassRefPtr<InspectorArray> args, String* exception)");
+ push(@function, "void ${backendClassName}::${functionName}(PassRefPtr<InspectorArray> args)");
push(@function, "{");
- my $i = 1; # zero element is the method name.
- my $expectedParametersCount = scalar(@argsFiltered);
- my $expectedParametersCountWithMethodName = scalar(@argsFiltered) + 1;
+ push(@function, " DEFINE_STATIC_LOCAL(String, backendFunctionName, (\"$functionName\"));");
+ push(@function, " long callId = 0;");
+ push(@function, "");
+
+ my $expectedParametersCount = scalar(@inArgs);
+ my $expectedParametersCountWithMethodName = scalar(@inArgs) + 1;
push(@function, " if (args->length() != $expectedParametersCountWithMethodName) {");
- push(@function, " *exception = formatWrongArgumentsCountMessage(args->length() - 1, $expectedParametersCount);");
push(@function, " ASSERT_NOT_REACHED();");
+ push(@function, " reportProtocolError(callId, backendFunctionName, formatWrongArgumentsCountMessage(args->length() - 1, $expectedParametersCount));");
push(@function, " return;");
push(@function, " }");
+ push(@function, "");
- foreach my $parameter (@argsFiltered) {
- my $parameterType = $parameter->type;
- push(@function, " " . $typeTransform{$parameterType}->{"retVal"} . " " . $parameter->name . ";");
- push(@function, " if (!args->get(" . $i . ")->as" . $typeTransform{$parameterType}->{"accessorSuffix"} . "(&" . $parameter->name . ")) {");
- push(@function, " *exception = formatWrongArgumentTypeMessage($i, \"" . $parameter->name . "\", \"$parameterType\");");
+ my $i = 1; # zero element is the method name.
+ foreach my $parameter (@inArgs) {
+ my $type = $parameter->type;
+ my $argumentType = $typeTransform{$type}->{$typeTransform{$type}->{"retVal"} ? "retVal" : "variable"};
+ push(@function, " $argumentType " . $parameter->name . ";") if !($parameter->name eq "callId");
+ push(@function, " if (!args->get($i)->as" . $typeTransform{$type}->{"accessorSuffix"} . "(&" . $parameter->name . ")) {");
push(@function, " ASSERT_NOT_REACHED();");
+ push(@function, " reportProtocolError(callId, backendFunctionName, formatWrongArgumentTypeMessage($i, \"" . $parameter->name . "\", \"$type\"));");
push(@function, " return;");
push(@function, " }");
+ push(@function, "");
++$i;
}
- push(@function, " m_inspectorBackend->$functionName(" . join(", ", map($_->name, @argsFiltered)) . ");");
+
+ my $handler = $function->signature->extendedAttributes->{"handler"} || "Controller";
+ my $handlerAccessor = $typeTransform{$handler}->{"handlerAccessor"};
+ $backendTypes{$handler} = 1;
+ push(@function, " if (!$handlerAccessor) {");
+ push(@function, " reportProtocolError(callId, backendFunctionName, \"Error: $handler handler is not available.\");");
+ push(@function, " return;");
+ push(@function, " }");
+ push(@function, "");
+
+
+ foreach (@outArgs) { # declare local variables for out arguments.
+ my $initializer = $typeTransform{$_->type}->{"defaultValue"} ? " = " . $typeTransform{$_->type}->{"defaultValue"} : "";
+ push(@function, " " . $typeTransform{$_->type}->{"variable"} . " " . $_->name . "$initializer;");
+ }
+
+ my $args = join(", ", (grep(!($_ eq "callId"), map($_->name, @inArgs)), map("&" . $_->name, @outArgs)));
+ push(@function, " $handlerAccessor->$functionName($args);");
+
+ # The results of function call should be transfered back to frontend.
+ if (scalar(grep($_->name eq "callId", @inArgs))) {
+ my @pushArguments = map(" arguments->push" . $typeTransform{$_->type}->{"accessorSuffix"} . "(" . $_->name . ");", @outArgs);
+
+ push(@function, "");
+ push(@function, " // use InspectorFrontend as a marker of WebInspector availability");
+ push(@function, " if (m_inspectorController->hasFrontend()) {");
+ push(@function, " RefPtr<InspectorArray> arguments = InspectorArray::create();");
+ push(@function, " arguments->pushString(\"processResponse\");");
+ push(@function, " arguments->pushNumber(callId);");
+ push(@function, @pushArguments);
+ push(@function, " m_inspectorController->inspectorClient()->sendMessageToFrontend(arguments->toJSONString());");
+ push(@function, " }");
+ }
push(@function, "}");
push(@function, "");
push(@backendMethodsImpl, @function);
}
+sub generateBackendReportProtocolError
+{
+ my $reportProtocolError = << "EOF";
+
+void ${backendClassName}::reportProtocolError(const long callId, const String& method, const String& errorText) const
+{
+ RefPtr<InspectorArray> arguments = InspectorArray::create();
+ arguments->pushString("reportProtocolError");
+ arguments->pushNumber(callId);
+ arguments->pushString(method);
+ arguments->pushString(errorText);
+ m_inspectorController->inspectorClient()->sendMessageToFrontend(arguments->toJSONString());
+}
+EOF
+ return split("\n", $reportProtocolError);
+}
+
sub generateBackendDispatcher
{
my @body;
my @methods = map($backendMethods{$_}, keys %backendMethods);
- my @mapEntries = map("dispatchMap.add(\"$_\", &${backendClassName}::$_);", @methods);
-
- push(@body, "void ${backendClassName}::dispatch(const String& message)");
- push(@body, "{");
- push(@body, " String exception;");
- push(@body, " typedef void (${backendClassName}::*CallHandler)(PassRefPtr<InspectorArray> args, String* exception);");
- push(@body, " typedef HashMap<String, CallHandler> DispatchMap;");
- push(@body, " DEFINE_STATIC_LOCAL(DispatchMap, dispatchMap, );");
- push(@body, " if (dispatchMap.isEmpty()) {");
- push(@body, map(" $_", @mapEntries));
- push(@body, " }");
- push(@body, "");
- push(@body, " RefPtr<InspectorValue> parsedMessage = InspectorValue::parseJSON(message);");
- push(@body, " if (!parsedMessage) {");
- push(@body, " ASSERT_NOT_REACHED();");
- push(@body, " exception = \"Error: Invalid message format. Message should be in JSON format.\";");
- push(@body, " return;");
- push(@body, " }");
- push(@body, "");
- push(@body, " RefPtr<InspectorArray> messageArray = parsedMessage->asArray();");
- push(@body, " if (!messageArray) {");
- push(@body, " ASSERT_NOT_REACHED();");
- push(@body, " exception = \"Error: Invalid message format. The message should be a JSONified array of arguments.\";");
- push(@body, " return;");
- push(@body, " }");
- push(@body, "");
- push(@body, " if (!messageArray->length()) {");
- push(@body, " ASSERT_NOT_REACHED();");
- push(@body, " exception = \"Error: Invalid message format. Empty message was received.\";");
- push(@body, " return;");
- push(@body, " }");
- push(@body, "");
- push(@body, " String methodName;");
- push(@body, " if (!messageArray->get(0)->asString(&methodName)) {");
- push(@body, " ASSERT_NOT_REACHED();");
- push(@body, " exception = \"Error: Invalid message format. The first element of the message should be method name.\";");
- push(@body, " return;");
- push(@body, " }");
- push(@body, "");
- push(@body, " HashMap<String, CallHandler>::iterator it = dispatchMap.find(methodName);");
- push(@body, " if (it == dispatchMap.end()) {");
- push(@body, " ASSERT_NOT_REACHED();");
- push(@body, " exception = String::format(\"Error: Invalid method name. '%s' wasn't found.\", methodName.utf8().data());");
- push(@body, " return;");
- push(@body, " }");
- push(@body, "");
- push(@body, " ((*this).*it->second)(messageArray, &exception);");
- push(@body, "}");
- return @body;
+ my @mapEntries = map(" dispatchMap.add(\"$_\", &${backendClassName}::$_);", @methods);
+ my $mapEntries = join("\n", @mapEntries);
+
+ my $backendDispatcherBody = << "EOF";
+void ${backendClassName}::dispatch(const String& message)
+{
+ typedef void (${backendClassName}::*CallHandler)(PassRefPtr<InspectorArray> args);
+ typedef HashMap<String, CallHandler> DispatchMap;
+ DEFINE_STATIC_LOCAL(DispatchMap, dispatchMap, );
+ if (dispatchMap.isEmpty()) {
+$mapEntries
+ }
+
+ RefPtr<InspectorValue> parsedMessage = InspectorValue::parseJSON(message);
+ if (!parsedMessage) {
+ ASSERT_NOT_REACHED();
+ reportProtocolError(0, "dispatch", "Error: Invalid message format. Message should be in JSON format.");
+ return;
+ }
+
+ RefPtr<InspectorArray> messageArray = parsedMessage->asArray();
+ if (!messageArray) {
+ ASSERT_NOT_REACHED();
+ reportProtocolError(0, "dispatch", "Error: Invalid message format. The message should be a JSONified array of arguments.");
+ return;
+ }
+
+ if (!messageArray->length()) {
+ ASSERT_NOT_REACHED();
+ reportProtocolError(0, "dispatch", "Error: Invalid message format. Empty message was received.");
+ return;
+ }
+
+ String methodName;
+ if (!messageArray->get(0)->asString(&methodName)) {
+ ASSERT_NOT_REACHED();
+ reportProtocolError(0, "dispatch", "Error: Invalid message format. The first element of the message should be method name.");
+ return;
+ }
+
+ HashMap<String, CallHandler>::iterator it = dispatchMap.find(methodName);
+ if (it == dispatchMap.end()) {
+ ASSERT_NOT_REACHED();
+ reportProtocolError(0, "dispatch", String::format("Error: Invalid method name. '%s' wasn't found.", methodName.utf8().data()));
+ return;
+ }
+
+ ((*this).*it->second)(messageArray);
+}
+EOF
+ return split("\n", $backendDispatcherBody);
}
sub generateHeader
diff --git a/WebCore/inspector/ConsoleMessage.cpp b/WebCore/inspector/ConsoleMessage.cpp
index 9c0b783..059dea4 100644
--- a/WebCore/inspector/ConsoleMessage.cpp
+++ b/WebCore/inspector/ConsoleMessage.cpp
@@ -33,10 +33,9 @@
#include "InjectedScript.h"
#include "InjectedScriptHost.h"
-#include "InspectorFrontend.h"
#include "InspectorValues.h"
#include "ScriptCallStack.h"
-#include "ScriptObject.h"
+#include "ScriptValue.h"
#if ENABLE(INSPECTOR)
#include "RemoteInspectorFrontend.h"
diff --git a/WebCore/inspector/ConsoleMessage.h b/WebCore/inspector/ConsoleMessage.h
index cb5e6f0..e286f0a 100644
--- a/WebCore/inspector/ConsoleMessage.h
+++ b/WebCore/inspector/ConsoleMessage.h
@@ -33,7 +33,6 @@
#include "Console.h"
#include "KURL.h"
-#include "ScriptObject.h"
#include "ScriptState.h"
#include <wtf/Vector.h>
@@ -44,7 +43,7 @@ class InspectorObject;
class RemoteInspectorFrontend;
class ScriptCallFrame;
class ScriptCallStack;
-class ScriptString;
+class ScriptValue;
class ConsoleMessage : public Noncopyable {
public:
diff --git a/WebCore/inspector/InjectedScript.cpp b/WebCore/inspector/InjectedScript.cpp
index 5f2fb74..3f4d819 100644
--- a/WebCore/inspector/InjectedScript.cpp
+++ b/WebCore/inspector/InjectedScript.cpp
@@ -35,7 +35,6 @@
#include "InspectorValues.h"
#include "PlatformString.h"
-#include "SerializedScriptValue.h"
#include "ScriptFunctionCall.h"
namespace WebCore {
@@ -45,7 +44,7 @@ InjectedScript::InjectedScript(ScriptObject injectedScriptObject)
{
}
-void InjectedScript::dispatch(long callId, const String& methodName, const String& arguments, bool async, RefPtr<SerializedScriptValue>* result, bool* hadException)
+void InjectedScript::dispatch(const String& methodName, const String& arguments, RefPtr<InspectorValue>* result, bool* hadException)
{
ASSERT(!hasNoValue());
if (!canAccessInspectedWindow()) {
@@ -56,21 +55,19 @@ void InjectedScript::dispatch(long callId, const String& methodName, const Strin
ScriptFunctionCall function(m_injectedScriptObject, "dispatch");
function.appendArgument(methodName);
function.appendArgument(arguments);
- if (async)
- function.appendArgument(callId);
*hadException = false;
ScriptValue resultValue = function.call(*hadException);
if (!*hadException)
- *result = resultValue.serialize(m_injectedScriptObject.scriptState());
+ *result = resultValue.toInspectorValue(m_injectedScriptObject.scriptState());
}
#if ENABLE(JAVASCRIPT_DEBUGGER)
-PassRefPtr<SerializedScriptValue> InjectedScript::callFrames()
+PassRefPtr<InspectorValue> InjectedScript::callFrames()
{
ASSERT(!hasNoValue());
ScriptFunctionCall function(m_injectedScriptObject, "callFrames");
ScriptValue callFramesValue = function.call();
- return callFramesValue.serialize(m_injectedScriptObject.scriptState());
+ return callFramesValue.toInspectorValue(m_injectedScriptObject.scriptState());
}
#endif
diff --git a/WebCore/inspector/InjectedScript.h b/WebCore/inspector/InjectedScript.h
index f6b6e19..17389ba 100644
--- a/WebCore/inspector/InjectedScript.h
+++ b/WebCore/inspector/InjectedScript.h
@@ -33,14 +33,13 @@
#include "InjectedScriptHost.h"
#include "ScriptObject.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
class InspectorValue;
-class SerializedScriptValue;
-class String;
class InjectedScript {
public:
@@ -49,9 +48,9 @@ public:
bool hasNoValue() const { return m_injectedScriptObject.hasNoValue(); }
- void dispatch(long callId, const String& methodName, const String& arguments, bool async, RefPtr<SerializedScriptValue>* result, bool* hadException);
+ void dispatch(const String& methodName, const String& arguments, RefPtr<InspectorValue>* result, bool* hadException);
#if ENABLE(JAVASCRIPT_DEBUGGER)
- PassRefPtr<SerializedScriptValue> callFrames();
+ PassRefPtr<InspectorValue> callFrames();
#endif
PassRefPtr<InspectorValue> wrapForConsole(ScriptValue);
void releaseWrapperObjectGroup(const String&);
diff --git a/WebCore/inspector/InjectedScriptHost.cpp b/WebCore/inspector/InjectedScriptHost.cpp
index e8a9fee..37512be 100644
--- a/WebCore/inspector/InjectedScriptHost.cpp
+++ b/WebCore/inspector/InjectedScriptHost.cpp
@@ -42,9 +42,9 @@
#include "InspectorClient.h"
#include "InspectorController.h"
#include "InspectorDOMAgent.h"
-#include "InspectorFrontend.h"
#include "InspectorResource.h"
#include "Pasteboard.h"
+#include "RemoteInspectorFrontend.h"
#if ENABLE(JAVASCRIPT_DEBUGGER)
#include "ScriptDebugServer.h"
@@ -98,7 +98,7 @@ Node* InjectedScriptHost::nodeForId(long nodeId)
long InjectedScriptHost::pushNodePathToFrontend(Node* node, bool withChildren, bool selectInUI)
{
- InspectorFrontend* frontend = inspectorFrontend();
+ RemoteInspectorFrontend* frontend = remoteFrontend();
InspectorDOMAgent* domAgent = inspectorDOMAgent();
if (!domAgent || !frontend)
return 0;
@@ -142,12 +142,6 @@ void InjectedScriptHost::selectDOMStorage(Storage* storage)
}
#endif
-void InjectedScriptHost::reportDidDispatchOnInjectedScript(long callId, SerializedScriptValue* result, bool isException)
-{
- if (InspectorFrontend* frontend = inspectorFrontend())
- frontend->didDispatchOnInjectedScript(callId, result, isException);
-}
-
InjectedScript InjectedScriptHost::injectedScriptForId(long id)
{
return m_idToInjectedScript.get(id);
@@ -178,11 +172,11 @@ InspectorDOMAgent* InjectedScriptHost::inspectorDOMAgent()
return m_inspectorController->domAgent();
}
-InspectorFrontend* InjectedScriptHost::inspectorFrontend()
+RemoteInspectorFrontend* InjectedScriptHost::remoteFrontend()
{
if (!m_inspectorController)
return 0;
- return m_inspectorController->m_frontend.get();
+ return m_inspectorController->m_remoteFrontend.get();
}
pair<long, ScriptObject> InjectedScriptHost::injectScript(const String& source, ScriptState* scriptState)
diff --git a/WebCore/inspector/InjectedScriptHost.h b/WebCore/inspector/InjectedScriptHost.h
index b942148..997f340 100644
--- a/WebCore/inspector/InjectedScriptHost.h
+++ b/WebCore/inspector/InjectedScriptHost.h
@@ -43,9 +43,9 @@ namespace WebCore {
class Database;
class InjectedScript;
class InspectorDOMAgent;
-class InspectorFrontend;
class Node;
-class SerializedScriptValue;
+class RemoteInspectorFrontend;
+class ScriptObject;
class Storage;
class InjectedScriptHost : public RefCounted<InjectedScriptHost>
@@ -82,7 +82,6 @@ public:
void didCreateWorker(long id, const String& url, bool isSharedWorker);
void didDestroyWorker(long id);
#endif
- void reportDidDispatchOnInjectedScript(long callId, SerializedScriptValue* result, bool isException);
pair<long, ScriptObject> injectScript(const String& source, ScriptState*);
InjectedScript injectedScriptFor(ScriptState*);
@@ -95,7 +94,7 @@ public:
private:
InjectedScriptHost(InspectorController* inspectorController);
InspectorDOMAgent* inspectorDOMAgent();
- InspectorFrontend* inspectorFrontend();
+ RemoteInspectorFrontend* remoteFrontend();
ScriptObject createInjectedScript(const String& source, ScriptState* scriptState, long id);
InspectorController* m_inspectorController;
diff --git a/WebCore/inspector/InjectedScriptHost.idl b/WebCore/inspector/InjectedScriptHost.idl
index 21af938..9b2ed6c 100644
--- a/WebCore/inspector/InjectedScriptHost.idl
+++ b/WebCore/inspector/InjectedScriptHost.idl
@@ -44,7 +44,6 @@ module core {
#endif
#if defined(ENABLE_DATABASE) && ENABLE_DATABASE
- [Custom] DOMObject databaseForId(in long databaseId);
[Custom] void selectDatabase(in DOMObject database);
#endif
@@ -57,6 +56,5 @@ module core {
void didDestroyWorker(in long id);
long nextWorkerId();
#endif
- [Custom] void reportDidDispatchOnInjectedScript(in long callId, in DOMObject result, in boolean isException);
};
}
diff --git a/WebCore/inspector/Inspector.idl b/WebCore/inspector/Inspector.idl
index 155bfcd..9d3d102 100644
--- a/WebCore/inspector/Inspector.idl
+++ b/WebCore/inspector/Inspector.idl
@@ -36,126 +36,186 @@ module core {
[notify] void addRecordToTimeline(out Object record);
[notify] void addNodesToSearchResult(out Array nodeIds);
[notify] void attributesUpdated(out long id, out Array attributes);
+ [notify] void bringToFront();
[notify] void childNodeCountUpdated(out long id, out int newValue);
[notify] void childNodeInserted(out long parentId, out long prevId, out Object node);
[notify] void childNodeRemoved(out long parentId, out long id);
+ [notify] void close();
+ [notify] void didCommitLoad();
+ [notify] void evaluateForTestInFrontend(out long testCallId, out String script);
+ [notify] void inspectedPageDestroyed();
+ [notify] void inspectedURLChanged(out String url);
+ [notify] void monitoringXHRWasEnabled();
+ [notify] void monitoringXHRWasDisabled();
+ [notify] void populateApplicationSettings(out String settings);
+ [notify] void populateInterface();
+ [notify] void populateSessionSettings(out String settings);
+ [notify] void removeResource(out unsigned long identifier);
+ [notify] void reset();
+ [notify] void resetProfilesPanel();
+ [notify] void resourceTrackingWasEnabled();
+ [notify] void resourceTrackingWasDisabled();
+ [notify] void searchingForNodeWasEnabled();
+ [notify] void searchingForNodeWasDisabled();
[notify] void setChildNodes(out long parentId, out Array nodes);
[notify] void setDetachedRoot(out Object root);
[notify] void setDocument(out Value root);
+ [notify] void showPanel(out String panel);
+ [notify] void timelineProfilerWasStarted();
+ [notify] void timelineProfilerWasStopped();
[notify] void updateConsoleMessageExpiredCount(out unsigned long count);
[notify] void updateConsoleMessageRepeatCount(out unsigned long count);
+ [notify] void updateFocusedNode(out long nodeId);
+ [notify] void updateResource(out Value resource);
- void storeLastActivePanel(in String panelName);
+#if defined(ENABLE_JAVASCRIPT_DEBUGGER) && ENABLE_JAVASCRIPT_DEBUGGER
+ [notify] void addProfileHeader(out Object header);
+ [notify] void attachDebuggerWhenShown();
+ [notify] void debuggerWasEnabled();
+ [notify] void debuggerWasDisabled();
+ [notify] void failedToParseScriptSource(out String url, out String data, out int firstLine, out int errorLine, out String errorMessage);
+ [notify] void parsedScriptSource(out String sourceID, out String url, out String data, out int firstLine, out int scriptWorldType);
+ [notify] void pausedScript(out Value callFrames);
+ [notify] void profilerWasEnabled();
+ [notify] void profilerWasDisabled();
+ [notify] void restoredBreakpoint(out String sourceID, out String url, out int line, out boolean enabled, out String condition);
+ [notify] void resumedScript();
+ [notify] void setRecordingProfile(out boolean isProfiling);
+ [notify] void updatePauseOnExceptionsState(out long state);
+#endif
+#if defined(ENABLE_DATABASE) && ENABLE_DATABASE
+ [notify] void addDatabase(out Object database);
+ [notify] void selectDatabase(out int databaseId);
+#endif
+#if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
+ [notify] void addDOMStorage(out Object storage);
+ [notify] void updateDOMStorage(out int storageId);
+ [notify] void selectDOMStorage(out int storageId);
+#endif
+#if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
+ [notify] void updateApplicationCacheStatus(out int status);
+ [notify] void updateNetworkState(out boolean isNowOnline);
+#endif
+#if defined(ENABLE_WORKERS) && ENABLE_WORKERS
+ [notify] void didCreateWorker(out long id, out String url, out boolean isShared);
+ [notify] void didDestroyWorker(out long id);
+#endif
- void saveApplicationSettings(in String settings);
- void saveSessionSettings(in String settings);
+ [handler=Controller] void storeLastActivePanel(in String panelName);
- void enableSearchingForNode();
- void disableSearchingForNode();
+ [handler=Controller] void saveApplicationSettings(in String settings);
+ [handler=Controller] void saveSessionSettings(in String settings);
- void enableMonitoringXHR();
- void disableMonitoringXHR();
+ [handler=Controller] void enableSearchingForNode();
+ [handler=Controller] void disableSearchingForNode();
- void enableResourceTracking(in boolean always);
- void disableResourceTracking(in boolean always);
- void getResourceContent(in long callId, in unsigned long identifier);
- void reloadPage();
+ [handler=Controller] void enableMonitoringXHR();
+ [handler=Controller] void disableMonitoringXHR();
- void startTimelineProfiler();
- void stopTimelineProfiler();
+ [handler=Controller] void enableResourceTracking(in boolean always);
+ [handler=Controller] void disableResourceTracking(in boolean always);
+ [handler=Controller] void getResourceContent(in long callId, in unsigned long identifier, out String content);
+ [handler=Controller] void reloadPage();
+
+ [handler=Controller] void startTimelineProfiler();
+ [handler=Controller] void stopTimelineProfiler();
#if defined(ENABLE_JAVASCRIPT_DEBUGGER) && ENABLE_JAVASCRIPT_DEBUGGER
- void enableDebugger(in boolean always);
- void disableDebugger(in boolean always);
+ [handler=Backend] void enableDebugger(in boolean always);
+ [handler=Controller] void disableDebugger(in boolean always);
- void setBreakpoint(in long callId, in String sourceID, in unsigned long lineNumber, in boolean enabled, in String condition);
- void removeBreakpoint(in String sourceID, in unsigned long lineNumber);
- void activateBreakpoints();
- void deactivateBreakpoints();
+ [handler=Debug] void setBreakpoint(in long callId, in String sourceID, in unsigned int lineNumber, in boolean enabled, in String condition, out boolean success, out unsigned int actualLineNumber);
+ [handler=Debug] void removeBreakpoint(in String sourceID, in unsigned long lineNumber);
+ [handler=Debug] void activateBreakpoints();
+ [handler=Debug] void deactivateBreakpoints();
- void pause();
- void resume();
+ [handler=Debug] void pause();
+ [handler=Debug] void resume();
- void stepOverStatement();
- void stepIntoStatement();
- void stepOutOfFunction();
+ [handler=Debug] void stepOverStatement();
+ [handler=Debug] void stepIntoStatement();
+ [handler=Debug] void stepOutOfFunction();
- void setPauseOnExceptionsState(in long pauseOnExceptionsState);
+ [handler=Debug] void setPauseOnExceptionsState(in long pauseOnExceptionsState);
- void editScriptSource(in long callId, in String sourceID, in String newContent);
- void getScriptSource(in long callId, in String sourceID);
+ [handler=Debug] void editScriptSource(in long callId, in String sourceID, in String newContent, out boolean success, out String result, out Value newCallFrames);
+ [handler=Debug] void getScriptSource(in long callId, in String sourceID, out String scriptSource);
- void enableProfiler(in boolean always);
- void disableProfiler(in boolean always);
+ [handler=Controller] void enableProfiler(in boolean always);
+ [handler=Controller] void disableProfiler(in boolean always);
- void startProfiling();
- void stopProfiling();
+ [handler=Controller] void startProfiling();
+ [handler=Controller] void stopProfiling();
- void getProfileHeaders(in long callId);
- void getProfile(in long callId, in unsigned long uid);
+ [handler=Controller] void getProfileHeaders(in long callId, out Array headers);
+ [handler=Controller] void getProfile(in long callId, in unsigned long uid, out Object profile);
- void removeProfile(in unsigned long uid);
- void clearProfiles();
+ [handler=Controller] void removeProfile(in unsigned long uid);
+ [handler=Controller] void clearProfiles();
- void takeHeapSnapshot();
+ [handler=Backend] void takeHeapSnapshot();
+ [handler=Backend] void getProfilerLogLines(in long callId, in long inPosition, out long outPosition, out String log);
#endif
- void setInjectedScriptSource(in String scriptSource);
- void dispatchOnInjectedScript(in long callId, in long injectedScriptId, in String methodName, in String arguments, in boolean async);
-
- void addScriptToEvaluateOnLoad(in String scriptSource);
- void removeAllScriptsToEvaluateOnLoad();
-
- void getChildNodes(in long callId, in long nodeId);
- [customResponse=didApplyDomChange] void setAttribute(in long callId, in long elementId, in String name, in String value, out boolean success);
- [customResponse=didApplyDomChange] void removeAttribute(in long callId, in long elementId, in String name, out boolean success);
- void setTextNodeValue(in long callId, in long nodeId, in String value);
- void getEventListenersForNode(in long callId, in long nodeId, out long nodeId, out Array listenersArray);
- void copyNode(in long nodeId);
- void removeNode(in long callId, in long nodeId, out long nodeId);
- void changeTagName(in long callId, in long nodeId, in String newTagName, out long nodeId);
- void getOuterHTML(in long callId, in long nodeId, out String outerHTML);
- void setOuterHTML(in long callId, in long nodeId, in String outerHTML, out long nodeId);
- void addInspectedNode(in long nodeId);
- void performSearch(in String query, in boolean runSynchronously);
- void searchCanceled();
- void pushNodeByPathToFrontend(in long callId, in String path, out long nodeId);
-
- void clearConsoleMessages(in long callId);
-
- void highlightDOMNode(in long nodeId);
- void hideDOMNodeHighlight();
-
- void getStyles(in long callId, in long nodeId, in boolean authOnly, out Value styles);
- void getAllStyles(in long callId, out Array styles);
- void getInlineStyle(in long callId, in long nodeId, out Value style);
- void getComputedStyle(in long callId, in long nodeId, out Value style);
- void getStyleSheet(in long callId, in long styleSheetId, out Value styleSheet);
- void getRuleRanges(in long callId, in long styleSheetId, out Value ranges);
- void applyStyleText(in long callId, in long styleId, in String styleText, in String propertyName, out boolean success, out Value style, out Array changedProperties);
- void setStyleText(in long callId, in long styleId, in String styleText, out boolean success);
- void setStyleProperty(in long callId, in long styleId, in String name, in String value, out boolean success);
- void toggleStyleEnabled(in long callId, in long styleId, in String propertyName, in boolean disabled, out Value style);
- void setRuleSelector(in long callId, in long ruleId, in String selector, in long selectedNodeId, out Value rule, out boolean selectorAffectsNode);
- void addRule(in long callId, in String selector, in long selectedNodeId, out Value rule, out boolean selectorAffectsNode);
-
- void getCookies(in long callId);
- void deleteCookie(in String cookieName, in String domain);
+ [handler=Backend] void setInjectedScriptSource(in String scriptSource);
+ [handler=Backend] void dispatchOnInjectedScript(in long callId, in long injectedScriptId, in String methodName, in String arguments, out Value result, out boolean isException);
+ [handler=Controller] void addScriptToEvaluateOnLoad(in String scriptSource);
+ [handler=Controller] void removeAllScriptsToEvaluateOnLoad();
+
+ [handler=DOM] void getChildNodes(in long callId, in long nodeId);
+ [handler=DOM] void setAttribute(in long callId, in long elementId, in String name, in String value, out boolean success);
+ [handler=DOM] void removeAttribute(in long callId, in long elementId, in String name, out boolean success);
+ [handler=DOM] void setTextNodeValue(in long callId, in long nodeId, in String value, out boolean success);
+ [handler=DOM] void getEventListenersForNode(in long callId, in long nodeId, out long outNodeId, out Array listenersArray);
+ [handler=DOM] void copyNode(in long nodeId);
+ [handler=DOM] void removeNode(in long callId, in long nodeId, out long outNodeId);
+ [handler=DOM] void changeTagName(in long callId, in long nodeId, in String newTagName, out long outNodeId);
+ [handler=DOM] void getOuterHTML(in long callId, in long nodeId, out String outerHTML);
+ [handler=DOM] void setOuterHTML(in long callId, in long nodeId, in String outerHTML, out long outNodeId);
+ [handler=DOM] void addInspectedNode(in long nodeId);
+ [handler=DOM] void performSearch(in String query, in boolean runSynchronously);
+ [handler=DOM] void searchCanceled();
+ [handler=DOM] void pushNodeByPathToFrontend(in long callId, in String path, out long nodeId);
+
+ [handler=Backend] void clearConsoleMessages(in long callId);
+
+ [handler=Controller] void highlightDOMNode(in long nodeId);
+ [handler=Controller] void hideDOMNodeHighlight();
+
+ [handler=DOM] void getStyles(in long callId, in long nodeId, in boolean authOnly, out Value styles);
+ [handler=DOM] void getAllStyles(in long callId, out Array styles);
+ [handler=DOM] void getInlineStyle(in long callId, in long nodeId, out Value style);
+ [handler=DOM] void getComputedStyle(in long callId, in long nodeId, out Value style);
+ [handler=DOM] void getStyleSheet(in long callId, in long styleSheetId, out Object styleSheet);
+ [handler=DOM] void getRuleRanges(in long callId, in long styleSheetId, out Value ranges);
+ [handler=DOM] void applyStyleText(in long callId, in long styleId, in String styleText, in String propertyName, out boolean success, out Value style, out Array changedProperties);
+ [handler=DOM] void setStyleText(in long callId, in long styleId, in String styleText, out boolean success);
+ [handler=DOM] void setStyleProperty(in long callId, in long styleId, in String name, in String value, out boolean success);
+ [handler=DOM] void toggleStyleEnabled(in long callId, in long styleId, in String propertyName, in boolean disabled, out Value style);
+ [handler=DOM] void setRuleSelector(in long callId, in long ruleId, in String selector, in long selectedNodeId, out Value rule, out boolean selectorAffectsNode);
+ [handler=DOM] void addRule(in long callId, in String selector, in long selectedNodeId, out Value rule, out boolean selectorAffectsNode);
+
+ [handler=Controller] void getCookies(in long callId, out Array cookies, out String cookiesString);
+ [handler=Controller] void deleteCookie(in String cookieName, in String domain);
#if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
- void getApplicationCaches(in long callId);
+ [handler=ApplicationCache] void getApplicationCaches(in long callId, out Value applicationCaches);
#endif
- void releaseWrapperObjectGroup(in long injectedScriptId, in String objectGroup);
- void didEvaluateForTestInFrontend(in long callId, in String jsonResult);
+ [handler=Backend] void releaseWrapperObjectGroup(in long injectedScriptId, in String objectGroup);
+ [handler=Controller] void didEvaluateForTestInFrontend(in long testCallId, in String jsonResult);
#if defined(ENABLE_DATABASE) && ENABLE_DATABASE
- void getDatabaseTableNames(in long callId, in long databaseId);
+ [handler=Backend] void getDatabaseTableNames(in long callId, in long databaseId, out Array tableNames);
+ [handler=Backend] void executeSQL(in long callId, in long databaseId, in String query, out boolean success, out long transactionId);
+ [notify] void sqlTransactionSucceeded(out long transactionId, out Value columnNames, out Value values);
+ [notify] void sqlTransactionFailed(out long transactionId, out Value sqlError);
#endif
#if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
- void getDOMStorageEntries(in long callId, in long storageId);
- void setDOMStorageItem(in long callId, in long storageId, in String key, in String value);
- void removeDOMStorageItem(in long callId, in long storageId, in String key);
+ [handler=Controller] void getDOMStorageEntries(in long callId, in long storageId, out Array entries);
+ [handler=Controller] void setDOMStorageItem(in long callId, in long storageId, in String key, in String value, out boolean success);
+ [handler=Controller] void removeDOMStorageItem(in long callId, in long storageId, in String key, out boolean success);
#endif
+
};
}
diff --git a/WebCore/inspector/InspectorApplicationCacheAgent.cpp b/WebCore/inspector/InspectorApplicationCacheAgent.cpp
index 1ea7556..b95c0e1 100644
--- a/WebCore/inspector/InspectorApplicationCacheAgent.cpp
+++ b/WebCore/inspector/InspectorApplicationCacheAgent.cpp
@@ -33,15 +33,14 @@
#include "Frame.h"
#include "FrameLoader.h"
#include "InspectorController.h"
-#include "InspectorFrontend.h"
+#include "InspectorValues.h"
#include "Page.h"
+#include "RemoteInspectorFrontend.h"
#include "ResourceResponse.h"
-#include "ScriptArray.h"
-#include "ScriptObject.h"
namespace WebCore {
-InspectorApplicationCacheAgent::InspectorApplicationCacheAgent(InspectorController* inspectorController, InspectorFrontend* frontend)
+InspectorApplicationCacheAgent::InspectorApplicationCacheAgent(InspectorController* inspectorController, RemoteInspectorFrontend* frontend)
: m_inspectorController(inspectorController)
, m_frontend(frontend)
{
@@ -62,52 +61,48 @@ void InspectorApplicationCacheAgent::updateNetworkState(bool isNowOnline)
m_frontend->updateNetworkState(isNowOnline);
}
-void InspectorApplicationCacheAgent::getApplicationCaches(long callId)
+void InspectorApplicationCacheAgent::getApplicationCaches(RefPtr<InspectorValue>* applicationCaches)
{
DocumentLoader* documentLoader = m_inspectorController->inspectedPage()->mainFrame()->loader()->documentLoader();
- if (!documentLoader) {
- m_frontend->didGetApplicationCaches(callId, ScriptValue::undefined());
- return;
- }
-
- ApplicationCacheHost* host = documentLoader->applicationCacheHost();
- ApplicationCacheHost::CacheInfo info = host->applicationCacheInfo();
-
- ApplicationCacheHost::ResourceInfoList resources;
- host->fillResourceList(&resources);
+ if (documentLoader) {
+ ApplicationCacheHost* host = documentLoader->applicationCacheHost();
+ ApplicationCacheHost::CacheInfo info = host->applicationCacheInfo();
- m_frontend->didGetApplicationCaches(callId, buildObjectForApplicationCache(resources, info));
+ ApplicationCacheHost::ResourceInfoList resources;
+ host->fillResourceList(&resources);
+ *applicationCaches = buildObjectForApplicationCache(resources, info);
+ }
}
-ScriptObject InspectorApplicationCacheAgent::buildObjectForApplicationCache(const ApplicationCacheHost::ResourceInfoList& applicationCacheResources, const ApplicationCacheHost::CacheInfo& applicationCacheInfo)
+PassRefPtr<InspectorObject> InspectorApplicationCacheAgent::buildObjectForApplicationCache(const ApplicationCacheHost::ResourceInfoList& applicationCacheResources, const ApplicationCacheHost::CacheInfo& applicationCacheInfo)
{
- ScriptObject value = m_frontend->newScriptObject();
- value.set("size", applicationCacheInfo.m_size);
- value.set("manifest", applicationCacheInfo.m_manifest.string());
- value.set("lastPathComponent", applicationCacheInfo.m_manifest.lastPathComponent());
- value.set("creationTime", applicationCacheInfo.m_creationTime);
- value.set("updateTime", applicationCacheInfo.m_updateTime);
- value.set("resources", buildArrayForApplicationCacheResources(applicationCacheResources));
+ RefPtr<InspectorObject> value = InspectorObject::create();
+ value->setNumber("size", applicationCacheInfo.m_size);
+ value->setString("manifest", applicationCacheInfo.m_manifest.string());
+ value->setString("lastPathComponent", applicationCacheInfo.m_manifest.lastPathComponent());
+ value->setNumber("creationTime", applicationCacheInfo.m_creationTime);
+ value->setNumber("updateTime", applicationCacheInfo.m_updateTime);
+ value->set("resources", buildArrayForApplicationCacheResources(applicationCacheResources));
return value;
}
-ScriptArray InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources(const ApplicationCacheHost::ResourceInfoList& applicationCacheResources)
+PassRefPtr<InspectorArray> InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources(const ApplicationCacheHost::ResourceInfoList& applicationCacheResources)
{
- ScriptArray resources = m_frontend->newScriptArray();
+ RefPtr<InspectorArray> resources = InspectorArray::create();
ApplicationCacheHost::ResourceInfoList::const_iterator end = applicationCacheResources.end();
ApplicationCacheHost::ResourceInfoList::const_iterator it = applicationCacheResources.begin();
for (int i = 0; it != end; ++it, i++)
- resources.set(i, buildObjectForApplicationCacheResource(*it));
+ resources->push(buildObjectForApplicationCacheResource(*it));
return resources;
}
-ScriptObject InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource(const ApplicationCacheHost::ResourceInfo& resourceInfo)
+PassRefPtr<InspectorObject> InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource(const ApplicationCacheHost::ResourceInfo& resourceInfo)
{
- ScriptObject value = m_frontend->newScriptObject();
- value.set("name", resourceInfo.m_resource.string());
- value.set("size", resourceInfo.m_size);
+ RefPtr<InspectorObject> value = InspectorObject::create();
+ value->setString("name", resourceInfo.m_resource.string());
+ value->setNumber("size", resourceInfo.m_size);
String types;
if (resourceInfo.m_isMaster)
@@ -125,7 +120,7 @@ ScriptObject InspectorApplicationCacheAgent::buildObjectForApplicationCacheResou
if (resourceInfo.m_isExplicit)
types.append("Explicit ");
- value.set("type", types);
+ value->setString("type", types);
return value;
}
diff --git a/WebCore/inspector/InspectorApplicationCacheAgent.h b/WebCore/inspector/InspectorApplicationCacheAgent.h
index 33cc2ed..3338f84 100644
--- a/WebCore/inspector/InspectorApplicationCacheAgent.h
+++ b/WebCore/inspector/InspectorApplicationCacheAgent.h
@@ -29,18 +29,20 @@
#include "ApplicationCacheHost.h"
#include <wtf/Noncopyable.h>
+#include <wtf/PassRefPtr.h>
namespace WebCore {
+class InspectorArray;
class InspectorController;
-class InspectorFrontend;
+class InspectorObject;
+class InspectorValue;
+class RemoteInspectorFrontend;
class ResourceResponse;
-class ScriptArray;
-class ScriptObject;
class InspectorApplicationCacheAgent : public Noncopyable {
public:
- InspectorApplicationCacheAgent(InspectorController* inspectorController, InspectorFrontend* frontend);
+ InspectorApplicationCacheAgent(InspectorController* inspectorController, RemoteInspectorFrontend* frontend);
~InspectorApplicationCacheAgent() { }
// Backend to Frontend
@@ -49,15 +51,15 @@ public:
void updateNetworkState(bool isNowOnline);
// From Frontend
- void getApplicationCaches(long callId);
+ void getApplicationCaches(RefPtr<InspectorValue>* applicationCaches);
private:
- ScriptObject buildObjectForApplicationCache(const ApplicationCacheHost::ResourceInfoList&, const ApplicationCacheHost::CacheInfo&);
- ScriptArray buildArrayForApplicationCacheResources(const ApplicationCacheHost::ResourceInfoList&);
- ScriptObject buildObjectForApplicationCacheResource(const ApplicationCacheHost::ResourceInfo&);
+ PassRefPtr<InspectorObject> buildObjectForApplicationCache(const ApplicationCacheHost::ResourceInfoList&, const ApplicationCacheHost::CacheInfo&);
+ PassRefPtr<InspectorArray> buildArrayForApplicationCacheResources(const ApplicationCacheHost::ResourceInfoList&);
+ PassRefPtr<InspectorObject> buildObjectForApplicationCacheResource(const ApplicationCacheHost::ResourceInfo&);
InspectorController* m_inspectorController;
- InspectorFrontend* m_frontend;
+ RemoteInspectorFrontend* m_frontend;
};
} // namespace WebCore
diff --git a/WebCore/inspector/InspectorBackend.cpp b/WebCore/inspector/InspectorBackend.cpp
index f27b812..0a18e1c 100644
--- a/WebCore/inspector/InspectorBackend.cpp
+++ b/WebCore/inspector/InspectorBackend.cpp
@@ -36,41 +36,16 @@
#include "Database.h"
#endif
-#include "Element.h"
-#include "Frame.h"
-#include "FrameLoader.h"
-#include "HTMLFrameOwnerElement.h"
#include "InjectedScript.h"
#include "InjectedScriptHost.h"
-#include "InspectorClient.h"
#include "InspectorController.h"
#include "InspectorDOMAgent.h"
-#include "InspectorFrontend.h"
-#include "InspectorResource.h"
-#include "Page.h"
-#include "Pasteboard.h"
+#include "InspectorStorageAgent.h"
#include "RemoteInspectorFrontend.h"
-#include "ScriptArray.h"
#include "ScriptBreakpoint.h"
+#include "ScriptProfiler.h"
#include "SerializedScriptValue.h"
-#if ENABLE(DOM_STORAGE)
-#include "Storage.h"
-#endif
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "ScriptDebugServer.h"
-#endif
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
-#include "InspectorApplicationCacheAgent.h"
-#endif
-
-#include "markup.h"
-
-#include <wtf/RefPtr.h>
-#include <wtf/StdLibExtras.h>
-
using namespace std;
namespace WebCore {
@@ -84,83 +59,6 @@ InspectorBackend::~InspectorBackend()
{
}
-void InspectorBackend::saveApplicationSettings(const String& settings)
-{
- if (m_inspectorController)
- m_inspectorController->saveApplicationSettings(settings);
-}
-
-void InspectorBackend::saveSessionSettings(const String& settings)
-{
- if (m_inspectorController)
- m_inspectorController->saveSessionSettings(settings);
-}
-
-void InspectorBackend::storeLastActivePanel(const String& panelName)
-{
- if (m_inspectorController)
- m_inspectorController->storeLastActivePanel(panelName);
-}
-
-void InspectorBackend::enableSearchingForNode()
-{
- if (m_inspectorController)
- m_inspectorController->enableSearchingForNode();
-}
-
-void InspectorBackend::disableSearchingForNode()
-{
- if (m_inspectorController)
- m_inspectorController->disableSearchingForNode();
-}
-
-void InspectorBackend::enableMonitoringXHR()
-{
- if (m_inspectorController)
- m_inspectorController->enableMonitoringXHR();
-}
-
-void InspectorBackend::disableMonitoringXHR()
-{
- if (m_inspectorController)
- m_inspectorController->disableMonitoringXHR();
-}
-
-void InspectorBackend::enableResourceTracking(bool always)
-{
- if (m_inspectorController)
- m_inspectorController->enableResourceTracking(always);
-}
-
-void InspectorBackend::disableResourceTracking(bool always)
-{
- if (m_inspectorController)
- m_inspectorController->disableResourceTracking(always);
-}
-
-void InspectorBackend::getResourceContent(long callId, unsigned long identifier)
-{
- if (m_inspectorController)
- m_inspectorController->getResourceContent(callId, identifier);
-}
-
-void InspectorBackend::reloadPage()
-{
- if (m_inspectorController)
- m_inspectorController->reloadPage();
-}
-
-void InspectorBackend::startTimelineProfiler()
-{
- if (m_inspectorController)
- m_inspectorController->startTimelineProfiler();
-}
-
-void InspectorBackend::stopTimelineProfiler()
-{
- if (m_inspectorController)
- m_inspectorController->stopTimelineProfiler();
-}
#if ENABLE(JAVASCRIPT_DEBUGGER)
@@ -170,143 +68,27 @@ void InspectorBackend::enableDebugger(bool always)
m_inspectorController->enableDebuggerFromFrontend(always);
}
-void InspectorBackend::disableDebugger(bool always)
-{
- if (m_inspectorController)
- m_inspectorController->disableDebugger(always);
-}
-
-void InspectorBackend::setBreakpoint(long callId, const String& sourceID, unsigned lineNumber, bool enabled, const String& condition)
-{
- if (m_inspectorController)
- m_inspectorController->setBreakpoint(callId, sourceID, lineNumber, enabled, condition);
-}
-
-void InspectorBackend::removeBreakpoint(const String& sourceID, unsigned lineNumber)
-{
- if (m_inspectorController)
- m_inspectorController->removeBreakpoint(sourceID, lineNumber);
-}
-
-void InspectorBackend::activateBreakpoints()
-{
- ScriptDebugServer::shared().activateBreakpoints();
-}
-
-void InspectorBackend::deactivateBreakpoints()
-{
- ScriptDebugServer::shared().deactivateBreakpoints();
-}
-
-void InspectorBackend::pause()
-{
- ScriptDebugServer::shared().pause();
-}
-
-void InspectorBackend::resume()
-{
- if (m_inspectorController)
- m_inspectorController->resume();
-}
-
-void InspectorBackend::stepOverStatement()
-{
- ScriptDebugServer::shared().stepOverStatement();
-}
-
-void InspectorBackend::stepIntoStatement()
-{
- ScriptDebugServer::shared().stepIntoStatement();
-}
-
-void InspectorBackend::stepOutOfFunction()
-{
- ScriptDebugServer::shared().stepOutOfFunction();
-}
-
-void InspectorBackend::setPauseOnExceptionsState(long pauseState)
-{
- if (m_inspectorController)
- m_inspectorController->setPauseOnExceptionsState(pauseState);
-}
-
-void InspectorBackend::editScriptSource(long callId, const String& sourceID, const String& newContent)
-{
- if (m_inspectorController)
- m_inspectorController->editScriptSource(callId, sourceID, newContent);
-}
-
-void InspectorBackend::getScriptSource(long callId, const String& sourceID)
-{
- if (m_inspectorController)
- m_inspectorController->getScriptSource(callId, sourceID);
-}
-
-void InspectorBackend::enableProfiler(bool always)
-{
- if (m_inspectorController)
- m_inspectorController->enableProfiler(always);
-}
-
-void InspectorBackend::disableProfiler(bool always)
-{
- if (m_inspectorController)
- m_inspectorController->disableProfiler(always);
-}
-
-void InspectorBackend::startProfiling()
-{
- if (m_inspectorController)
- m_inspectorController->startUserInitiatedProfiling();
-}
-
-void InspectorBackend::stopProfiling()
-{
- if (m_inspectorController)
- m_inspectorController->stopUserInitiatedProfiling();
-}
-
-void InspectorBackend::getProfileHeaders(long callId)
-{
- if (m_inspectorController)
- m_inspectorController->getProfileHeaders(callId);
-}
-
-void InspectorBackend::getProfile(long callId, unsigned uid)
-{
- if (m_inspectorController)
- m_inspectorController->getProfile(callId, uid);
-}
-
-void InspectorBackend::removeProfile(unsigned uid)
-{
- if (m_inspectorController)
- m_inspectorController->removeProfile(uid);
-}
-
-void InspectorBackend::clearProfiles()
+void InspectorBackend::takeHeapSnapshot()
{
- if (m_inspectorController)
- m_inspectorController->clearProfiles();
+ ScriptProfiler::takeHeapSnapshot();
}
-void InspectorBackend::takeHeapSnapshot()
+void InspectorBackend::getProfilerLogLines(long position, long* outPosition, String* data)
{
- if (m_inspectorController)
- m_inspectorController->takeHeapSnapshot();
+ // FIXME: we should make inspector dispatcher pluggable, so that embedders could contribute APIs instead of polluting the core one
+ // https://bugs.webkit.org/show_bug.cgi?id=43357
+ *outPosition = ScriptProfiler::getProfilerLogLines(position, data);
}
#endif
void InspectorBackend::setInjectedScriptSource(const String& source)
{
- if (m_inspectorController)
- m_inspectorController->injectedScriptHost()->setInjectedScriptSource(source);
+ m_inspectorController->injectedScriptHost()->setInjectedScriptSource(source);
}
-void InspectorBackend::dispatchOnInjectedScript(long callId, long injectedScriptId, const String& methodName, const String& arguments, bool async)
+void InspectorBackend::dispatchOnInjectedScript(long injectedScriptId, const String& methodName, const String& arguments, RefPtr<InspectorValue>* result, bool* hadException)
{
- InspectorFrontend* frontend = inspectorFrontend();
- if (!frontend)
+ if (!remoteFrontend())
return;
// FIXME: explicitly pass injectedScriptId along with node id to the frontend.
@@ -321,305 +103,50 @@ void InspectorBackend::dispatchOnInjectedScript(long callId, long injectedScript
if (injectedScript.hasNoValue())
return;
- RefPtr<SerializedScriptValue> result;
- bool hadException = false;
- injectedScript.dispatch(callId, methodName, arguments, async, &result, &hadException);
- if (async)
- return; // InjectedScript will return result asynchronously by means of ::reportDidDispatchOnInjectedScript.
- frontend->didDispatchOnInjectedScript(callId, result.get(), hadException);
-}
-
-void InspectorBackend::getChildNodes(long callId, long nodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getChildNodes(callId, nodeId);
-}
-
-void InspectorBackend::setAttribute(long callId, long elementId, const String& name, const String& value)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->setAttribute(callId, elementId, name, value);
-}
-
-void InspectorBackend::removeAttribute(long callId, long elementId, const String& name)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->removeAttribute(callId, elementId, name);
-}
-
-void InspectorBackend::setTextNodeValue(long callId, long nodeId, const String& value)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->setTextNodeValue(callId, nodeId, value);
-}
-
-void InspectorBackend::getEventListenersForNode(long callId, long nodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getEventListenersForNode(callId, nodeId);
-}
-
-void InspectorBackend::copyNode(long nodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->copyNode(nodeId);
-}
-
-void InspectorBackend::removeNode(long callId, long nodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->removeNode(callId, nodeId);
-}
-
-void InspectorBackend::changeTagName(long callId, long nodeId, const String& tagName)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->changeTagName(callId, nodeId, tagName);
-}
-
-void InspectorBackend::getOuterHTML(long callId, long nodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getOuterHTML(callId, nodeId);
-}
-
-void InspectorBackend::setOuterHTML(long callId, long nodeId, const String& outerHTML)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->setOuterHTML(callId, nodeId, outerHTML);
-}
-
-void InspectorBackend::addInspectedNode(long nodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->addInspectedNode(nodeId);
-}
-
-void InspectorBackend::performSearch(const String& query, bool runSynchronously)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->performSearch(query, runSynchronously);
-}
-
-void InspectorBackend::searchCanceled()
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->searchCanceled();
-}
-
-void InspectorBackend::pushNodeByPathToFrontend(long callId, const String& path)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->pushNodeByPathToFrontend(callId, path);
-}
-
-void InspectorBackend::clearConsoleMessages(long callId)
-{
- if (m_inspectorController) {
- m_inspectorController->clearConsoleMessages();
- if (RemoteInspectorFrontend* frontend = remoteFrontend())
- frontend->didClearConsoleMessages(callId);
- }
-}
-
-void InspectorBackend::getStyles(long callId, long nodeId, bool authorOnly)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getStyles(callId, nodeId, authorOnly);
-}
-
-void InspectorBackend::getAllStyles(long callId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getAllStyles(callId);
-}
-
-void InspectorBackend::getInlineStyle(long callId, long nodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getInlineStyle(callId, nodeId);
-}
-
-void InspectorBackend::getComputedStyle(long callId, long nodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getComputedStyle(callId, nodeId);
-}
-
-void InspectorBackend::getStyleSheet(long callId, long styleSheetId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getStyleSheet(callId, styleSheetId);
-}
-
-void InspectorBackend::getRuleRanges(long callId, long styleSheetId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->getRuleRanges(callId, styleSheetId);
-}
-
-void InspectorBackend::applyStyleText(long callId, long styleId, const String& styleText, const String& propertyName)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->applyStyleText(callId, styleId, styleText, propertyName);
-}
-
-void InspectorBackend::setStyleText(long callId, long styleId, const String& cssText)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->setStyleText(callId, styleId, cssText);
-}
-
-void InspectorBackend::setStyleProperty(long callId, long styleId, const String& name, const String& value)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->setStyleProperty(callId, styleId, name, value);
-}
-
-void InspectorBackend::toggleStyleEnabled(long callId, long styleId, const String& propertyName, bool disabled)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->toggleStyleEnabled(callId, styleId, propertyName, disabled);
-}
-
-void InspectorBackend::setRuleSelector(long callId, long ruleId, const String& selector, long selectedNodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->setRuleSelector(callId, ruleId, selector, selectedNodeId);
-}
-
-void InspectorBackend::addRule(long callId, const String& selector, long selectedNodeId)
-{
- if (InspectorDOMAgent* domAgent = inspectorDOMAgent())
- domAgent->addRule(callId, selector, selectedNodeId);
-}
-
-void InspectorBackend::highlightDOMNode(long nodeId)
-{
- if (m_inspectorController)
- m_inspectorController->highlightDOMNode(nodeId);
+ injectedScript.dispatch(methodName, arguments, result, hadException);
}
-void InspectorBackend::hideDOMNodeHighlight()
+void InspectorBackend::clearConsoleMessages()
{
- if (m_inspectorController)
- m_inspectorController->hideDOMNodeHighlight();
-}
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
-void InspectorBackend::getApplicationCaches(long callId)
-{
- if (InspectorApplicationCacheAgent* agent = inspectorApplicationCacheAgent())
- agent->getApplicationCaches(callId);
-}
-#endif
-
-void InspectorBackend::getCookies(long callId)
-{
- if (!m_inspectorController)
- return;
- m_inspectorController->getCookies(callId);
-}
-
-void InspectorBackend::deleteCookie(const String& cookieName, const String& domain)
-{
- if (!m_inspectorController)
- return;
- m_inspectorController->deleteCookie(cookieName, domain);
+ m_inspectorController->clearConsoleMessages();
}
void InspectorBackend::releaseWrapperObjectGroup(long injectedScriptId, const String& objectGroup)
{
- if (!m_inspectorController)
- return;
m_inspectorController->injectedScriptHost()->releaseWrapperObjectGroup(injectedScriptId, objectGroup);
}
-void InspectorBackend::didEvaluateForTestInFrontend(long callId, const String& jsonResult)
-{
- if (m_inspectorController)
- m_inspectorController->didEvaluateForTestInFrontend(callId, jsonResult);
-}
-
#if ENABLE(DATABASE)
-void InspectorBackend::getDatabaseTableNames(long callId, long databaseId)
-{
- if (InspectorFrontend* frontend = inspectorFrontend()) {
- ScriptArray result = frontend->newScriptArray();
- Database* database = m_inspectorController->databaseForId(databaseId);
- if (database) {
- Vector<String> tableNames = database->tableNames();
- unsigned length = tableNames.size();
- for (unsigned i = 0; i < length; ++i)
- result.set(i, tableNames[i]);
- }
- frontend->didGetDatabaseTableNames(callId, result);
+void InspectorBackend::getDatabaseTableNames(long databaseId, RefPtr<InspectorArray>* names)
+{
+ Database* database = m_inspectorController->databaseForId(databaseId);
+ if (database) {
+ Vector<String> tableNames = database->tableNames();
+ unsigned length = tableNames.size();
+ for (unsigned i = 0; i < length; ++i)
+ (*names)->pushString(tableNames[i]);
}
}
-#endif
-#if ENABLE(DOM_STORAGE)
-void InspectorBackend::getDOMStorageEntries(long callId, long storageId)
+void InspectorBackend::executeSQL(long databaseId, const String& query, bool* success, long* transactionId)
{
- if (m_inspectorController)
- m_inspectorController->getDOMStorageEntries(callId, storageId);
-}
-
-void InspectorBackend::setDOMStorageItem(long callId, long storageId, const String& key, const String& value)
-{
- if (m_inspectorController)
- m_inspectorController->setDOMStorageItem(callId, storageId, key, value);
-}
-
-void InspectorBackend::removeDOMStorageItem(long callId, long storageId, const String& key)
-{
- if (m_inspectorController)
- m_inspectorController->removeDOMStorageItem(callId, storageId, key);
-}
-#endif
+ Database* database = m_inspectorController->databaseForId(databaseId);
+ if (!m_inspectorController->m_storageAgent || !database) {
+ *success = false;
+ return;
+ }
-InspectorDOMAgent* InspectorBackend::inspectorDOMAgent()
-{
- if (!m_inspectorController)
- return 0;
- return m_inspectorController->domAgent();
+ *transactionId = m_inspectorController->m_storageAgent->executeSQL(database, query);
+ *success = true;
}
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
-InspectorApplicationCacheAgent* InspectorBackend::inspectorApplicationCacheAgent()
-{
- if (!m_inspectorController)
- return 0;
- return m_inspectorController->applicationCacheAgent();
-}
#endif
-InspectorFrontend* InspectorBackend::inspectorFrontend()
-{
- if (!m_inspectorController)
- return 0;
- return m_inspectorController->m_frontend.get();
-}
-
RemoteInspectorFrontend* InspectorBackend::remoteFrontend()
{
- if (!m_inspectorController)
- return 0;
return m_inspectorController->m_remoteFrontend.get();
}
-void InspectorBackend::addScriptToEvaluateOnLoad(const String& source)
-{
- if (m_inspectorController)
- m_inspectorController->addScriptToEvaluateOnLoad(source);
-}
-
-void InspectorBackend::removeAllScriptsToEvaluateOnLoad()
-{
- if (m_inspectorController)
- m_inspectorController->removeAllScriptsToEvaluateOnLoad();
-}
-
} // namespace WebCore
#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/inspector/InspectorBackend.h b/WebCore/inspector/InspectorBackend.h
index 16d53c0..63c4a09 100644
--- a/WebCore/inspector/InspectorBackend.h
+++ b/WebCore/inspector/InspectorBackend.h
@@ -37,14 +37,10 @@
namespace WebCore {
-class CachedResource;
-class Database;
class InspectorApplicationCacheAgent;
class InspectorDOMAgent;
class InspectorFrontend;
-class Node;
class RemoteInspectorFrontend;
-class Storage;
class InspectorBackend : public RefCounted<InspectorBackend>
{
@@ -57,131 +53,33 @@ public:
~InspectorBackend();
InspectorController* inspectorController() { return m_inspectorController; }
+ InspectorDOMAgent* inspectorDOMAgent() { return m_inspectorController->domAgent(); }
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+ InspectorApplicationCacheAgent* inspectorApplicationCacheAgent() { return m_inspectorController->applicationCacheAgent(); }
+#endif
void disconnectController() { m_inspectorController = 0; }
- void saveApplicationSettings(const String&);
- void saveSessionSettings(const String&);
-
- void storeLastActivePanel(const String& panelName);
-
- void enableSearchingForNode();
- void disableSearchingForNode();
-
- void enableMonitoringXHR();
- void disableMonitoringXHR();
-
- void enableResourceTracking(bool always);
- void disableResourceTracking(bool always);
- void getResourceContent(long callId, unsigned long identifier);
- void reloadPage();
-
- void startTimelineProfiler();
- void stopTimelineProfiler();
-
#if ENABLE(JAVASCRIPT_DEBUGGER)
void enableDebugger(bool always);
- void disableDebugger(bool always);
-
- void setBreakpoint(long callId, const String& sourceID, unsigned lineNumber, bool enabled, const String& condition);
- void removeBreakpoint(const String& sourceID, unsigned lineNumber);
- void activateBreakpoints();
- void deactivateBreakpoints();
-
- void pause();
- void resume();
-
- void stepOverStatement();
- void stepIntoStatement();
- void stepOutOfFunction();
-
- void setPauseOnExceptionsState(long pauseState);
-
- void editScriptSource(long callId, const String& sourceID, const String& newContent);
- void getScriptSource(long callId, const String& sourceID);
-
- void enableProfiler(bool always);
- void disableProfiler(bool always);
-
- void startProfiling();
- void stopProfiling();
-
- void getProfileHeaders(long callId);
- void getProfile(long callId, unsigned uid);
-
- void removeProfile(unsigned uid);
- void clearProfiles();
-
void takeHeapSnapshot();
+ void getProfilerLogLines(long position, long* outPosition, String* data);
#endif
void setInjectedScriptSource(const String& source);
- void dispatchOnInjectedScript(long callId, long injectedScriptId, const String& methodName, const String& arguments, bool async);
- void addScriptToEvaluateOnLoad(const String& source);
- void removeAllScriptsToEvaluateOnLoad();
-
- void getChildNodes(long callId, long nodeId);
- void setAttribute(long callId, long elementId, const String& name, const String& value);
- void removeAttribute(long callId, long elementId, const String& name);
- void setTextNodeValue(long callId, long nodeId, const String& value);
- void getEventListenersForNode(long callId, long nodeId);
- void copyNode(long nodeId);
- void removeNode(long callId, long nodeId);
- void changeTagName(long callId, long nodeId, const String& tagName);
- void getOuterHTML(long callId, long nodeId);
- void setOuterHTML(long callId, long nodeId, const String& outerHTML);
- void addInspectedNode(long nodeId);
- void performSearch(const String& query, bool runSynchronously);
- void searchCanceled();
- void pushNodeByPathToFrontend(long callId, const String& path);
-
- void clearConsoleMessages(long callId);
-
- void getStyles(long callId, long nodeId, bool authOnly);
- void getAllStyles(long callId);
- void getInlineStyle(long callId, long nodeId);
- void getComputedStyle(long callId, long nodeId);
- void getStyleSheet(long callId, long styleSheetId);
- void getRuleRanges(long callId, long styleSheetId);
- void applyStyleText(long callId, long styleId, const String& styleText, const String& propertyName);
- void setStyleText(long callId, long styleId, const String& cssText);
- void setStyleProperty(long callId, long styleId, const String& name, const String& value);
- void toggleStyleEnabled(long callId, long styleId, const String& propertyName, bool disabled);
- void setRuleSelector(long callId, long ruleId, const String& selector, long selectedNodeId);
- void addRule(long callId, const String& selector, long selectedNodeId);
-
- void highlightDOMNode(long nodeId);
- void hideDOMNodeHighlight();
-
- void getCookies(long callId);
- void deleteCookie(const String& cookieName, const String& domain);
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- void getApplicationCaches(long callId);
-#endif
+ void dispatchOnInjectedScript(long injectedScriptId, const String& methodName, const String& arguments, RefPtr<InspectorValue>* result, bool* hadException);
+ void clearConsoleMessages();
// Generic code called from custom implementations.
void releaseWrapperObjectGroup(long injectedScriptId, const String& objectGroup);
- void didEvaluateForTestInFrontend(long callId, const String& jsonResult);
#if ENABLE(DATABASE)
- void getDatabaseTableNames(long callId, long databaseId);
-#endif
-
-#if ENABLE(DOM_STORAGE)
- void getDOMStorageEntries(long callId, long storageId);
- void setDOMStorageItem(long callId, long storageId, const String& key, const String& value);
- void removeDOMStorageItem(long callId, long storageId, const String& key);
+ void getDatabaseTableNames(long databaseId, RefPtr<InspectorArray>* names);
+ void executeSQL(long databaseId, const String& query, bool* success, long* transactionId);
#endif
private:
InspectorBackend(InspectorController* inspectorController);
- InspectorDOMAgent* inspectorDOMAgent();
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- InspectorApplicationCacheAgent* inspectorApplicationCacheAgent();
-#endif
- InspectorFrontend* inspectorFrontend();
RemoteInspectorFrontend* remoteFrontend();
- Node* nodeForId(long nodeId);
InspectorController* m_inspectorController;
};
diff --git a/WebCore/inspector/InspectorCSSStore.cpp b/WebCore/inspector/InspectorCSSStore.cpp
index d098230..16d2508 100644
--- a/WebCore/inspector/InspectorCSSStore.cpp
+++ b/WebCore/inspector/InspectorCSSStore.cpp
@@ -81,7 +81,7 @@ void InspectorCSSStore::removeDocument(Document* doc)
m_documentNodeToInspectorStyleSheetMap.remove(doc);
}
-CSSStyleSheet* InspectorCSSStore::inspectorStyleSheet(Document* ownerDocument, bool createIfAbsent, long callId)
+CSSStyleSheet* InspectorCSSStore::inspectorStyleSheet(Document* ownerDocument, bool createIfAbsent)
{
DocumentToStyleSheetMap::iterator it = m_documentNodeToInspectorStyleSheetMap.find(ownerDocument);
if (it != m_documentNodeToInspectorStyleSheetMap.end())
@@ -94,16 +94,12 @@ CSSStyleSheet* InspectorCSSStore::inspectorStyleSheet(Document* ownerDocument, b
styleElement->setAttribute("type", "text/css", ec);
if (!ec)
ownerDocument->head()->appendChild(styleElement, ec);
- if (ec) {
- m_inspectorController->remoteInspectorFrontend()->didAddRule(callId, InspectorValue::null(), false);
+ if (ec)
return 0;
- }
StyleSheetList* styleSheets = ownerDocument->styleSheets();
StyleSheet* styleSheet = styleSheets->item(styleSheets->length() - 1);
- if (!styleSheet->isCSSStyleSheet()) {
- m_inspectorController->remoteInspectorFrontend()->didAddRule(callId, InspectorValue::null(), false);
+ if (!styleSheet->isCSSStyleSheet())
return 0;
- }
CSSStyleSheet* inspectorStyleSheet = static_cast<CSSStyleSheet*>(styleSheet);
m_documentNodeToInspectorStyleSheetMap.set(ownerDocument, inspectorStyleSheet);
return inspectorStyleSheet;
diff --git a/WebCore/inspector/InspectorCSSStore.h b/WebCore/inspector/InspectorCSSStore.h
index 4f7df00..2a05d71 100644
--- a/WebCore/inspector/InspectorCSSStore.h
+++ b/WebCore/inspector/InspectorCSSStore.h
@@ -30,7 +30,7 @@
#define InspectorCSSStore_h
#include "StringHash.h"
-
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/RefPtr.h>
@@ -44,7 +44,6 @@ class CSSStyleDeclaration;
class CSSRuleList;
class CSSStyleRule;
class CSSStyleSheet;
-class String;
class StyleBase;
typedef std::pair<String, String> PropertyValueAndPriority;
@@ -71,7 +70,7 @@ public:
CSSStyleSheet* styleSheetForId(long styleSheetId);
CSSStyleRule* ruleForId(long styleRuleId);
DisabledStyleDeclaration* disabledStyleForId(long styleId, bool createIfAbsent);
- CSSStyleSheet* inspectorStyleSheet(Document* ownerDocument, bool createIfAbsent, long callId);
+ CSSStyleSheet* inspectorStyleSheet(Document* ownerDocument, bool createIfAbsent);
void removeDocument(Document*);
long bindRule(CSSStyleRule* rule);
diff --git a/WebCore/inspector/InspectorClient.h b/WebCore/inspector/InspectorClient.h
index 61900bb..acd8b28 100644
--- a/WebCore/inspector/InspectorClient.h
+++ b/WebCore/inspector/InspectorClient.h
@@ -27,13 +27,13 @@
#define InspectorClient_h
#include "InspectorController.h"
+#include <wtf/Forward.h>
namespace WebCore {
class InspectorController;
class Node;
class Page;
-class String;
class InspectorClient {
public:
diff --git a/WebCore/inspector/InspectorController.cpp b/WebCore/inspector/InspectorController.cpp
index 369b40b..0b59617 100644
--- a/WebCore/inspector/InspectorController.cpp
+++ b/WebCore/inspector/InspectorController.cpp
@@ -61,11 +61,12 @@
#include "InspectorFrontendClient.h"
#include "InspectorDOMStorageResource.h"
#include "InspectorDatabaseResource.h"
-#include "InspectorFrontend.h"
+#include "InspectorDebuggerAgent.h"
#include "InspectorResource.h"
+#include "InspectorStorageAgent.h"
+#include "InspectorTimelineAgent.h"
#include "InspectorValues.h"
#include "InspectorWorkerResource.h"
-#include "InspectorTimelineAgent.h"
#include "Page.h"
#include "ProgressTracker.h"
#include "Range.h"
@@ -73,7 +74,6 @@
#include "RenderInline.h"
#include "ResourceRequest.h"
#include "ResourceResponse.h"
-#include "ScriptBreakpoint.h"
#include "ScriptCallStack.h"
#include "ScriptFunctionCall.h"
#include "ScriptObject.h"
@@ -89,7 +89,6 @@
#include <wtf/text/CString.h>
#include <wtf/CurrentTime.h>
#include <wtf/ListHashSet.h>
-#include <wtf/MD5.h>
#include <wtf/RefCounted.h>
#include <wtf/StdLibExtras.h>
@@ -108,14 +107,6 @@
#if ENABLE(JAVASCRIPT_DEBUGGER)
#include "ScriptDebugServer.h"
-#if USE(JSC)
-#include <runtime/JSLock.h>
-#include <runtime/UString.h>
-#include "JSScriptProfile.h"
-#else
-#include "ScriptScope.h"
-#include "V8ScriptProfile.h"
-#endif
#endif
using namespace std;
@@ -128,10 +119,15 @@ static const char* const resourceTrackingEnabledSettingName = "resourceTrackingE
static const char* const debuggerEnabledSettingName = "debuggerEnabled";
static const char* const profilerEnabledSettingName = "profilerEnabled";
static const char* const inspectorAttachedHeightName = "inspectorAttachedHeight";
-static const char* const lastActivePanelSettingName = "lastActivePanel";
+static const char* const lastActivePanel = "lastActivePanel";
+const char* const InspectorController::ElementsPanel = "elements";
+const char* const InspectorController::ConsolePanel = "console";
+const char* const InspectorController::ScriptsPanel = "scripts";
+const char* const InspectorController::ProfilesPanel = "profiles";
+
static const char* const monitoringXHRSettingName = "xhrMonitor";
-int connectedFrontendCount = 0;
+static int connectedFrontendCount = 0;
const String& InspectorController::frontendSettingsSettingName()
{
@@ -153,39 +149,13 @@ static const unsigned expireConsoleMessagesStep = 100;
static unsigned s_inspectorControllerCount;
-namespace {
-
-String md5Base16(const String& string)
-{
- static const char digits[] = "0123456789abcdef";
-
- MD5 md5;
- md5.addBytes(reinterpret_cast<const uint8_t*>(string.characters()), string.length() * 2);
- Vector<uint8_t, 16> digest;
- md5.checksum(digest);
-
- Vector<char, 32> result;
- for (int i = 0; i < 16; ++i) {
- result.append(digits[(digest[i] >> 4) & 0xf]);
- result.append(digits[digest[i] & 0xf]);
- }
- return String(result.data(), result.size());
-}
-
-String formatBreakpointId(const String& sourceID, unsigned lineNumber)
-{
- return String::format("%s:%d", sourceID.utf8().data(), lineNumber);
-}
-
-}
-
InspectorController::InspectorController(Page* page, InspectorClient* client)
: m_inspectedPage(page)
, m_client(client)
, m_openingFrontend(false)
, m_cssStore(new InspectorCSSStore(this))
, m_expiredConsoleMessageCount(0)
- , m_showAfterVisible(CurrentPanel)
+ , m_showAfterVisible(lastActivePanel)
, m_sessionSettings(InspectorObject::create())
, m_groupLevel(0)
, m_searchingForNode(false)
@@ -194,13 +164,10 @@ InspectorController::InspectorController(Page* page, InspectorClient* client)
, m_resourceTrackingEnabled(false)
, m_settingsLoaded(false)
, m_inspectorBackend(InspectorBackend::create(this))
- , m_inspectorBackendDispatcher(new InspectorBackendDispatcher(m_inspectorBackend.get()))
+ , m_inspectorBackendDispatcher(new InspectorBackendDispatcher(this))
, m_injectedScriptHost(InjectedScriptHost::create(this))
#if ENABLE(JAVASCRIPT_DEBUGGER)
- , m_debuggerEnabled(false)
, m_attachDebuggerWhenShown(false)
- , m_pausedScriptState(0)
- , m_breakpointsLoaded(false)
, m_profilerEnabled(!WTF_USE_JSC)
, m_recordingUserInitiatedProfile(false)
, m_currentUserInitiatedProfileNumber(-1)
@@ -233,11 +200,14 @@ InspectorController::~InspectorController()
void InspectorController::inspectedPageDestroyed()
{
- if (m_frontend)
- m_frontend->inspectedPageDestroyed();
+ if (m_remoteFrontend)
+ m_remoteFrontend->inspectedPageDestroyed();
hideHighlight();
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+ m_debuggerAgent.clear();
+#endif
ASSERT(m_inspectedPage);
m_inspectedPage = 0;
@@ -291,7 +261,7 @@ void InspectorController::inspect(Node* node)
node = node->parentNode();
m_nodeToFocus = node;
- if (!m_frontend) {
+ if (!m_remoteFrontend) {
m_showAfterVisible = ElementsPanel;
return;
}
@@ -304,11 +274,11 @@ void InspectorController::focusNode()
if (!enabled())
return;
- ASSERT(m_frontend);
+ ASSERT(m_remoteFrontend);
ASSERT(m_nodeToFocus);
long id = m_domAgent->pushNodePathToFrontend(m_nodeToFocus.get());
- m_frontend->updateFocusedNode(id);
+ m_remoteFrontend->updateFocusedNode(id);
m_nodeToFocus = 0;
}
@@ -338,7 +308,7 @@ void InspectorController::hideHighlight()
bool InspectorController::windowVisible()
{
- return m_frontend;
+ return m_remoteFrontend;
}
void InspectorController::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, ScriptCallStack* callStack, const String& message)
@@ -365,16 +335,16 @@ void InspectorController::addConsoleMessage(ScriptState* scriptState, PassOwnPtr
if (m_previousMessage && m_previousMessage->isEqual(scriptState, consoleMessage.get())) {
m_previousMessage->incrementCount();
- if (m_frontend)
+ if (m_remoteFrontend)
m_previousMessage->updateRepeatCountInConsole(m_remoteFrontend.get());
} else {
m_previousMessage = consoleMessage.get();
m_consoleMessages.append(consoleMessage);
- if (m_frontend)
+ if (m_remoteFrontend)
m_previousMessage->addToFrontend(m_remoteFrontend.get(), m_injectedScriptHost.get());
}
- if (!m_frontend && m_consoleMessages.size() >= maximumConsoleMessages) {
+ if (!m_remoteFrontend && m_consoleMessages.size() >= maximumConsoleMessages) {
m_expiredConsoleMessageCount += expireConsoleMessagesStep;
m_consoleMessages.remove(0, expireConsoleMessagesStep);
}
@@ -416,7 +386,7 @@ void InspectorController::markTimeline(const String& message)
void InspectorController::storeLastActivePanel(const String& panelName)
{
- setSetting(lastActivePanelSettingName, panelName);
+ setSetting(lastActivePanel, panelName);
}
void InspectorController::mouseDidMoveOverElement(const HitTestResult& result, unsigned)
@@ -458,18 +428,19 @@ void InspectorController::inspectedWindowScriptObjectCleared(Frame* frame)
if (m_inspectorFrontendClient && frame == m_inspectedPage->mainFrame())
m_inspectorFrontendClient->windowObjectCleared();
- if (!enabled())
- return;
-
- if (m_frontend && frame != m_inspectedPage->mainFrame())
- m_injectedScriptHost->discardInjectedScripts();
- if (m_scriptsToEvaluateOnLoad.size()) {
- ScriptState* scriptState = mainWorldScriptState(frame);
- for (Vector<String>::iterator it = m_scriptsToEvaluateOnLoad.begin();
- it != m_scriptsToEvaluateOnLoad.end(); ++it) {
- m_injectedScriptHost->injectScript(*it, scriptState);
+ if (enabled()) {
+ if (m_remoteFrontend && frame == m_inspectedPage->mainFrame())
+ m_injectedScriptHost->discardInjectedScripts();
+ if (m_scriptsToEvaluateOnLoad.size()) {
+ ScriptState* scriptState = mainWorldScriptState(frame);
+ for (Vector<String>::iterator it = m_scriptsToEvaluateOnLoad.begin();
+ it != m_scriptsToEvaluateOnLoad.end(); ++it) {
+ m_injectedScriptHost->injectScript(*it, scriptState);
+ }
}
}
+ if (!m_inspectorExtensionAPI.isEmpty())
+ m_injectedScriptHost->injectScript(m_inspectorExtensionAPI, mainWorldScriptState(frame));
}
void InspectorController::setSearchingForNode(bool enabled)
@@ -479,11 +450,11 @@ void InspectorController::setSearchingForNode(bool enabled)
m_searchingForNode = enabled;
if (!m_searchingForNode)
hideHighlight();
- if (m_frontend) {
+ if (m_remoteFrontend) {
if (enabled)
- m_frontend->searchingForNodeWasEnabled();
+ m_remoteFrontend->searchingForNodeWasEnabled();
else
- m_frontend->searchingForNodeWasDisabled();
+ m_remoteFrontend->searchingForNodeWasDisabled();
}
}
@@ -493,31 +464,35 @@ void InspectorController::setMonitoringXHR(bool enabled)
return;
m_monitoringXHR = enabled;
setSetting(monitoringXHRSettingName, enabled ? "true" : "false");
- if (m_frontend) {
+ if (m_remoteFrontend) {
if (enabled)
- m_frontend->monitoringXHRWasEnabled();
+ m_remoteFrontend->monitoringXHRWasEnabled();
else
- m_frontend->monitoringXHRWasDisabled();
+ m_remoteFrontend->monitoringXHRWasDisabled();
}
}
-void InspectorController::connectFrontend(const ScriptObject& webInspector)
+void InspectorController::connectFrontend()
{
m_openingFrontend = false;
releaseFrontendLifetimeAgents();
- m_frontend = new InspectorFrontend(webInspector, m_client);
m_remoteFrontend = new RemoteInspectorFrontend(m_client);
m_domAgent = InspectorDOMAgent::create(m_cssStore.get(), m_remoteFrontend.get());
+
+#if ENABLE(DATABASE)
+ m_storageAgent = InspectorStorageAgent::create(m_remoteFrontend.get());
+#endif
+
if (m_timelineAgent)
m_timelineAgent->resetFrontendProxyObject(m_remoteFrontend.get());
// Initialize Web Inspector title.
- m_frontend->inspectedURLChanged(m_inspectedPage->mainFrame()->loader()->url().string());
+ m_remoteFrontend->inspectedURLChanged(m_inspectedPage->mainFrame()->loader()->url().string());
populateScriptObjects();
#if ENABLE(JAVASCRIPT_DEBUGGER)
- if (ScriptDebugServer::shared().isDebuggerAlwaysEnabled()) {
+ if (InspectorDebuggerAgent::isDebuggerAlwaysEnabled()) {
// FIXME (40364): This will force pushing script sources to frontend even if script
// panel is inactive.
enableDebuggerFromFrontend(false);
@@ -531,17 +506,15 @@ void InspectorController::connectFrontend(const ScriptObject& webInspector)
}
#endif
- if (m_showAfterVisible == CurrentPanel) {
- String lastActivePanelSetting = setting(lastActivePanelSettingName);
- m_showAfterVisible = specialPanelForJSName(lastActivePanelSetting);
- }
+ if (m_showAfterVisible == lastActivePanel)
+ m_showAfterVisible = setting(lastActivePanel);
if (m_nodeToFocus)
focusNode();
showPanel(m_showAfterVisible);
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- m_applicationCacheAgent = new InspectorApplicationCacheAgent(this, m_frontend.get());
+ m_applicationCacheAgent = new InspectorApplicationCacheAgent(this, m_remoteFrontend.get());
#endif
if (!connectedFrontendCount)
@@ -557,44 +530,44 @@ void InspectorController::show()
if (m_openingFrontend)
return;
- if (m_frontend)
- m_frontend->bringToFront();
+ if (m_remoteFrontend)
+ m_remoteFrontend->bringToFront();
else {
m_openingFrontend = true;
m_client->openInspectorFrontend(this);
}
}
-void InspectorController::showPanel(SpecialPanels panel)
+void InspectorController::showPanel(const String& panel)
{
if (!enabled())
return;
show();
- if (!m_frontend) {
+ if (!m_remoteFrontend) {
m_showAfterVisible = panel;
return;
}
- if (panel == CurrentPanel)
+ if (panel == lastActivePanel)
return;
- m_frontend->showPanel(panel);
+ m_remoteFrontend->showPanel(panel);
}
void InspectorController::close()
{
- if (!m_frontend)
+ if (!m_remoteFrontend)
return;
- m_frontend->close();
+ m_remoteFrontend->close();
}
void InspectorController::disconnectFrontend()
{
- if (!m_frontend)
+ if (!m_remoteFrontend)
return;
- m_frontend.clear();
+ m_remoteFrontend.clear();
connectedFrontendCount--;
if (!connectedFrontendCount)
@@ -604,7 +577,7 @@ void InspectorController::disconnectFrontend()
// If the window is being closed with the debugger enabled,
// remember this state to re-enable debugger on the next window
// opening.
- bool debuggerWasEnabled = m_debuggerEnabled;
+ bool debuggerWasEnabled = debuggerEnabled();
disableDebugger();
m_attachDebuggerWhenShown = debuggerWasEnabled;
#endif
@@ -612,7 +585,7 @@ void InspectorController::disconnectFrontend()
unbindAllResources();
stopTimelineProfiler();
- m_showAfterVisible = CurrentPanel;
+ m_showAfterVisible = lastActivePanel;
hideHighlight();
@@ -631,6 +604,9 @@ void InspectorController::releaseFrontendLifetimeAgents()
if (m_domAgent)
m_domAgent->reset();
m_domAgent.clear();
+ if (m_storageAgent)
+ m_storageAgent->clearFrontend();
+ m_storageAgent.clear();
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
m_applicationCacheAgent.clear();
@@ -639,29 +615,29 @@ void InspectorController::releaseFrontendLifetimeAgents()
void InspectorController::populateScriptObjects()
{
- ASSERT(m_frontend);
- if (!m_frontend)
+ ASSERT(m_remoteFrontend);
+ if (!m_remoteFrontend)
return;
- m_frontend->populateApplicationSettings(setting(frontendSettingsSettingName()));
+ m_remoteFrontend->populateApplicationSettings(setting(frontendSettingsSettingName()));
if (m_resourceTrackingEnabled)
- m_frontend->resourceTrackingWasEnabled();
+ m_remoteFrontend->resourceTrackingWasEnabled();
if (m_searchingForNode)
- m_frontend->searchingForNodeWasEnabled();
+ m_remoteFrontend->searchingForNodeWasEnabled();
if (m_monitoringXHR)
- m_frontend->monitoringXHRWasEnabled();
+ m_remoteFrontend->monitoringXHRWasEnabled();
#if ENABLE(JAVASCRIPT_DEBUGGER)
if (m_profilerEnabled)
- m_frontend->profilerWasEnabled();
+ m_remoteFrontend->profilerWasEnabled();
#endif
ResourcesMap::iterator resourcesEnd = m_resources.end();
for (ResourcesMap::iterator it = m_resources.begin(); it != resourcesEnd; ++it)
- it->second->updateScriptObject(m_frontend.get());
+ it->second->updateScriptObject(m_remoteFrontend.get());
m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
@@ -672,31 +648,33 @@ void InspectorController::populateScriptObjects()
m_consoleMessages[i]->addToFrontend(m_remoteFrontend.get(), m_injectedScriptHost.get());
#if ENABLE(JAVASCRIPT_DEBUGGER)
- if (m_debuggerEnabled)
- m_frontend->updatePauseOnExceptionsState(ScriptDebugServer::shared().pauseOnExceptionsState());
+ if (debuggerEnabled())
+ m_remoteFrontend->updatePauseOnExceptionsState(ScriptDebugServer::shared().pauseOnExceptionsState());
#endif
#if ENABLE(DATABASE)
DatabaseResourcesMap::iterator databasesEnd = m_databaseResources.end();
for (DatabaseResourcesMap::iterator it = m_databaseResources.begin(); it != databasesEnd; ++it)
- it->second->bind(m_frontend.get());
+ it->second->bind(m_remoteFrontend.get());
#endif
#if ENABLE(DOM_STORAGE)
DOMStorageResourcesMap::iterator domStorageEnd = m_domStorageResources.end();
for (DOMStorageResourcesMap::iterator it = m_domStorageResources.begin(); it != domStorageEnd; ++it)
- it->second->bind(m_frontend.get());
+ it->second->bind(m_remoteFrontend.get());
#endif
#if ENABLE(WORKERS)
WorkersMap::iterator workersEnd = m_workers.end();
- for (WorkersMap::iterator it = m_workers.begin(); it != workersEnd; ++it)
- m_frontend->didCreateWorker(*it->second);
+ for (WorkersMap::iterator it = m_workers.begin(); it != workersEnd; ++it) {
+ InspectorWorkerResource* worker = it->second.get();
+ m_remoteFrontend->didCreateWorker(worker->id(), worker->url(), worker->isSharedWorker());
+ }
#endif
- m_frontend->populateSessionSettings(m_sessionSettings->toJSONString());
- m_frontend->populateInterface();
+ m_remoteFrontend->populateSessionSettings(m_sessionSettings->toJSONString());
+ m_remoteFrontend->populateInterface();
// Dispatch pending frontend commands
for (Vector<pair<long, String> >::iterator it = m_pendingEvaluateTestCommands.begin(); it != m_pendingEvaluateTestCommands.end(); ++it)
- m_frontend->evaluateForTestInFrontend((*it).first, (*it).second);
+ m_remoteFrontend->evaluateForTestInFrontend((*it).first, (*it).second);
m_pendingEvaluateTestCommands.clear();
}
@@ -733,8 +711,8 @@ void InspectorController::pruneResources(ResourcesMap* resourceMap, DocumentLoad
if (!loaderToKeep || !resource->isSameLoader(loaderToKeep)) {
removeResource(resource);
- if (m_frontend)
- resource->releaseScriptObject(m_frontend.get());
+ if (m_remoteFrontend)
+ resource->releaseScriptObject(m_remoteFrontend.get());
}
}
}
@@ -747,8 +725,8 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
ASSERT(m_inspectedPage);
if (loader->frame() == m_inspectedPage->mainFrame()) {
- if (m_frontend)
- m_frontend->inspectedURLChanged(loader->url().string());
+ if (m_remoteFrontend)
+ m_remoteFrontend->inspectedURLChanged(loader->url().string());
m_injectedScriptHost->discardInjectedScripts();
clearConsoleMessages();
@@ -756,18 +734,15 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
m_times.clear();
m_counts.clear();
#if ENABLE(JAVASCRIPT_DEBUGGER)
- m_sourceIDToURL.clear();
- m_scriptIDToContent.clear();
- m_stickyBreakpoints.clear();
- m_breakpointsMapping.clear();
- m_breakpointsLoaded = false;
+ if (m_debuggerAgent)
+ m_debuggerAgent->clearForPageNavigation();
#endif
#if ENABLE(JAVASCRIPT_DEBUGGER) && USE(JSC)
m_profiles.clear();
m_currentUserInitiatedProfileNumber = 1;
m_nextUserInitiatedProfileNumber = 1;
- if (m_frontend)
- m_frontend->resetProfilesPanel();
+ if (m_remoteFrontend)
+ m_remoteFrontend->resetProfilesPanel();
#endif
// unbindAllResources should be called before database and DOM storage
// resources are cleared so that it has a chance to unbind them.
@@ -775,8 +750,8 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
m_cssStore->reset();
m_sessionSettings = InspectorObject::create();
- if (m_frontend) {
- m_frontend->reset();
+ if (m_remoteFrontend) {
+ m_remoteFrontend->reset();
m_domAgent->reset();
}
#if ENABLE(WORKERS)
@@ -789,13 +764,13 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
m_domStorageResources.clear();
#endif
- if (m_frontend) {
+ if (m_remoteFrontend) {
if (!loader->frameLoader()->isLoadingFromCachedPage()) {
ASSERT(m_mainResource && m_mainResource->isSameLoader(loader));
// We don't add the main resource until its load is committed. This is
// needed to keep the load for a user-entered URL from showing up in the
// list of resources for the page they are navigating away from.
- m_mainResource->updateScriptObject(m_frontend.get());
+ m_mainResource->updateScriptObject(m_remoteFrontend.get());
} else {
// Pages loaded from the page cache are committed before
// m_mainResource is the right resource for this load, so we
@@ -803,7 +778,7 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
// identifierForInitialRequest.
m_mainResource = 0;
}
- m_frontend->didCommitLoad();
+ m_remoteFrontend->didCommitLoad();
m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
}
}
@@ -906,8 +881,8 @@ void InspectorController::didLoadResourceFromMemoryCache(DocumentLoader* loader,
addResource(resource.get());
- if (m_frontend)
- resource->updateScriptObject(m_frontend.get());
+ if (m_remoteFrontend)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
void InspectorController::identifierForInitialRequest(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request)
@@ -930,8 +905,8 @@ void InspectorController::identifierForInitialRequest(unsigned long identifier,
addResource(resource.get());
- if (m_frontend && loader->frameLoader()->isLoadingFromCachedPage() && resource == m_mainResource)
- resource->updateScriptObject(m_frontend.get());
+ if (m_remoteFrontend && loader->frameLoader()->isLoadingFromCachedPage() && resource == m_mainResource)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
void InspectorController::mainResourceFiredDOMContentEvent(DocumentLoader* loader, const KURL& url)
@@ -943,8 +918,8 @@ void InspectorController::mainResourceFiredDOMContentEvent(DocumentLoader* loade
m_mainResource->markDOMContentEventTime();
if (m_timelineAgent)
m_timelineAgent->didMarkDOMContentEvent();
- if (m_frontend)
- m_mainResource->updateScriptObject(m_frontend.get());
+ if (m_remoteFrontend)
+ m_mainResource->updateScriptObject(m_remoteFrontend.get());
}
}
@@ -957,8 +932,8 @@ void InspectorController::mainResourceFiredLoadEvent(DocumentLoader* loader, con
m_mainResource->markLoadEventTime();
if (m_timelineAgent)
m_timelineAgent->didMarkLoadEvent();
- if (m_frontend)
- m_mainResource->updateScriptObject(m_frontend.get());
+ if (m_remoteFrontend)
+ m_mainResource->updateScriptObject(m_remoteFrontend.get());
}
}
@@ -1005,8 +980,8 @@ void InspectorController::willSendRequest(unsigned long identifier, ResourceRequ
resource->startTiming();
resource->updateRequest(request);
- if (resource != m_mainResource && m_frontend)
- resource->updateScriptObject(m_frontend.get());
+ if (resource != m_mainResource && m_remoteFrontend)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
void InspectorController::didReceiveResponse(unsigned long identifier, const ResourceResponse& response)
@@ -1017,8 +992,8 @@ void InspectorController::didReceiveResponse(unsigned long identifier, const Res
if (RefPtr<InspectorResource> resource = getTrackedResource(identifier)) {
resource->updateResponse(response);
- if (resource != m_mainResource && m_frontend)
- resource->updateScriptObject(m_frontend.get());
+ if (resource != m_mainResource && m_remoteFrontend)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
if (response.httpStatusCode() >= 400) {
// The ugly code below is due to that String::format() is not utf8-safe at the moment.
@@ -1039,8 +1014,8 @@ void InspectorController::didReceiveContentLength(unsigned long identifier, int
resource->addLength(lengthReceived);
- if (resource != m_mainResource && m_frontend)
- resource->updateScriptObject(m_frontend.get());
+ if (resource != m_mainResource && m_remoteFrontend)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
void InspectorController::didFinishLoading(unsigned long identifier)
@@ -1058,8 +1033,8 @@ void InspectorController::didFinishLoading(unsigned long identifier)
resource->endTiming();
// No need to mute this event for main resource since it happens after did commit load.
- if (m_frontend)
- resource->updateScriptObject(m_frontend.get());
+ if (m_remoteFrontend)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
void InspectorController::didFailLoading(unsigned long identifier, const ResourceError& error)
@@ -1083,8 +1058,8 @@ void InspectorController::didFailLoading(unsigned long identifier, const Resourc
resource->endTiming();
// No need to mute this event for main resource since it happens after did commit load.
- if (m_frontend)
- resource->updateScriptObject(m_frontend.get());
+ if (m_remoteFrontend)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identifier, const ScriptString& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber)
@@ -1104,8 +1079,8 @@ void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identi
resource->setOverrideContent(sourceString, InspectorResource::XHR);
- if (m_frontend)
- resource->updateScriptObject(m_frontend.get());
+ if (m_remoteFrontend)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
void InspectorController::scriptImported(unsigned long identifier, const String& sourceString)
@@ -1119,8 +1094,8 @@ void InspectorController::scriptImported(unsigned long identifier, const String&
resource->setOverrideContent(ScriptString(sourceString), InspectorResource::Script);
- if (m_frontend)
- resource->updateScriptObject(m_frontend.get());
+ if (m_remoteFrontend)
+ resource->updateScriptObject(m_remoteFrontend.get());
}
void InspectorController::enableResourceTracking(bool always, bool reload)
@@ -1136,8 +1111,8 @@ void InspectorController::enableResourceTracking(bool always, bool reload)
ASSERT(m_inspectedPage);
m_resourceTrackingEnabled = true;
- if (m_frontend)
- m_frontend->resourceTrackingWasEnabled();
+ if (m_remoteFrontend)
+ m_remoteFrontend->resourceTrackingWasEnabled();
m_client->resourceTrackingWasEnabled();
if (reload)
@@ -1154,8 +1129,8 @@ void InspectorController::disableResourceTracking(bool always)
ASSERT(m_inspectedPage);
m_resourceTrackingEnabled = false;
- if (m_frontend)
- m_frontend->resourceTrackingWasDisabled();
+ if (m_remoteFrontend)
+ m_remoteFrontend->resourceTrackingWasDisabled();
m_client->resourceTrackingWasDisabled();
}
@@ -1184,8 +1159,8 @@ void InspectorController::startTimelineProfiler()
return;
m_timelineAgent = new InspectorTimelineAgent(m_remoteFrontend.get());
- if (m_frontend)
- m_frontend->timelineProfilerWasStarted();
+ if (m_remoteFrontend)
+ m_remoteFrontend->timelineProfilerWasStarted();
m_client->timelineProfilerWasStarted();
}
@@ -1198,8 +1173,8 @@ void InspectorController::stopTimelineProfiler()
return;
m_timelineAgent = 0;
- if (m_frontend)
- m_frontend->timelineProfilerWasStopped();
+ if (m_remoteFrontend)
+ m_remoteFrontend->timelineProfilerWasStopped();
m_client->timelineProfilerWasStopped();
}
@@ -1231,14 +1206,14 @@ private:
void InspectorController::postWorkerNotificationToFrontend(const InspectorWorkerResource& worker, InspectorController::WorkerAction action)
{
- if (!m_frontend)
+ if (!m_remoteFrontend)
return;
switch (action) {
case InspectorController::WorkerCreated:
- m_frontend->didCreateWorker(worker);
+ m_remoteFrontend->didCreateWorker(worker.id(), worker.url(), worker.isSharedWorker());
break;
case InspectorController::WorkerDestroyed:
- m_frontend->didDestroyWorker(worker);
+ m_remoteFrontend->didDestroyWorker(worker.id());
break;
}
}
@@ -1250,7 +1225,7 @@ void InspectorController::didCreateWorker(intptr_t id, const String& url, bool i
RefPtr<InspectorWorkerResource> workerResource(InspectorWorkerResource::create(id, url, isSharedWorker));
m_workers.set(id, workerResource);
- if (m_inspectedPage && m_frontend)
+ if (m_inspectedPage && m_remoteFrontend)
m_inspectedPage->mainFrame()->document()->postTask(PostWorkerNotificationToFrontendTask::create(workerResource, InspectorController::WorkerCreated));
}
@@ -1262,7 +1237,7 @@ void InspectorController::didDestroyWorker(intptr_t id)
WorkersMap::iterator workerResource = m_workers.find(id);
if (workerResource == m_workers.end())
return;
- if (m_inspectedPage && m_frontend)
+ if (m_inspectedPage && m_remoteFrontend)
m_inspectedPage->mainFrame()->document()->postTask(PostWorkerNotificationToFrontendTask::create(workerResource->second, InspectorController::WorkerDestroyed));
m_workers.remove(workerResource);
}
@@ -1271,12 +1246,12 @@ void InspectorController::didDestroyWorker(intptr_t id)
#if ENABLE(DATABASE)
void InspectorController::selectDatabase(Database* database)
{
- if (!m_frontend)
+ if (!m_remoteFrontend)
return;
for (DatabaseResourcesMap::iterator it = m_databaseResources.begin(); it != m_databaseResources.end(); ++it) {
if (it->second->database() == database) {
- m_frontend->selectDatabase(it->first);
+ m_remoteFrontend->selectDatabase(it->first);
break;
}
}
@@ -1290,7 +1265,7 @@ Database* InspectorController::databaseForId(long databaseId)
return it->second->database();
}
-void InspectorController::didOpenDatabase(Database* database, const String& domain, const String& name, const String& version)
+void InspectorController::didOpenDatabase(PassRefPtr<Database> database, const String& domain, const String& name, const String& version)
{
if (!enabled())
return;
@@ -1300,16 +1275,13 @@ void InspectorController::didOpenDatabase(Database* database, const String& doma
m_databaseResources.set(resource->id(), resource);
// Resources are only bound while visible.
- if (m_frontend)
- resource->bind(m_frontend.get());
+ if (m_remoteFrontend)
+ resource->bind(m_remoteFrontend.get());
}
#endif
-void InspectorController::getCookies(long callId)
+void InspectorController::getCookies(RefPtr<InspectorArray>* cookies, WTF::String* cookiesString)
{
- if (!m_frontend)
- return;
-
// If we can get raw cookies.
ListHashSet<Cookie> rawCookiesList;
@@ -1343,36 +1315,37 @@ void InspectorController::getCookies(long callId)
}
}
- if (!rawCookiesImplemented)
- m_frontend->didGetCookies(callId, m_frontend->newScriptArray(), stringCookiesList);
- else
- m_frontend->didGetCookies(callId, buildArrayForCookies(rawCookiesList), String());
+ if (rawCookiesImplemented)
+ *cookies = buildArrayForCookies(rawCookiesList);
+ else {
+ *cookiesString = stringCookiesList;
+ }
}
-ScriptArray InspectorController::buildArrayForCookies(ListHashSet<Cookie>& cookiesList)
+PassRefPtr<InspectorArray> InspectorController::buildArrayForCookies(ListHashSet<Cookie>& cookiesList)
{
- ScriptArray cookies = m_frontend->newScriptArray();
+ RefPtr<InspectorArray> cookies = InspectorArray::create();
ListHashSet<Cookie>::iterator end = cookiesList.end();
ListHashSet<Cookie>::iterator it = cookiesList.begin();
for (int i = 0; it != end; ++it, i++)
- cookies.set(i, buildObjectForCookie(*it));
+ cookies->push(buildObjectForCookie(*it));
return cookies;
}
-ScriptObject InspectorController::buildObjectForCookie(const Cookie& cookie)
+PassRefPtr<InspectorObject> InspectorController::buildObjectForCookie(const Cookie& cookie)
{
- ScriptObject value = m_frontend->newScriptObject();
- value.set("name", cookie.name);
- value.set("value", cookie.value);
- value.set("domain", cookie.domain);
- value.set("path", cookie.path);
- value.set("expires", cookie.expires);
- value.set("size", (cookie.name.length() + cookie.value.length()));
- value.set("httpOnly", cookie.httpOnly);
- value.set("secure", cookie.secure);
- value.set("session", cookie.session);
+ RefPtr<InspectorObject> value = InspectorObject::create();
+ value->setString("name", cookie.name);
+ value->setString("value", cookie.value);
+ value->setString("domain", cookie.domain);
+ value->setString("path", cookie.path);
+ value->setNumber("expires", cookie.expires);
+ value->setNumber("size", (cookie.name.length() + cookie.value.length()));
+ value->setBool("httpOnly", cookie.httpOnly);
+ value->setBool("secure", cookie.secure);
+ value->setBool("session", cookie.session);
return value;
}
@@ -1403,14 +1376,14 @@ void InspectorController::didUseDOMStorage(StorageArea* storageArea, bool isLoca
m_domStorageResources.set(resource->id(), resource);
// Resources are only bound while visible.
- if (m_frontend)
- resource->bind(m_frontend.get());
+ if (m_remoteFrontend)
+ resource->bind(m_remoteFrontend.get());
}
void InspectorController::selectDOMStorage(Storage* storage)
{
ASSERT(storage);
- if (!m_frontend)
+ if (!m_remoteFrontend)
return;
Frame* frame = storage->frame();
@@ -1425,15 +1398,11 @@ void InspectorController::selectDOMStorage(Storage* storage)
}
}
if (storageResourceId)
- m_frontend->selectDOMStorage(storageResourceId);
+ m_remoteFrontend->selectDOMStorage(storageResourceId);
}
-void InspectorController::getDOMStorageEntries(long callId, long storageId)
+void InspectorController::getDOMStorageEntries(long storageId, RefPtr<InspectorArray>* entries)
{
- if (!m_frontend)
- return;
-
- ScriptArray jsonArray = m_frontend->newScriptArray();
InspectorDOMStorageResource* storageResource = getDOMStorageResourceForId(storageId);
if (storageResource) {
storageResource->startReportingChangesToFrontend();
@@ -1441,42 +1410,31 @@ void InspectorController::getDOMStorageEntries(long callId, long storageId)
for (unsigned i = 0; i < domStorage->length(); ++i) {
String name(domStorage->key(i));
String value(domStorage->getItem(name));
- ScriptArray entry = m_frontend->newScriptArray();
- entry.set(0, name);
- entry.set(1, value);
- jsonArray.set(i, entry);
+ RefPtr<InspectorArray> entry = InspectorArray::create();
+ entry->pushString(name);
+ entry->pushString(value);
+ (*entries)->push(entry);
}
}
- m_frontend->didGetDOMStorageEntries(callId, jsonArray);
}
-void InspectorController::setDOMStorageItem(long callId, long storageId, const String& key, const String& value)
+void InspectorController::setDOMStorageItem(long storageId, const String& key, const String& value, bool* success)
{
- if (!m_frontend)
- return;
-
- bool success = false;
InspectorDOMStorageResource* storageResource = getDOMStorageResourceForId(storageId);
if (storageResource) {
ExceptionCode exception = 0;
storageResource->domStorage()->setItem(key, value, exception);
- success = !exception;
+ *success = !exception;
}
- m_frontend->didSetDOMStorageItem(callId, success);
}
-void InspectorController::removeDOMStorageItem(long callId, long storageId, const String& key)
+void InspectorController::removeDOMStorageItem(long storageId, const String& key, bool* success)
{
- if (!m_frontend)
- return;
-
- bool success = false;
InspectorDOMStorageResource* storageResource = getDOMStorageResourceForId(storageId);
if (storageResource) {
storageResource->domStorage()->removeItem(key);
- success = true;
+ *success = true;
}
- m_frontend->didRemoveDOMStorageItem(callId, success);
}
InspectorDOMStorageResource* InspectorController::getDOMStorageResourceForId(long storageId)
@@ -1497,11 +1455,8 @@ void InspectorController::addProfile(PassRefPtr<ScriptProfile> prpProfile, unsig
RefPtr<ScriptProfile> profile = prpProfile;
m_profiles.add(profile->uid(), profile);
- if (m_frontend) {
-#if USE(JSC)
- JSC::JSLock lock(JSC::SilenceAssertionsOnly);
-#endif
- m_frontend->addProfileHeader(createProfileHeader(*profile));
+ if (m_remoteFrontend) {
+ m_remoteFrontend->addProfileHeader(createProfileHeader(*profile));
}
addProfileFinishedMessageToConsole(profile, lineNumber, sourceURL);
@@ -1511,11 +1466,7 @@ void InspectorController::addProfileFinishedMessageToConsole(PassRefPtr<ScriptPr
{
RefPtr<ScriptProfile> profile = prpProfile;
-#if USE(JSC)
- String title = ustringToString(profile->title());
-#else
String title = profile->title();
-#endif
String message = String::format("Profile \"webkit-profile://%s/%s#%d\" finished.", CPUProfileType, encodeWithURLEscapeSequences(title).utf8().data(), profile->uid());
addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceURL);
}
@@ -1545,45 +1496,28 @@ void InspectorController::clearProfiles()
m_nextUserInitiatedProfileNumber = 1;
}
-void InspectorController::getProfileHeaders(long callId)
+void InspectorController::getProfileHeaders(RefPtr<InspectorArray>* headers)
{
- if (!m_frontend)
- return;
- ScriptArray result = m_frontend->newScriptArray();
ProfilesMap::iterator profilesEnd = m_profiles.end();
- int i = 0;
for (ProfilesMap::iterator it = m_profiles.begin(); it != profilesEnd; ++it)
- result.set(i++, createProfileHeader(*it->second));
- m_frontend->didGetProfileHeaders(callId, result);
+ (*headers)->push(createProfileHeader(*it->second));
}
-void InspectorController::getProfile(long callId, unsigned uid)
+void InspectorController::getProfile(unsigned uid, RefPtr<InspectorObject>* profileObject)
{
- if (!m_frontend)
- return;
ProfilesMap::iterator it = m_profiles.find(uid);
if (it != m_profiles.end()) {
-#if USE(JSC)
- m_frontend->didGetProfile(callId, toJS(m_frontend->scriptState(), it->second.get()));
-#else
- ScriptScope scope(m_frontend->scriptState());
- m_frontend->didGetProfile(callId, toV8(it->second.get()));
-#endif
+ *profileObject = createProfileHeader(*it->second);
+ (*profileObject)->set("head", it->second->buildInspectorObjectForHead());
}
}
-ScriptObject InspectorController::createProfileHeader(const ScriptProfile& profile)
+PassRefPtr<InspectorObject> InspectorController::createProfileHeader(const ScriptProfile& profile)
{
-#if USE(JSC)
- String title = ustringToString(profile.title());
-#else
- String title = profile.title();
-#endif
-
- ScriptObject header = m_frontend->newScriptObject();
- header.set("title", title);
- header.set("uid", profile.uid());
- header.set("typeId", String(CPUProfileType));
+ RefPtr<InspectorObject> header = InspectorObject::create();
+ header->setString("title", profile.title());
+ header->setNumber("uid", profile.uid());
+ header->setString("typeId", String(CPUProfileType));
return header;
}
@@ -1651,9 +1585,9 @@ void InspectorController::stopUserInitiatedProfiling()
void InspectorController::toggleRecordButton(bool isProfiling)
{
- if (!m_frontend)
+ if (!m_remoteFrontend)
return;
- m_frontend->setRecordingProfile(isProfiling);
+ m_remoteFrontend->setRecordingProfile(isProfiling);
}
void InspectorController::enableProfiler(bool always, bool skipRecompile)
@@ -1669,8 +1603,8 @@ void InspectorController::enableProfiler(bool always, bool skipRecompile)
if (!skipRecompile)
ScriptDebugServer::shared().recompileAllJSFunctionsSoon();
- if (m_frontend)
- m_frontend->profilerWasEnabled();
+ if (m_remoteFrontend)
+ m_remoteFrontend->profilerWasEnabled();
}
void InspectorController::disableProfiler(bool always)
@@ -1685,33 +1619,23 @@ void InspectorController::disableProfiler(bool always)
ScriptDebugServer::shared().recompileAllJSFunctionsSoon();
- if (m_frontend)
- m_frontend->profilerWasDisabled();
-}
-
-void InspectorController::takeHeapSnapshot()
-{
- if (!enabled())
- return;
-
- ScriptProfiler::takeHeapSnapshot();
+ if (m_remoteFrontend)
+ m_remoteFrontend->profilerWasDisabled();
}
#endif
#if ENABLE(JAVASCRIPT_DEBUGGER)
void InspectorController::enableDebuggerFromFrontend(bool always)
{
- ASSERT(!m_debuggerEnabled);
+ ASSERT(!debuggerEnabled());
if (always)
setSetting(debuggerEnabledSettingName, "true");
ASSERT(m_inspectedPage);
- ScriptDebugServer::shared().clearBreakpoints();
- ScriptDebugServer::shared().addListener(this, m_inspectedPage);
+ m_debuggerAgent = InspectorDebuggerAgent::create(this, m_remoteFrontend.get());
- m_debuggerEnabled = true;
- m_frontend->debuggerWasEnabled();
+ m_remoteFrontend->debuggerWasEnabled();
}
void InspectorController::enableDebugger()
@@ -1719,13 +1643,13 @@ void InspectorController::enableDebugger()
if (!enabled())
return;
- if (m_debuggerEnabled)
+ if (debuggerEnabled())
return;
- if (!m_frontend)
+ if (!m_remoteFrontend)
m_attachDebuggerWhenShown = true;
else {
- m_frontend->attachDebuggerWhenShown();
+ m_remoteFrontend->attachDebuggerWhenShown();
m_attachDebuggerWhenShown = false;
}
}
@@ -1740,163 +1664,27 @@ void InspectorController::disableDebugger(bool always)
ASSERT(m_inspectedPage);
- ScriptDebugServer::shared().removeListener(this, m_inspectedPage);
+ m_debuggerAgent.clear();
- m_debuggerEnabled = false;
m_attachDebuggerWhenShown = false;
- m_pausedScriptState = 0;
-
- if (m_frontend)
- m_frontend->debuggerWasDisabled();
-}
-
-void InspectorController::editScriptSource(long callId, const String& sourceID, const String& newContent)
-{
- String result;
- bool success = ScriptDebugServer::shared().editScriptSource(sourceID, newContent, result);
- RefPtr<SerializedScriptValue> callFrames;
- if (success)
- callFrames = currentCallFrames();
- m_frontend->didEditScriptSource(callId, success, result, callFrames.get());
-}
-void InspectorController::getScriptSource(long callId, const String& sourceID)
-{
- if (!m_frontend)
- return;
- String scriptSource = m_scriptIDToContent.get(sourceID);
- m_frontend->didGetScriptSource(callId, scriptSource);
+ if (m_remoteFrontend)
+ m_remoteFrontend->debuggerWasDisabled();
}
void InspectorController::resume()
{
- if (!m_debuggerEnabled)
- return;
- ScriptDebugServer::shared().continueProgram();
+ if (m_debuggerAgent)
+ m_debuggerAgent->resume();
}
-
-void InspectorController::setPauseOnExceptionsState(long pauseState)
-{
- ScriptDebugServer::shared().setPauseOnExceptionsState(static_cast<ScriptDebugServer::PauseOnExceptionsState>(pauseState));
- if (m_frontend)
- m_frontend->updatePauseOnExceptionsState(ScriptDebugServer::shared().pauseOnExceptionsState());
-}
-
-PassRefPtr<SerializedScriptValue> InspectorController::currentCallFrames()
-{
- if (!m_pausedScriptState)
- return 0;
- InjectedScript injectedScript = m_injectedScriptHost->injectedScriptFor(m_pausedScriptState);
- if (injectedScript.hasNoValue()) {
- ASSERT_NOT_REACHED();
- return 0;
- }
- return injectedScript.callFrames();
-}
-
-void InspectorController::setBreakpoint(long callId, const String& sourceID, unsigned lineNumber, bool enabled, const String& condition)
-{
- ScriptBreakpoint breakpoint(enabled, condition);
- unsigned actualLineNumber = 0;
- bool success = ScriptDebugServer::shared().setBreakpoint(sourceID, breakpoint, lineNumber, &actualLineNumber);
- m_frontend->didSetBreakpoint(callId, success, actualLineNumber);
- if (!success)
- return;
-
- String url = m_sourceIDToURL.get(sourceID);
- if (url.isEmpty())
- return;
-
- String breakpointId = formatBreakpointId(sourceID, actualLineNumber);
- m_breakpointsMapping.set(breakpointId, actualLineNumber);
-
- String key = md5Base16(url);
- HashMap<String, SourceBreakpoints>::iterator it = m_stickyBreakpoints.find(key);
- if (it == m_stickyBreakpoints.end())
- it = m_stickyBreakpoints.set(key, SourceBreakpoints()).first;
- it->second.set(actualLineNumber, breakpoint);
- saveBreakpoints();
-}
-
-void InspectorController::removeBreakpoint(const String& sourceID, unsigned lineNumber)
-{
- ScriptDebugServer::shared().removeBreakpoint(sourceID, lineNumber);
-
- String url = m_sourceIDToURL.get(sourceID);
- if (url.isEmpty())
- return;
-
- String breakpointId = formatBreakpointId(sourceID, lineNumber);
- HashMap<String, unsigned>::iterator mappingIt = m_breakpointsMapping.find(breakpointId);
- if (mappingIt == m_breakpointsMapping.end())
- return;
- unsigned stickyLine = mappingIt->second;
- m_breakpointsMapping.remove(mappingIt);
-
- HashMap<String, SourceBreakpoints>::iterator it = m_stickyBreakpoints.find(md5Base16(url));
- if (it == m_stickyBreakpoints.end())
- return;
-
- it->second.remove(stickyLine);
- saveBreakpoints();
-}
-
// JavaScriptDebugListener functions
-void InspectorController::didParseSource(const String& sourceID, const String& url, const String& data, int firstLine, ScriptWorldType worldType)
-{
- // Don't send script content to the front end until it's really needed.
- m_frontend->parsedScriptSource(sourceID, url, "", firstLine, worldType);
-
- m_scriptIDToContent.set(sourceID, data);
-
- if (url.isEmpty())
- return;
-
- loadBreakpoints();
- HashMap<String, SourceBreakpoints>::iterator it = m_stickyBreakpoints.find(md5Base16(url));
- if (it != m_stickyBreakpoints.end()) {
- for (SourceBreakpoints::iterator breakpointIt = it->second.begin(); breakpointIt != it->second.end(); ++breakpointIt) {
- int lineNumber = breakpointIt->first;
- if (firstLine > lineNumber)
- continue;
- unsigned actualLineNumber = 0;
- bool success = ScriptDebugServer::shared().setBreakpoint(sourceID, breakpointIt->second, lineNumber, &actualLineNumber);
- if (!success)
- continue;
- m_frontend->restoredBreakpoint(sourceID, url, actualLineNumber, breakpointIt->second.enabled, breakpointIt->second.condition);
- String breakpointId = formatBreakpointId(sourceID, actualLineNumber);
- m_breakpointsMapping.set(breakpointId, lineNumber);
- }
- }
- m_sourceIDToURL.set(sourceID, url);
-}
-
-void InspectorController::failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage)
-{
- m_frontend->failedToParseScriptSource(url, data, firstLine, errorLine, errorMessage);
-}
-
-void InspectorController::didPause(ScriptState* scriptState)
-{
- ASSERT(scriptState && !m_pausedScriptState);
- m_pausedScriptState = scriptState;
- RefPtr<SerializedScriptValue> callFrames = currentCallFrames();
- m_frontend->pausedScript(callFrames.get());
-}
-
-void InspectorController::didContinue()
-{
- m_pausedScriptState = 0;
- m_frontend->resumedScript();
-}
-
#endif
void InspectorController::evaluateForTestInFrontend(long callId, const String& script)
{
- if (m_frontend)
- m_frontend->evaluateForTestInFrontend(callId, script);
+ if (m_remoteFrontend)
+ m_remoteFrontend->evaluateForTestInFrontend(callId, script);
else
m_pendingEvaluateTestCommands.append(pair<long, String>(callId, script));
}
@@ -1916,39 +1704,16 @@ void InspectorController::didEvaluateForTestInFrontend(long callId, const String
String InspectorController::breakpointsSettingKey()
{
DEFINE_STATIC_LOCAL(String, keyPrefix, ("breakpoints:"));
- return keyPrefix + md5Base16(m_mainResource->requestURL());
+ return keyPrefix + InspectorDebuggerAgent::md5Base16(m_mainResource->requestURL());
}
-void InspectorController::loadBreakpoints()
+PassRefPtr<InspectorValue> InspectorController::loadBreakpoints()
{
- if (m_breakpointsLoaded)
- return;
- m_breakpointsLoaded = true;
-
- RefPtr<InspectorValue> parsedSetting = InspectorValue::parseJSON(setting(breakpointsSettingKey()));
- if (!parsedSetting)
- return;
- RefPtr<InspectorObject> breakpoints = parsedSetting->asObject();
- if (!breakpoints)
- return;
- for (InspectorObject::iterator it = breakpoints->begin(); it != breakpoints->end(); ++it) {
- RefPtr<InspectorObject> breakpointsForURL = it->second->asObject();
- if (!breakpointsForURL)
- continue;
- HashMap<String, SourceBreakpoints>::iterator sourceBreakpointsIt = m_stickyBreakpoints.set(it->first, SourceBreakpoints()).first;
- ScriptBreakpoint::sourceBreakpointsFromInspectorObject(breakpointsForURL, &sourceBreakpointsIt->second);
- }
+ return InspectorValue::parseJSON(setting(breakpointsSettingKey()));
}
-void InspectorController::saveBreakpoints()
+void InspectorController::saveBreakpoints(PassRefPtr<InspectorObject> breakpoints)
{
- RefPtr<InspectorObject> breakpoints = InspectorObject::create();
- for (HashMap<String, SourceBreakpoints>::iterator it(m_stickyBreakpoints.begin()); it != m_stickyBreakpoints.end(); ++it) {
- if (it->second.isEmpty())
- continue;
- RefPtr<InspectorObject> breakpointsForURL = ScriptBreakpoint::inspectorObjectFromSourceBreakpoints(it->second);
- breakpoints->set(it->first, breakpointsForURL);
- }
setSetting(breakpointsSettingKey(), breakpoints->toJSONString());
}
#endif
@@ -2136,27 +1901,6 @@ bool InspectorController::stopTiming(const String& title, double& elapsed)
return true;
}
-InspectorController::SpecialPanels InspectorController::specialPanelForJSName(const String& panelName)
-{
- if (panelName == "elements")
- return ElementsPanel;
- if (panelName == "resources")
- return ResourcesPanel;
- if (panelName == "scripts")
- return ScriptsPanel;
- if (panelName == "timeline")
- return TimelinePanel;
- if (panelName == "profiles")
- return ProfilesPanel;
- if (panelName == "storage" || panelName == "databases")
- return StoragePanel;
- if (panelName == "audits")
- return AuditsPanel;
- if (panelName == "console")
- return ConsolePanel;
- return ElementsPanel;
-}
-
InjectedScript InspectorController::injectedScriptForNodeId(long id)
{
@@ -2188,16 +1932,15 @@ void InspectorController::removeAllScriptsToEvaluateOnLoad()
m_scriptsToEvaluateOnLoad.clear();
}
-void InspectorController::getResourceContent(long callId, unsigned long identifier)
+void InspectorController::setInspectorExtensionAPI(const String& source)
{
- if (!m_frontend)
- return;
+ m_inspectorExtensionAPI = source;
+}
+void InspectorController::getResourceContent(unsigned long identifier, String* content)
+{
RefPtr<InspectorResource> resource = m_resources.get(identifier);
- if (resource)
- m_frontend->didGetResourceContent(callId, resource->sourceString());
- else
- m_frontend->didGetResourceContent(callId, "");
+ *content = resource ? resource->sourceString() : String();
}
void InspectorController::reloadPage()
diff --git a/WebCore/inspector/InspectorController.h b/WebCore/inspector/InspectorController.h
index 176dd11..2125003 100644
--- a/WebCore/inspector/InspectorController.h
+++ b/WebCore/inspector/InspectorController.h
@@ -33,12 +33,8 @@
#include "Cookie.h"
#include "InspectorDOMAgent.h"
#include "PlatformString.h"
-#include "ScriptArray.h"
-#include "ScriptBreakpoint.h"
-#include "ScriptObject.h"
#include "ScriptProfile.h"
#include "ScriptState.h"
-#include "ScriptValue.h"
#include "StringHash.h"
#include "Timer.h"
#include <wtf/HashMap.h>
@@ -47,10 +43,6 @@
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "ScriptDebugListener.h"
-#endif
-
namespace WebCore {
class CachedResource;
@@ -63,15 +55,17 @@ class GraphicsContext;
class HitTestResult;
class InjectedScript;
class InjectedScriptHost;
+class InspectorArray;
class InspectorBackend;
class InspectorBackendDispatcher;
class InspectorClient;
class InspectorCSSStore;
class InspectorDOMStorageResource;
class InspectorDatabaseResource;
-class InspectorFrontend;
+class InspectorDebuggerAgent;
class InspectorFrontendClient;
class InspectorResource;
+class InspectorStorageAgent;
class InspectorTimelineAgent;
class InspectorValue;
class InspectorWorkerResource;
@@ -92,36 +86,24 @@ class StorageArea;
class InspectorApplicationCacheAgent;
#endif
-class InspectorController
-#if ENABLE(JAVASCRIPT_DEBUGGER)
- : ScriptDebugListener, public Noncopyable
-#else
- : public Noncopyable
-#endif
- {
+class InspectorController : public Noncopyable {
public:
typedef HashMap<unsigned long, RefPtr<InspectorResource> > ResourcesMap;
typedef HashMap<RefPtr<Frame>, ResourcesMap*> FrameResourcesMap;
typedef HashMap<int, RefPtr<InspectorDatabaseResource> > DatabaseResourcesMap;
typedef HashMap<int, RefPtr<InspectorDOMStorageResource> > DOMStorageResourcesMap;
- typedef enum {
- AuditsPanel,
- CurrentPanel,
- ConsolePanel,
- ElementsPanel,
- ResourcesPanel,
- ScriptsPanel,
- TimelinePanel,
- ProfilesPanel,
- StoragePanel
- } SpecialPanels;
+ static const char* const ConsolePanel;
+ static const char* const ElementsPanel;
+ static const char* const ProfilesPanel;
+ static const char* const ScriptsPanel;
InspectorController(Page*, InspectorClient*);
~InspectorController();
InspectorBackend* inspectorBackend() { return m_inspectorBackend.get(); }
InspectorBackendDispatcher* inspectorBackendDispatcher() { return m_inspectorBackendDispatcher.get(); }
+ InspectorClient* inspectorClient() { return m_client; }
InjectedScriptHost* injectedScriptHost() { return m_injectedScriptHost.get(); }
void inspectedPageDestroyed();
@@ -144,13 +126,13 @@ public:
void hideDOMNodeHighlight() { hideHighlight(); }
void show();
- void showPanel(SpecialPanels);
+ void showPanel(const String&);
void close();
// We are in transition from JS transport via webInspector to native
// transport via InspectorClient. After migration, webInspector parameter should
// be removed.
- void connectFrontend(const ScriptObject& webInspector);
+ void connectFrontend();
void disconnectFrontend();
void addMessageToConsole(MessageSource, MessageType, MessageLevel, ScriptCallStack*, const String& message = String());
@@ -192,7 +174,7 @@ public:
void stopTimelineProfiler();
InspectorTimelineAgent* timelineAgent() { return m_timelineAgent.get(); }
- void getCookies(long callId);
+ void getCookies(RefPtr<InspectorArray>* cookies, WTF::String* cookiesString);
void deleteCookie(const String& cookieName, const String& domain);
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
@@ -214,20 +196,19 @@ public:
#endif
#if ENABLE(DATABASE)
- void didOpenDatabase(Database*, const String& domain, const String& name, const String& version);
+ void didOpenDatabase(PassRefPtr<Database>, const String& domain, const String& name, const String& version);
#endif
#if ENABLE(DOM_STORAGE)
void didUseDOMStorage(StorageArea* storageArea, bool isLocalStorage, Frame* frame);
void selectDOMStorage(Storage* storage);
- void getDOMStorageEntries(long callId, long storageId);
- void setDOMStorageItem(long callId, long storageId, const String& key, const String& value);
- void removeDOMStorageItem(long callId, long storageId, const String& key);
+ void getDOMStorageEntries(long storageId, RefPtr<InspectorArray>* entries);
+ void setDOMStorageItem(long storageId, const String& key, const String& value, bool* success);
+ void removeDOMStorageItem(long storageId, const String& key, bool* success);
#endif
const ResourcesMap& resources() const { return m_resources; }
InspectorResource* resourceForURL(const String& url);
- InspectorFrontend* inspectorFrontend() { return m_frontend.get(); }
- RemoteInspectorFrontend* remoteInspectorFrontend() { return m_remoteFrontend.get(); }
+ bool hasFrontend() const { return m_remoteFrontend; }
void drawNodeHighlight(GraphicsContext&) const;
@@ -260,30 +241,19 @@ public:
void disableProfiler(bool always = false);
bool profilerEnabled() const { return enabled() && m_profilerEnabled; }
- void takeHeapSnapshot();
-
void enableDebugger();
void disableDebugger(bool always = false);
- bool debuggerEnabled() const { return m_debuggerEnabled; }
-
- void editScriptSource(long callId, const String& sourceID, const String& newContent);
- void getScriptSource(long callId, const String& sourceID);
-
+ bool debuggerEnabled() const { return m_debuggerAgent; }
+ InspectorDebuggerAgent* debuggerAgent() const { return m_debuggerAgent.get(); }
void resume();
- void setPauseOnExceptionsState(long pauseState);
- PassRefPtr<SerializedScriptValue> currentCallFrames();
-
- virtual void didParseSource(const String& sourceID, const String& url, const String& data, int firstLine, ScriptWorldType);
- virtual void failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage);
- virtual void didPause(ScriptState*);
- virtual void didContinue();
#endif
- void evaluateForTestInFrontend(long callId, const String& script);
+ void evaluateForTestInFrontend(long testCallId, const String& script);
InjectedScript injectedScriptForNodeId(long id);
void addScriptToEvaluateOnLoad(const String& source);
void removeAllScriptsToEvaluateOnLoad();
+ void setInspectorExtensionAPI(const String& source);
static const String& inspectorStartsAttachedSettingName();
@@ -291,6 +261,7 @@ private:
static const String& frontendSettingsSettingName();
friend class InspectorBackend;
+ friend class InspectorBackendDispatcher;
friend class InjectedScriptHost;
void populateScriptObjects();
@@ -309,17 +280,14 @@ private:
void releaseFrontendLifetimeAgents();
#if ENABLE(JAVASCRIPT_DEBUGGER)
- void setBreakpoint(long callId, const String& sourceID, unsigned lineNumber, bool enabled, const String& condition);
- void removeBreakpoint(const String& sourceID, unsigned lineNumber);
-
typedef HashMap<unsigned int, RefPtr<ScriptProfile> > ProfilesMap;
void startUserInitiatedProfilingSoon();
void toggleRecordButton(bool);
void enableDebuggerFromFrontend(bool always);
- void getProfileHeaders(long callId);
- void getProfile(long callId, unsigned uid);
- ScriptObject createProfileHeader(const ScriptProfile& profile);
+ void getProfileHeaders(RefPtr<InspectorArray>* headers);
+ void getProfile(unsigned uid, RefPtr<InspectorObject>* profileObject);
+ PassRefPtr<InspectorObject> createProfileHeader(const ScriptProfile& profile);
#endif
#if ENABLE(DATABASE)
void selectDatabase(Database* database);
@@ -329,8 +297,8 @@ private:
InspectorDOMStorageResource* getDOMStorageResourceForId(long storageId);
#endif
- ScriptObject buildObjectForCookie(const Cookie&);
- ScriptArray buildArrayForCookies(ListHashSet<Cookie>&);
+ PassRefPtr<InspectorObject> buildObjectForCookie(const Cookie&);
+ PassRefPtr<InspectorArray> buildArrayForCookies(ListHashSet<Cookie>&);
void focusNode();
@@ -339,30 +307,29 @@ private:
void addResource(InspectorResource*);
void removeResource(InspectorResource*);
InspectorResource* getTrackedResource(unsigned long identifier);
- void getResourceContent(long callId, unsigned long identifier);
+ void getResourceContent(unsigned long identifier, String* content);
void pruneResources(ResourcesMap*, DocumentLoader* loaderToKeep = 0);
void removeAllResources(ResourcesMap* map) { pruneResources(map); }
bool isMainResourceLoader(DocumentLoader* loader, const KURL& requestUrl);
- SpecialPanels specialPanelForJSName(const String& panelName);
-
void didEvaluateForTestInFrontend(long callId, const String& jsonResult);
#if ENABLE(JAVASCRIPT_DEBUGGER)
+ friend class InspectorDebuggerAgent;
String breakpointsSettingKey();
- void loadBreakpoints();
- void saveBreakpoints();
+ PassRefPtr<InspectorValue> loadBreakpoints();
+ void saveBreakpoints(PassRefPtr<InspectorObject> breakpoints);
#endif
Page* m_inspectedPage;
InspectorClient* m_client;
OwnPtr<InspectorFrontendClient> m_inspectorFrontendClient;
bool m_openingFrontend;
- OwnPtr<InspectorFrontend> m_frontend;
OwnPtr<RemoteInspectorFrontend> m_remoteFrontend;
RefPtr<InspectorDOMAgent> m_domAgent;
+ RefPtr<InspectorStorageAgent> m_storageAgent;
OwnPtr<InspectorCSSStore> m_cssStore;
OwnPtr<InspectorTimelineAgent> m_timelineAgent;
@@ -385,7 +352,7 @@ private:
#if ENABLE(DOM_STORAGE)
DOMStorageResourcesMap m_domStorageResources;
#endif
- SpecialPanels m_showAfterVisible;
+ String m_showAfterVisible;
RefPtr<Node> m_highlightedNode;
#if ENABLE(INSPECTOR)
RefPtr<InspectorValue> m_sessionSettings;
@@ -405,15 +372,10 @@ private:
Vector<pair<long, String> > m_pendingEvaluateTestCommands;
Vector<String> m_scriptsToEvaluateOnLoad;
+ String m_inspectorExtensionAPI;
#if ENABLE(JAVASCRIPT_DEBUGGER)
- bool m_debuggerEnabled;
bool m_attachDebuggerWhenShown;
- ScriptState* m_pausedScriptState;
- HashMap<String, String> m_sourceIDToURL;
- HashMap<String, String> m_scriptIDToContent;
- HashMap<String, SourceBreakpoints> m_stickyBreakpoints;
- HashMap<String, unsigned> m_breakpointsMapping;
- bool m_breakpointsLoaded;
+ OwnPtr<InspectorDebuggerAgent> m_debuggerAgent;
bool m_profilerEnabled;
bool m_recordingUserInitiatedProfile;
diff --git a/WebCore/inspector/InspectorDOMAgent.cpp b/WebCore/inspector/InspectorDOMAgent.cpp
index 075944a..7cf0a82 100644
--- a/WebCore/inspector/InspectorDOMAgent.cpp
+++ b/WebCore/inspector/InspectorDOMAgent.cpp
@@ -384,10 +384,9 @@ Node* InspectorDOMAgent::nodeForId(long id)
return 0;
}
-void InspectorDOMAgent::getChildNodes(long callId, long nodeId)
+void InspectorDOMAgent::getChildNodes(long nodeId)
{
pushChildNodesToFrontend(nodeId);
- m_frontend->didGetChildNodes(callId);
}
long InspectorDOMAgent::pushNodePathToFrontend(Node* nodeToPush)
@@ -432,72 +431,56 @@ long InspectorDOMAgent::pushNodePathToFrontend(Node* nodeToPush)
return map->get(nodeToPush);
}
-void InspectorDOMAgent::setAttribute(long callId, long elementId, const String& name, const String& value)
+void InspectorDOMAgent::setAttribute(long elementId, const String& name, const String& value, bool* success)
{
Node* node = nodeForId(elementId);
if (node && (node->nodeType() == Node::ELEMENT_NODE)) {
Element* element = static_cast<Element*>(node);
ExceptionCode ec = 0;
element->setAttribute(name, value, ec);
- m_frontend->didApplyDomChange(callId, ec == 0);
- } else {
- m_frontend->didApplyDomChange(callId, false);
+ *success = !ec;
}
}
-void InspectorDOMAgent::removeAttribute(long callId, long elementId, const String& name)
+void InspectorDOMAgent::removeAttribute(long elementId, const String& name, bool* success)
{
Node* node = nodeForId(elementId);
if (node && (node->nodeType() == Node::ELEMENT_NODE)) {
Element* element = static_cast<Element*>(node);
ExceptionCode ec = 0;
element->removeAttribute(name, ec);
- m_frontend->didApplyDomChange(callId, ec == 0);
- } else {
- m_frontend->didApplyDomChange(callId, false);
+ *success = !ec;
}
}
-void InspectorDOMAgent::removeNode(long callId, long nodeId)
+void InspectorDOMAgent::removeNode(long nodeId, long* outNodeId)
{
Node* node = nodeForId(nodeId);
- if (!node) {
- m_frontend->didRemoveNode(callId, 0);
+ if (!node)
return;
- }
Node* parentNode = node->parentNode();
- if (!parentNode) {
- m_frontend->didRemoveNode(callId, 0);
+ if (!parentNode)
return;
- }
ExceptionCode ec = 0;
parentNode->removeChild(node, ec);
- if (ec) {
- m_frontend->didRemoveNode(callId, 0);
+ if (ec)
return;
- }
- m_frontend->didRemoveNode(callId, nodeId);
+ *outNodeId = nodeId;
}
-void InspectorDOMAgent::changeTagName(long callId, long nodeId, const String& tagName)
+void InspectorDOMAgent::changeTagName(long nodeId, const String& tagName, long* newId)
{
Node* oldNode = nodeForId(nodeId);
- if (!oldNode || !oldNode->isElementNode()) {
- m_frontend->didChangeTagName(callId, 0);
+ if (!oldNode || !oldNode->isElementNode())
return;
- }
-
- bool childrenRequested = m_childrenRequested.contains(nodeId);
ExceptionCode ec = 0;
RefPtr<Element> newElem = oldNode->document()->createElement(tagName, ec);
- if (ec) {
- m_frontend->didChangeTagName(callId, 0);
+ if (ec)
return;
- }
// Copy over the original node's attributes.
Element* oldElem = static_cast<Element*>(oldNode);
@@ -515,36 +498,28 @@ void InspectorDOMAgent::changeTagName(long callId, long nodeId, const String& ta
parent->insertBefore(newElem, oldNode->nextSibling(), ec);
parent->removeChild(oldNode, ec);
- if (ec) {
- m_frontend->didChangeTagName(callId, 0);
+ if (ec)
return;
- }
- long newId = pushNodePathToFrontend(newElem.get());
- if (childrenRequested)
- pushChildNodesToFrontend(newId);
- m_frontend->didChangeTagName(callId, newId);
+ *newId = pushNodePathToFrontend(newElem.get());
+ if (m_childrenRequested.contains(nodeId))
+ pushChildNodesToFrontend(*newId);
}
-void InspectorDOMAgent::getOuterHTML(long callId, long nodeId)
+void InspectorDOMAgent::getOuterHTML(long nodeId, WTF::String* outerHTML)
{
Node* node = nodeForId(nodeId);
- if (!node || !node->isHTMLElement()) {
- m_frontend->didGetOuterHTML(callId, "");
+ if (!node || !node->isHTMLElement())
return;
- }
- HTMLElement* htmlElement = static_cast<HTMLElement*>(node);
- m_frontend->didGetOuterHTML(callId, htmlElement->outerHTML());
+ *outerHTML = static_cast<HTMLElement*>(node)->outerHTML();
}
-void InspectorDOMAgent::setOuterHTML(long callId, long nodeId, const String& outerHTML)
+void InspectorDOMAgent::setOuterHTML(long nodeId, const String& outerHTML, long* newId)
{
Node* node = nodeForId(nodeId);
- if (!node || !node->isHTMLElement()) {
- m_frontend->didSetOuterHTML(callId, 0);
+ if (!node || !node->isHTMLElement())
return;
- }
bool childrenRequested = m_childrenRequested.contains(nodeId);
Node* previousSibling = node->previousSibling();
@@ -554,41 +529,35 @@ void InspectorDOMAgent::setOuterHTML(long callId, long nodeId, const String& out
ExceptionCode ec = 0;
htmlElement->setOuterHTML(outerHTML, ec);
if (ec)
- m_frontend->didSetOuterHTML(callId, 0);
+ return;
Node* newNode = previousSibling ? previousSibling->nextSibling() : parentNode->firstChild();
- long newId = pushNodePathToFrontend(newNode);
+ *newId = pushNodePathToFrontend(newNode);
if (childrenRequested)
- pushChildNodesToFrontend(newId);
-
- m_frontend->didSetOuterHTML(callId, newId);
+ pushChildNodesToFrontend(*newId);
}
-void InspectorDOMAgent::setTextNodeValue(long callId, long nodeId, const String& value)
+void InspectorDOMAgent::setTextNodeValue(long nodeId, const String& value, bool* success)
{
Node* node = nodeForId(nodeId);
if (node && (node->nodeType() == Node::TEXT_NODE)) {
Text* text_node = static_cast<Text*>(node);
ExceptionCode ec = 0;
text_node->replaceWholeText(value, ec);
- m_frontend->didApplyDomChange(callId, ec == 0);
- } else {
- m_frontend->didApplyDomChange(callId, false);
+ *success = !ec;
}
}
-void InspectorDOMAgent::getEventListenersForNode(long callId, long nodeId)
+void InspectorDOMAgent::getEventListenersForNode(long nodeId, long* outNodeId, RefPtr<InspectorArray>* listenersArray)
{
Node* node = nodeForId(nodeId);
- RefPtr<InspectorArray> listenersArray = InspectorArray::create();
+ *outNodeId = nodeId;
EventTargetData* d;
// Quick break if a null node or no listeners at all
- if (!node || !(d = node->eventTargetData())) {
- m_frontend->didGetEventListenersForNode(callId, nodeId, listenersArray.release());
+ if (!node || !(d = node->eventTargetData()))
return;
- }
// Get the list of event types this Node is concerned with
Vector<AtomicString> eventTypes;
@@ -599,10 +568,8 @@ void InspectorDOMAgent::getEventListenersForNode(long callId, long nodeId)
// Quick break if no useful listeners
size_t eventTypesLength = eventTypes.size();
- if (eventTypesLength == 0) {
- m_frontend->didGetEventListenersForNode(callId, nodeId, listenersArray.release());
+ if (!eventTypesLength)
return;
- }
// The Node's Event Ancestors (not including self)
Vector<RefPtr<ContainerNode> > ancestors;
@@ -633,7 +600,7 @@ void InspectorDOMAgent::getEventListenersForNode(long callId, long nodeId)
for (size_t j = 0; j < vector.size(); ++j) {
const RegisteredEventListener& listener = vector[j];
if (listener.useCapture)
- listenersArray->push(buildObjectForEventListener(listener, info.eventType, info.node));
+ (*listenersArray)->push(buildObjectForEventListener(listener, info.eventType, info.node));
}
}
@@ -644,11 +611,9 @@ void InspectorDOMAgent::getEventListenersForNode(long callId, long nodeId)
for (size_t j = 0; j < vector.size(); ++j) {
const RegisteredEventListener& listener = vector[j];
if (!listener.useCapture)
- listenersArray->push(buildObjectForEventListener(listener, info.eventType, info.node));
+ (*listenersArray)->push(buildObjectForEventListener(listener, info.eventType, info.node));
}
}
-
- m_frontend->didGetEventListenersForNode(callId, nodeId, listenersArray.release());
}
void InspectorDOMAgent::addInspectedNode(long nodeId)
@@ -1006,19 +971,15 @@ void InspectorDOMAgent::didModifyDOMAttr(Element* element)
m_frontend->attributesUpdated(id, buildArrayForElementAttributes(element));
}
-void InspectorDOMAgent::getStyles(long callId, long nodeId, bool authorOnly)
+void InspectorDOMAgent::getStyles(long nodeId, bool authorOnly, RefPtr<InspectorValue>* styles)
{
Node* node = nodeForId(nodeId);
- if (!node || node->nodeType() != Node::ELEMENT_NODE) {
- m_frontend->didGetStyles(callId, InspectorValue::null());
+ if (!node || node->nodeType() != Node::ELEMENT_NODE)
return;
- }
DOMWindow* defaultView = node->ownerDocument()->defaultView();
- if (!defaultView) {
- m_frontend->didGetStyles(callId, InspectorValue::null());
+ if (!defaultView)
return;
- }
Element* element = static_cast<Element*>(node);
RefPtr<CSSComputedStyleDeclaration> computedStyleInfo = computedStyle(node, true); // Support the viewing of :visited information in computed style.
@@ -1050,41 +1011,35 @@ void InspectorDOMAgent::getStyles(long callId, long nodeId, bool authorOnly)
parentElement = parentElement->parentElement();
currentStyle = parentStyle;
}
- m_frontend->didGetStyles(callId, result.release());
+ *styles = result.release();
}
-void InspectorDOMAgent::getAllStyles(long callId)
+void InspectorDOMAgent::getAllStyles(RefPtr<InspectorArray>* styles)
{
- RefPtr<InspectorArray> result = InspectorArray::create();
for (ListHashSet<RefPtr<Document> >::iterator it = m_documents.begin(); it != m_documents.end(); ++it) {
StyleSheetList* list = (*it)->styleSheets();
for (unsigned i = 0; i < list->length(); ++i) {
StyleSheet* styleSheet = list->item(i);
if (styleSheet->isCSSStyleSheet())
- result->push(buildObjectForStyleSheet((*it).get(), static_cast<CSSStyleSheet*>(styleSheet)));
+ (*styles)->push(buildObjectForStyleSheet((*it).get(), static_cast<CSSStyleSheet*>(styleSheet)));
}
}
- m_frontend->didGetAllStyles(callId, result.release());
}
-void InspectorDOMAgent::getStyleSheet(long callId, long styleSheetId)
+void InspectorDOMAgent::getStyleSheet(long styleSheetId, RefPtr<InspectorObject>* styleSheetObject)
{
CSSStyleSheet* styleSheet = cssStore()->styleSheetForId(styleSheetId);
if (styleSheet && styleSheet->doc())
- m_frontend->didGetStyleSheet(callId, buildObjectForStyleSheet(styleSheet->doc(), styleSheet));
- else
- m_frontend->didGetStyleSheet(callId, InspectorObject::create());
+ *styleSheetObject = buildObjectForStyleSheet(styleSheet->doc(), styleSheet);
}
-void InspectorDOMAgent::getRuleRanges(long callId, long styleSheetId)
+void InspectorDOMAgent::getRuleRanges(long styleSheetId, RefPtr<InspectorValue>* ruleRange)
{
CSSStyleSheet* styleSheet = cssStore()->styleSheetForId(styleSheetId);
if (styleSheet && styleSheet->doc()) {
HashMap<long, SourceRange> ruleRanges = cssStore()->getRuleRanges(styleSheet);
- if (!ruleRanges.size()) {
- m_frontend->didGetStyleSheet(callId, InspectorObject::create());
+ if (!ruleRanges.size())
return;
- }
RefPtr<InspectorObject> result = InspectorObject::create();
for (HashMap<long, SourceRange>::iterator it = ruleRanges.begin(); it != ruleRanges.end(); ++it) {
if (it->second.second) {
@@ -1096,39 +1051,30 @@ void InspectorDOMAgent::getRuleRanges(long callId, long styleSheetId)
bodyRange->setNumber("end", it->second.second);
}
}
- m_frontend->didGetRuleRanges(callId, result);
- } else
- m_frontend->didGetRuleRanges(callId, InspectorValue::null());
+ *ruleRange = result.release();
+ }
}
-void InspectorDOMAgent::getInlineStyle(long callId, long nodeId)
+void InspectorDOMAgent::getInlineStyle(long nodeId, RefPtr<InspectorValue>* style)
{
Node* node = nodeForId(nodeId);
- if (!node || node->nodeType() != Node::ELEMENT_NODE) {
- m_frontend->didGetInlineStyle(callId, InspectorValue::null());
+ if (!node || node->nodeType() != Node::ELEMENT_NODE)
return;
- }
- Element* element = static_cast<Element*>(node);
- m_frontend->didGetInlineStyle(callId, buildObjectForStyle(element->style(), true));
+ *style = buildObjectForStyle(static_cast<Element*>(node)->style(), true);
}
-void InspectorDOMAgent::getComputedStyle(long callId, long nodeId)
+void InspectorDOMAgent::getComputedStyle(long nodeId, RefPtr<InspectorValue>* style)
{
Node* node = nodeForId(nodeId);
- if (!node || node->nodeType() != Node::ELEMENT_NODE) {
- m_frontend->didGetComputedStyle(callId, InspectorValue::null());
+ if (!node || node->nodeType() != Node::ELEMENT_NODE)
return;
- }
DOMWindow* defaultView = node->ownerDocument()->defaultView();
- if (!defaultView) {
- m_frontend->didGetComputedStyle(callId, InspectorValue::null());
+ if (!defaultView)
return;
- }
Element* element = static_cast<Element*>(node);
- RefPtr<CSSStyleDeclaration> computedStyle = defaultView->getComputedStyle(element, "");
- m_frontend->didGetComputedStyle(callId, buildObjectForStyle(computedStyle.get(), false));
+ *style = buildObjectForStyle(defaultView->getComputedStyle(element, "").get(), false);
}
PassRefPtr<InspectorObject> InspectorDOMAgent::buildObjectForAttributeStyles(Element* element)
@@ -1174,13 +1120,11 @@ PassRefPtr<InspectorArray> InspectorDOMAgent::buildArrayForPseudoElements(Elemen
return result.release();
}
-void InspectorDOMAgent::applyStyleText(long callId, long styleId, const String& styleText, const String& propertyName)
+void InspectorDOMAgent::applyStyleText(long styleId, const String& styleText, const String& propertyName, bool* success, RefPtr<InspectorValue>* styleObject, RefPtr<InspectorArray>* changedPropertiesArray)
{
CSSStyleDeclaration* style = cssStore()->styleForId(styleId);
- if (!style) {
- m_frontend->didApplyStyleText(callId, false, InspectorValue::null(), InspectorArray::create());
+ if (!style)
return;
- }
// Remove disabled property entry for property with given name.
DisabledStyleDeclaration* disabledStyle = cssStore()->disabledStyleForId(styleId, false);
@@ -1207,24 +1151,19 @@ void InspectorDOMAgent::applyStyleText(long callId, long styleId, const String&
if (!ec)
style->removeProperty(propertyName, ec);
- if (ec) {
- m_frontend->didApplyStyleText(callId, false, InspectorValue::null(), InspectorArray::create());
+ if (ec)
return;
- }
}
// Notify caller that the property was successfully deleted.
if (!styleTextLength) {
- RefPtr<InspectorArray> changedProperties = InspectorArray::create();
- changedProperties->pushString(propertyName);
- m_frontend->didApplyStyleText(callId, true, InspectorValue::null(), changedProperties.release());
+ (*changedPropertiesArray)->pushString(propertyName);
+ *success = true;
return;
}
- if (!tempStyle->length()) {
- m_frontend->didApplyStyleText(callId, false, InspectorValue::null(), InspectorArray::create());
+ if (!tempStyle->length())
return;
- }
// Iterate of the properties on the test element's style declaration and
// add them to the real style declaration. We take care to move shorthands.
@@ -1258,41 +1197,37 @@ void InspectorDOMAgent::applyStyleText(long callId, long styleId, const String&
disabledStyle->remove(name);
changedProperties.append(name);
}
- m_frontend->didApplyStyleText(callId, true, buildObjectForStyle(style, true), toArray(changedProperties));
+ *success = true;
+ *styleObject = buildObjectForStyle(style, true);
+ *changedPropertiesArray = toArray(changedProperties);
}
-void InspectorDOMAgent::setStyleText(long callId, long styleId, const String& cssText)
+void InspectorDOMAgent::setStyleText(long styleId, const String& cssText, bool* success)
{
CSSStyleDeclaration* style = cssStore()->styleForId(styleId);
- if (!style) {
- m_frontend->didSetStyleText(callId, false);
+ if (!style)
return;
- }
ExceptionCode ec = 0;
style->setCssText(cssText, ec);
- m_frontend->didSetStyleText(callId, !ec);
+ *success = !ec;
}
-void InspectorDOMAgent::setStyleProperty(long callId, long styleId, const String& name, const String& value)
+void InspectorDOMAgent::setStyleProperty(long styleId, const String& name, const String& value, bool* success)
{
CSSStyleDeclaration* style = cssStore()->styleForId(styleId);
- if (!style) {
- m_frontend->didSetStyleProperty(callId, false);
+ if (!style)
return;
- }
ExceptionCode ec = 0;
style->setProperty(name, value, ec);
- m_frontend->didSetStyleProperty(callId, !ec);
+ *success = !ec;
}
-void InspectorDOMAgent::toggleStyleEnabled(long callId, long styleId, const String& propertyName, bool disabled)
+void InspectorDOMAgent::toggleStyleEnabled(long styleId, const String& propertyName, bool disabled, RefPtr<InspectorValue>* styleObject)
{
CSSStyleDeclaration* style = cssStore()->styleForId(styleId);
- if (!style) {
- m_frontend->didToggleStyleEnabled(callId, InspectorValue::null());
+ if (!style)
return;
- }
DisabledStyleDeclaration* disabledStyle = cssStore()->disabledStyleForId(styleId, true);
@@ -1308,30 +1243,24 @@ void InspectorDOMAgent::toggleStyleEnabled(long callId, long styleId, const Stri
if (!ec)
disabledStyle->remove(propertyName);
}
- if (ec) {
- m_frontend->didToggleStyleEnabled(callId, InspectorValue::null());
+ if (ec)
return;
- }
- m_frontend->didToggleStyleEnabled(callId, buildObjectForStyle(style, true));
+ *styleObject = buildObjectForStyle(style, true);
}
-void InspectorDOMAgent::setRuleSelector(long callId, long ruleId, const String& selector, long selectedNodeId)
+void InspectorDOMAgent::setRuleSelector(long ruleId, const String& selector, long selectedNodeId, RefPtr<InspectorValue>* ruleObject, bool* selectorAffectsNode)
{
CSSStyleRule* rule = cssStore()->ruleForId(ruleId);
- if (!rule) {
- m_frontend->didSetRuleSelector(callId, InspectorValue::null(), false);
+ if (!rule)
return;
- }
Node* node = nodeForId(selectedNodeId);
CSSStyleSheet* styleSheet = rule->parentStyleSheet();
ExceptionCode ec = 0;
styleSheet->addRule(selector, rule->style()->cssText(), ec);
- if (ec) {
- m_frontend->didSetRuleSelector(callId, InspectorValue::null(), false);
+ if (ec)
return;
- }
CSSStyleRule* newRule = static_cast<CSSStyleRule*>(styleSheet->item(styleSheet->length() - 1));
for (unsigned i = 0; i < styleSheet->length(); ++i) {
@@ -1341,35 +1270,31 @@ void InspectorDOMAgent::setRuleSelector(long callId, long ruleId, const String&
}
}
- if (ec) {
- m_frontend->didSetRuleSelector(callId, InspectorValue::null(), false);
+ if (ec)
return;
- }
- m_frontend->didSetRuleSelector(callId, buildObjectForRule(node->ownerDocument(), newRule), ruleAffectsNode(newRule, node));
+ *selectorAffectsNode = ruleAffectsNode(newRule, node);
+ *ruleObject = buildObjectForRule(node->ownerDocument(), newRule);
}
-void InspectorDOMAgent::addRule(long callId, const String& selector, long selectedNodeId)
+void InspectorDOMAgent::addRule(const String& selector, long selectedNodeId, RefPtr<InspectorValue>* ruleObject, bool* selectorAffectsNode)
{
Node* node = nodeForId(selectedNodeId);
- if (!node) {
- m_frontend->didAddRule(callId, InspectorValue::null(), false);
+ if (!node)
return;
- }
- CSSStyleSheet* styleSheet = cssStore()->inspectorStyleSheet(node->ownerDocument(), true, callId);
+ CSSStyleSheet* styleSheet = cssStore()->inspectorStyleSheet(node->ownerDocument(), true);
if (!styleSheet)
return; // could not add a stylesheet to the ownerDocument
ExceptionCode ec = 0;
styleSheet->addRule(selector, "", ec);
- if (ec) {
- m_frontend->didAddRule(callId, InspectorValue::null(), false);
+ if (ec)
return;
- }
CSSStyleRule* newRule = static_cast<CSSStyleRule*>(styleSheet->item(styleSheet->length() - 1));
- m_frontend->didAddRule(callId, buildObjectForRule(node->ownerDocument(), newRule), ruleAffectsNode(newRule, node));
+ *selectorAffectsNode = ruleAffectsNode(newRule, node);
+ *ruleObject = buildObjectForRule(node->ownerDocument(), newRule);
}
PassRefPtr<InspectorObject> InspectorDOMAgent::buildObjectForStyle(CSSStyleDeclaration* style, bool bind)
@@ -1471,7 +1396,7 @@ PassRefPtr<InspectorObject> InspectorDOMAgent::buildObjectForRule(Document* owne
bool isUser = parentStyleSheet && parentStyleSheet->ownerNode() && parentStyleSheet->ownerNode()->nodeName() == "#document";
result->setBool("isUserAgent", isUserAgent);
result->setBool("isUser", isUser);
- result->setBool("isViaInspector", rule->parentStyleSheet() == cssStore()->inspectorStyleSheet(ownerDocument, false, -1));
+ result->setBool("isViaInspector", rule->parentStyleSheet() == cssStore()->inspectorStyleSheet(ownerDocument, false));
// Bind editable scripts only.
bool bind = !isUserAgent && !isUser;
@@ -1642,17 +1567,10 @@ void InspectorDOMAgent::copyNode(long nodeId)
Pasteboard::generalPasteboard()->writePlainText(markup);
}
-void InspectorDOMAgent::pushNodeByPathToFrontend(long callId, const String& path)
+void InspectorDOMAgent::pushNodeByPathToFrontend(const String& path, long* nodeId)
{
- if (!m_frontend)
- return;
-
- long id = 0;
- Node* node = nodeForPath(path);
- if (node)
- id = pushNodePathToFrontend(node);
-
- m_frontend->didPushNodeByPathToFrontend(callId, id);
+ if (Node* node = nodeForPath(path))
+ *nodeId = pushNodePathToFrontend(node);
}
} // namespace WebCore
diff --git a/WebCore/inspector/InspectorDOMAgent.h b/WebCore/inspector/InspectorDOMAgent.h
index 38b7034..bae65f5 100644
--- a/WebCore/inspector/InspectorDOMAgent.h
+++ b/WebCore/inspector/InspectorDOMAgent.h
@@ -100,32 +100,32 @@ namespace WebCore {
virtual bool operator==(const EventListener& other);
// Methods called from the frontend for DOM nodes inspection.
- void getChildNodes(long callId, long nodeId);
- void setAttribute(long callId, long elementId, const String& name, const String& value);
- void removeAttribute(long callId, long elementId, const String& name);
- void removeNode(long callId, long nodeId);
- void changeTagName(long callId, long nodeId, const String& tagName);
- void getOuterHTML(long callId, long nodeId);
- void setOuterHTML(long callId, long nodeId, const String& outerHTML);
- void setTextNodeValue(long callId, long nodeId, const String& value);
- void getEventListenersForNode(long callId, long nodeId);
+ void getChildNodes(long nodeId);
+ void setAttribute(long elementId, const String& name, const String& value, bool* success);
+ void removeAttribute(long elementId, const String& name, bool* success);
+ void removeNode(long nodeId, long* outNodeId);
+ void changeTagName(long nodeId, const String& tagName, long* newId);
+ void getOuterHTML(long nodeId, WTF::String* outerHTML);
+ void setOuterHTML(long nodeId, const String& outerHTML, long* newId);
+ void setTextNodeValue(long nodeId, const String& value, bool* success);
+ void getEventListenersForNode(long nodeId, long* outNodeId, RefPtr<InspectorArray>* listenersArray);
void addInspectedNode(long nodeId);
void performSearch(const String& whitespaceTrimmedQuery, bool runSynchronously);
void searchCanceled();
// Methods called from the frontend for CSS styles inspection.
- void getStyles(long callId, long nodeId, bool authorOnly);
- void getAllStyles(long callId);
- void getInlineStyle(long callId, long nodeId);
- void getComputedStyle(long callId, long nodeId);
- void getStyleSheet(long callId, long styleSheetId);
- void getRuleRanges(long callId, long styleSheetId);
- void applyStyleText(long callId, long styleId, const String& styleText, const String& propertyName);
- void setStyleText(long callId, long styleId, const String& cssText);
- void setStyleProperty(long callId, long styleId, const String& name, const String& value);
- void toggleStyleEnabled(long callId, long styleId, const String& propertyName, bool disabled);
- void setRuleSelector(long callId, long ruleId, const String& selector, long selectedNodeId);
- void addRule(long callId, const String& selector, long selectedNodeId);
+ void getStyles(long nodeId, bool authorOnly, RefPtr<InspectorValue>* styles);
+ void getAllStyles(RefPtr<InspectorArray>* styles);
+ void getInlineStyle(long nodeId, RefPtr<InspectorValue>* styles);
+ void getComputedStyle(long nodeId, RefPtr<InspectorValue>* styles);
+ void getStyleSheet(long styleSheetId, RefPtr<InspectorObject>* styleSheetObject);
+ void getRuleRanges(long styleSheetId, RefPtr<InspectorValue>* ruleRange);
+ void applyStyleText(long styleId, const String& styleText, const String& propertyName, bool* success, RefPtr<InspectorValue>* styleObject, RefPtr<InspectorArray>* changedProperties);
+ void setStyleText(long styleId, const String& cssText, bool* success);
+ void setStyleProperty(long styleId, const String& name, const String& value, bool* success);
+ void toggleStyleEnabled(long styleId, const String& propertyName, bool disabled, RefPtr<InspectorValue>* styleObject);
+ void setRuleSelector(long ruleId, const String& selector, long selectedNodeId, RefPtr<InspectorValue>* ruleObject, bool* selectorAffectsNode);
+ void addRule(const String& selector, long selectedNodeId, RefPtr<InspectorValue>* ruleObject, bool* selectorAffectsNode);
// Methods called from the InspectorController.
void setDocument(Document* document);
@@ -138,7 +138,7 @@ namespace WebCore {
Node* nodeForId(long nodeId);
long pushNodePathToFrontend(Node* node);
void pushChildNodesToFrontend(long nodeId);
- void pushNodeByPathToFrontend(long callId, const String& path);
+ void pushNodeByPathToFrontend(const String& path, long* nodeId);
long inspectedNode(unsigned long num);
void copyNode(long nodeId);
diff --git a/WebCore/inspector/InspectorDOMStorageResource.cpp b/WebCore/inspector/InspectorDOMStorageResource.cpp
index af0530a..61095a0 100644
--- a/WebCore/inspector/InspectorDOMStorageResource.cpp
+++ b/WebCore/inspector/InspectorDOMStorageResource.cpp
@@ -34,12 +34,11 @@
#include "InspectorDOMStorageResource.h"
-#include "Document.h"
#include "DOMWindow.h"
#include "EventNames.h"
#include "Frame.h"
-#include "InspectorFrontend.h"
-#include "ScriptObject.h"
+#include "InspectorValues.h"
+#include "RemoteInspectorFrontend.h"
#include "Storage.h"
#include "StorageEvent.h"
@@ -65,15 +64,15 @@ bool InspectorDOMStorageResource::isSameHostAndType(Frame* frame, bool isLocalSt
return equalIgnoringCase(m_frame->document()->securityOrigin()->host(), frame->document()->securityOrigin()->host()) && m_isLocalStorage == isLocalStorage;
}
-void InspectorDOMStorageResource::bind(InspectorFrontend* frontend)
+void InspectorDOMStorageResource::bind(RemoteInspectorFrontend* frontend)
{
ASSERT(!m_frontend);
m_frontend = frontend;
- ScriptObject jsonObject = frontend->newScriptObject();
- jsonObject.set("host", m_frame->document()->securityOrigin()->host());
- jsonObject.set("isLocalStorage", m_isLocalStorage);
- jsonObject.set("id", m_id);
+ RefPtr<InspectorObject> jsonObject = InspectorObject::create();
+ jsonObject->setString("host", m_frame->document()->securityOrigin()->host());
+ jsonObject->setBool("isLocalStorage", m_isLocalStorage);
+ jsonObject->setNumber("id", m_id);
frontend->addDOMStorage(jsonObject);
}
diff --git a/WebCore/inspector/InspectorDOMStorageResource.h b/WebCore/inspector/InspectorDOMStorageResource.h
index 2b18b24..a47e74c 100644
--- a/WebCore/inspector/InspectorDOMStorageResource.h
+++ b/WebCore/inspector/InspectorDOMStorageResource.h
@@ -34,8 +34,6 @@
#if ENABLE(DOM_STORAGE)
#include "EventListener.h"
-#include "ScriptObject.h"
-#include "ScriptState.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -45,7 +43,7 @@ namespace WebCore {
class Storage;
class Frame;
- class InspectorFrontend;
+ class RemoteInspectorFrontend;
class InspectorDOMStorageResource : public EventListener {
public:
@@ -58,7 +56,7 @@ namespace WebCore {
return listener->type() == InspectorDOMStorageResourceType ? static_cast<const InspectorDOMStorageResource*>(listener) : 0;
}
- void bind(InspectorFrontend* frontend);
+ void bind(RemoteInspectorFrontend* frontend);
void unbind();
void startReportingChangesToFrontend();
@@ -76,7 +74,7 @@ namespace WebCore {
RefPtr<Storage> m_domStorage;
bool m_isLocalStorage;
RefPtr<Frame> m_frame;
- InspectorFrontend* m_frontend;
+ RemoteInspectorFrontend* m_frontend;
int m_id;
bool m_reportingChangesToFrontend;
diff --git a/WebCore/inspector/InspectorDatabaseResource.cpp b/WebCore/inspector/InspectorDatabaseResource.cpp
index cec0e28..036148f 100644
--- a/WebCore/inspector/InspectorDatabaseResource.cpp
+++ b/WebCore/inspector/InspectorDatabaseResource.cpp
@@ -33,18 +33,21 @@
#if ENABLE(DATABASE) && ENABLE(INSPECTOR)
#include "Database.h"
-#include "Document.h"
-#include "Frame.h"
-#include "InspectorFrontend.h"
-#include "ScriptObject.h"
+#include "InspectorValues.h"
+#include "RemoteInspectorFrontend.h"
namespace WebCore {
-int InspectorDatabaseResource::s_nextUnusedId = 1;
+static int nextUnusedId = 1;
-InspectorDatabaseResource::InspectorDatabaseResource(Database* database, const String& domain, const String& name, const String& version)
+PassRefPtr<InspectorDatabaseResource> InspectorDatabaseResource::create(PassRefPtr<Database> database, const String& domain, const String& name, const String& version)
+{
+ return adoptRef(new InspectorDatabaseResource(database, domain, name, version));
+}
+
+InspectorDatabaseResource::InspectorDatabaseResource(PassRefPtr<Database> database, const String& domain, const String& name, const String& version)
: m_database(database)
- , m_id(s_nextUnusedId++)
+ , m_id(nextUnusedId++)
, m_domain(domain)
, m_name(name)
, m_version(version)
@@ -52,18 +55,19 @@ InspectorDatabaseResource::InspectorDatabaseResource(Database* database, const S
{
}
-void InspectorDatabaseResource::bind(InspectorFrontend* frontend)
+void InspectorDatabaseResource::bind(RemoteInspectorFrontend* frontend)
{
if (m_scriptObjectCreated)
return;
- ScriptObject jsonObject = frontend->newScriptObject();
- jsonObject.set("id", m_id);
- jsonObject.set("domain", m_domain);
- jsonObject.set("name", m_name);
- jsonObject.set("version", m_version);
- if (frontend->addDatabase(jsonObject))
- m_scriptObjectCreated = true;
+ RefPtr<InspectorObject> jsonObject = InspectorObject::create();
+ jsonObject->setNumber("id", m_id);
+ jsonObject->setString("domain", m_domain);
+ jsonObject->setString("name", m_name);
+ jsonObject->setString("version", m_version);
+
+ frontend->addDatabase(jsonObject);
+ m_scriptObjectCreated = true;
}
void InspectorDatabaseResource::unbind()
diff --git a/WebCore/inspector/InspectorDatabaseResource.h b/WebCore/inspector/InspectorDatabaseResource.h
index f82d898..8e0e1b3 100644
--- a/WebCore/inspector/InspectorDatabaseResource.h
+++ b/WebCore/inspector/InspectorDatabaseResource.h
@@ -32,41 +32,33 @@
#define InspectorDatabaseResource_h
#if ENABLE(DATABASE)
-
-#include "Database.h"
-#include "ScriptObject.h"
-#include "ScriptState.h"
-
+#include "PlatformString.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
namespace WebCore {
- class InspectorFrontend;
-
- class InspectorDatabaseResource : public RefCounted<InspectorDatabaseResource> {
- public:
- static PassRefPtr<InspectorDatabaseResource> create(Database* database, const String& domain, const String& name, const String& version)
- {
- return adoptRef(new InspectorDatabaseResource(database, domain, name, version));
- }
+class Database;
+class RemoteInspectorFrontend;
+
+class InspectorDatabaseResource : public RefCounted<InspectorDatabaseResource> {
+public:
+ static PassRefPtr<InspectorDatabaseResource> create(PassRefPtr<Database> database, const String& domain, const String& name, const String& version);
- void bind(InspectorFrontend* frontend);
- void unbind();
- Database* database() { return m_database.get(); }
- long id() const { return m_id; }
- private:
- InspectorDatabaseResource(Database*, const String& domain, const String& name, const String& version);
-
- RefPtr<Database> m_database;
- int m_id;
- String m_domain;
- String m_name;
- String m_version;
- bool m_scriptObjectCreated;
+ void bind(RemoteInspectorFrontend* frontend);
+ void unbind();
+ Database* database() { return m_database.get(); }
+ long id() const { return m_id; }
+private:
+ InspectorDatabaseResource(PassRefPtr<Database>, const String& domain, const String& name, const String& version);
- static int s_nextUnusedId;
- };
+ RefPtr<Database> m_database;
+ int m_id;
+ String m_domain;
+ String m_name;
+ String m_version;
+ bool m_scriptObjectCreated;
+};
} // namespace WebCore
diff --git a/WebCore/inspector/InspectorDebuggerAgent.cpp b/WebCore/inspector/InspectorDebuggerAgent.cpp
new file mode 100644
index 0000000..b70ddbf
--- /dev/null
+++ b/WebCore/inspector/InspectorDebuggerAgent.cpp
@@ -0,0 +1,296 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "InspectorDebuggerAgent.h"
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+#include "InjectedScript.h"
+#include "InjectedScriptHost.h"
+#include "InspectorValues.h"
+#include "PlatformString.h"
+#include "RemoteInspectorFrontend.h"
+#include "ScriptDebugServer.h"
+#include <wtf/MD5.h>
+
+namespace WebCore {
+
+static String formatBreakpointId(const String& sourceID, unsigned lineNumber)
+{
+ return String::format("%s:%d", sourceID.utf8().data(), lineNumber);
+}
+
+PassOwnPtr<InspectorDebuggerAgent> InspectorDebuggerAgent::create(InspectorController* inspectorController, RemoteInspectorFrontend* remoteFrontend)
+{
+ OwnPtr<InspectorDebuggerAgent> agent = adoptPtr(new InspectorDebuggerAgent(inspectorController, remoteFrontend));
+ ScriptDebugServer::shared().clearBreakpoints();
+ ScriptDebugServer::shared().addListener(agent.get(), inspectorController->inspectedPage());
+ return agent.release();
+}
+
+InspectorDebuggerAgent::InspectorDebuggerAgent(InspectorController* inspectorController, RemoteInspectorFrontend* remoteFrontend)
+ : m_inspectorController(inspectorController)
+ , m_remoteFrontend(remoteFrontend)
+ , m_pausedScriptState(0)
+ , m_breakpointsLoaded(false)
+{
+}
+
+InspectorDebuggerAgent::~InspectorDebuggerAgent()
+{
+ ScriptDebugServer::shared().removeListener(this, m_inspectorController->inspectedPage());
+ m_pausedScriptState = 0;
+}
+
+bool InspectorDebuggerAgent::isDebuggerAlwaysEnabled()
+{
+ return ScriptDebugServer::shared().isDebuggerAlwaysEnabled();
+}
+
+void InspectorDebuggerAgent::activateBreakpoints()
+{
+ ScriptDebugServer::shared().activateBreakpoints();
+}
+
+void InspectorDebuggerAgent::deactivateBreakpoints()
+{
+ ScriptDebugServer::shared().deactivateBreakpoints();
+}
+
+void InspectorDebuggerAgent::setBreakpoint(const String& sourceID, unsigned lineNumber, bool enabled, const String& condition, bool* success, unsigned int* actualLineNumber)
+{
+ ScriptBreakpoint breakpoint(enabled, condition);
+ *success = ScriptDebugServer::shared().setBreakpoint(sourceID, breakpoint, lineNumber, actualLineNumber);
+ if (!*success)
+ return;
+
+ String url = m_sourceIDToURL.get(sourceID);
+ if (url.isEmpty())
+ return;
+
+ String breakpointId = formatBreakpointId(sourceID, *actualLineNumber);
+ m_breakpointsMapping.set(breakpointId, *actualLineNumber);
+
+ String key = md5Base16(url);
+ HashMap<String, SourceBreakpoints>::iterator it = m_stickyBreakpoints.find(key);
+ if (it == m_stickyBreakpoints.end())
+ it = m_stickyBreakpoints.set(key, SourceBreakpoints()).first;
+ it->second.set(*actualLineNumber, breakpoint);
+ saveBreakpoints();
+}
+
+void InspectorDebuggerAgent::removeBreakpoint(const String& sourceID, unsigned lineNumber)
+{
+ ScriptDebugServer::shared().removeBreakpoint(sourceID, lineNumber);
+
+ String url = m_sourceIDToURL.get(sourceID);
+ if (url.isEmpty())
+ return;
+
+ String breakpointId = formatBreakpointId(sourceID, lineNumber);
+ HashMap<String, unsigned>::iterator mappingIt = m_breakpointsMapping.find(breakpointId);
+ if (mappingIt == m_breakpointsMapping.end())
+ return;
+ unsigned stickyLine = mappingIt->second;
+ m_breakpointsMapping.remove(mappingIt);
+
+ HashMap<String, SourceBreakpoints>::iterator it = m_stickyBreakpoints.find(md5Base16(url));
+ if (it == m_stickyBreakpoints.end())
+ return;
+
+ it->second.remove(stickyLine);
+ saveBreakpoints();
+}
+
+void InspectorDebuggerAgent::editScriptSource(const String& sourceID, const String& newContent, bool* success, String* result, RefPtr<InspectorValue>* newCallFrames)
+{
+ if ((*success = ScriptDebugServer::shared().editScriptSource(sourceID, newContent, *result)))
+ *newCallFrames = currentCallFrames();
+}
+
+void InspectorDebuggerAgent::getScriptSource(const String& sourceID, String* scriptSource)
+{
+ *scriptSource = m_scriptIDToContent.get(sourceID);
+}
+
+void InspectorDebuggerAgent::pause()
+{
+ ScriptDebugServer::shared().pause();
+}
+
+void InspectorDebuggerAgent::resume()
+{
+ ScriptDebugServer::shared().continueProgram();
+}
+
+void InspectorDebuggerAgent::stepOverStatement()
+{
+ ScriptDebugServer::shared().stepOverStatement();
+}
+
+void InspectorDebuggerAgent::stepIntoStatement()
+{
+ ScriptDebugServer::shared().stepIntoStatement();
+}
+
+void InspectorDebuggerAgent::stepOutOfFunction()
+{
+ ScriptDebugServer::shared().stepOutOfFunction();
+}
+
+void InspectorDebuggerAgent::setPauseOnExceptionsState(long pauseState)
+{
+ ScriptDebugServer::shared().setPauseOnExceptionsState(static_cast<ScriptDebugServer::PauseOnExceptionsState>(pauseState));
+ m_remoteFrontend->updatePauseOnExceptionsState(ScriptDebugServer::shared().pauseOnExceptionsState());
+}
+
+void InspectorDebuggerAgent::clearForPageNavigation()
+{
+ m_sourceIDToURL.clear();
+ m_scriptIDToContent.clear();
+ m_stickyBreakpoints.clear();
+ m_breakpointsMapping.clear();
+ m_breakpointsLoaded = false;
+}
+
+String InspectorDebuggerAgent::md5Base16(const String& string)
+{
+ static const char digits[] = "0123456789abcdef";
+
+ MD5 md5;
+ md5.addBytes(reinterpret_cast<const uint8_t*>(string.characters()), string.length() * 2);
+ Vector<uint8_t, 16> digest;
+ md5.checksum(digest);
+
+ Vector<char, 32> result;
+ for (int i = 0; i < 16; ++i) {
+ result.append(digits[(digest[i] >> 4) & 0xf]);
+ result.append(digits[digest[i] & 0xf]);
+ }
+ return String(result.data(), result.size());
+}
+
+PassRefPtr<InspectorValue> InspectorDebuggerAgent::currentCallFrames()
+{
+ if (!m_pausedScriptState)
+ return InspectorValue::null();
+ InjectedScript injectedScript = m_inspectorController->injectedScriptHost()->injectedScriptFor(m_pausedScriptState);
+ if (injectedScript.hasNoValue()) {
+ ASSERT_NOT_REACHED();
+ return InspectorValue::null();
+ }
+ return injectedScript.callFrames();
+}
+
+void InspectorDebuggerAgent::loadBreakpoints()
+{
+ if (m_breakpointsLoaded)
+ return;
+ m_breakpointsLoaded = true;
+
+ RefPtr<InspectorValue> parsedSetting = m_inspectorController->loadBreakpoints();
+ if (!parsedSetting)
+ return;
+ RefPtr<InspectorObject> breakpoints = parsedSetting->asObject();
+ if (!breakpoints)
+ return;
+ for (InspectorObject::iterator it = breakpoints->begin(); it != breakpoints->end(); ++it) {
+ RefPtr<InspectorObject> breakpointsForURL = it->second->asObject();
+ if (!breakpointsForURL)
+ continue;
+ HashMap<String, SourceBreakpoints>::iterator sourceBreakpointsIt = m_stickyBreakpoints.set(it->first, SourceBreakpoints()).first;
+ ScriptBreakpoint::sourceBreakpointsFromInspectorObject(breakpointsForURL, &sourceBreakpointsIt->second);
+ }
+}
+
+void InspectorDebuggerAgent::saveBreakpoints()
+{
+ RefPtr<InspectorObject> breakpoints = InspectorObject::create();
+ for (HashMap<String, SourceBreakpoints>::iterator it(m_stickyBreakpoints.begin()); it != m_stickyBreakpoints.end(); ++it) {
+ if (it->second.isEmpty())
+ continue;
+ RefPtr<InspectorObject> breakpointsForURL = ScriptBreakpoint::inspectorObjectFromSourceBreakpoints(it->second);
+ breakpoints->set(it->first, breakpointsForURL);
+ }
+ m_inspectorController->saveBreakpoints(breakpoints);
+}
+
+// JavaScriptDebugListener functions
+
+void InspectorDebuggerAgent::didParseSource(const String& sourceID, const String& url, const String& data, int firstLine, ScriptWorldType worldType)
+{
+ // Don't send script content to the front end until it's really needed.
+ m_remoteFrontend->parsedScriptSource(sourceID, url, "", firstLine, worldType);
+
+ m_scriptIDToContent.set(sourceID, data);
+
+ if (url.isEmpty())
+ return;
+
+ loadBreakpoints();
+ HashMap<String, SourceBreakpoints>::iterator it = m_stickyBreakpoints.find(md5Base16(url));
+ if (it != m_stickyBreakpoints.end()) {
+ for (SourceBreakpoints::iterator breakpointIt = it->second.begin(); breakpointIt != it->second.end(); ++breakpointIt) {
+ int lineNumber = breakpointIt->first;
+ if (firstLine > lineNumber)
+ continue;
+ unsigned actualLineNumber = 0;
+ bool success = ScriptDebugServer::shared().setBreakpoint(sourceID, breakpointIt->second, lineNumber, &actualLineNumber);
+ if (!success)
+ continue;
+ m_remoteFrontend->restoredBreakpoint(sourceID, url, actualLineNumber, breakpointIt->second.enabled, breakpointIt->second.condition);
+ String breakpointId = formatBreakpointId(sourceID, actualLineNumber);
+ m_breakpointsMapping.set(breakpointId, lineNumber);
+ }
+ }
+ m_sourceIDToURL.set(sourceID, url);
+}
+
+void InspectorDebuggerAgent::failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage)
+{
+ m_remoteFrontend->failedToParseScriptSource(url, data, firstLine, errorLine, errorMessage);
+}
+
+void InspectorDebuggerAgent::didPause(ScriptState* scriptState)
+{
+ ASSERT(scriptState && !m_pausedScriptState);
+ m_pausedScriptState = scriptState;
+ RefPtr<InspectorValue> callFrames = currentCallFrames();
+ m_remoteFrontend->pausedScript(callFrames.get());
+}
+
+void InspectorDebuggerAgent::didContinue()
+{
+ m_pausedScriptState = 0;
+ m_remoteFrontend->resumedScript();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(JAVASCRIPT_DEBUGGER)
diff --git a/WebCore/inspector/InspectorDebuggerAgent.h b/WebCore/inspector/InspectorDebuggerAgent.h
new file mode 100644
index 0000000..5428eb2
--- /dev/null
+++ b/WebCore/inspector/InspectorDebuggerAgent.h
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef InspectorDebuggerAgent_h
+#define InspectorDebuggerAgent_h
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+#include "ScriptBreakpoint.h"
+#include "ScriptDebugListener.h"
+#include "ScriptState.h"
+#include "StringHash.h"
+#include <wtf/Forward.h>
+#include <wtf/HashMap.h>
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+class InjectedScriptHost;
+class InspectorController;
+class InspectorValue;
+class RemoteInspectorFrontend;
+
+class InspectorDebuggerAgent : public ScriptDebugListener, public Noncopyable {
+public:
+ static PassOwnPtr<InspectorDebuggerAgent> create(InspectorController*, RemoteInspectorFrontend*);
+ virtual ~InspectorDebuggerAgent();
+
+ static bool isDebuggerAlwaysEnabled();
+
+ void activateBreakpoints();
+ void deactivateBreakpoints();
+ void setBreakpoint(const String& sourceID, unsigned lineNumber, bool enabled, const String& condition, bool* success, unsigned int* actualLineNumber);
+ void removeBreakpoint(const String& sourceID, unsigned lineNumber);
+
+ void editScriptSource(const String& sourceID, const String& newContent, bool* success, String* result, RefPtr<InspectorValue>* newCallFrames);
+ void getScriptSource(const String& sourceID, String* scriptSource);
+
+ void pause();
+ void resume();
+ void stepOverStatement();
+ void stepIntoStatement();
+ void stepOutOfFunction();
+
+ void setPauseOnExceptionsState(long pauseState);
+
+ void clearForPageNavigation();
+
+ static String md5Base16(const String& string);
+
+private:
+ InspectorDebuggerAgent(InspectorController*, RemoteInspectorFrontend*);
+
+ PassRefPtr<InspectorValue> currentCallFrames();
+
+ void loadBreakpoints();
+ void saveBreakpoints();
+
+ virtual void didParseSource(const String& sourceID, const String& url, const String& data, int firstLine, ScriptWorldType);
+ virtual void failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage);
+ virtual void didPause(ScriptState*);
+ virtual void didContinue();
+
+ InspectorController* m_inspectorController;
+ RemoteInspectorFrontend* m_remoteFrontend;
+ ScriptState* m_pausedScriptState;
+ HashMap<String, String> m_sourceIDToURL;
+ HashMap<String, String> m_scriptIDToContent;
+ HashMap<String, SourceBreakpoints> m_stickyBreakpoints;
+ HashMap<String, unsigned> m_breakpointsMapping;
+ bool m_breakpointsLoaded;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(JAVASCRIPT_DEBUGGER)
+
+#endif // !defined(InspectorDebuggerAgent_h)
diff --git a/WebCore/inspector/InspectorFrontend.cpp b/WebCore/inspector/InspectorFrontend.cpp
deleted file mode 100644
index 5925741..0000000
--- a/WebCore/inspector/InspectorFrontend.cpp
+++ /dev/null
@@ -1,625 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "InspectorFrontend.h"
-
-#if ENABLE(INSPECTOR)
-
-#include "Frame.h"
-#include "InjectedScript.h"
-#include "InjectedScriptHost.h"
-#include "InspectorClient.h"
-#include "InspectorController.h"
-#include "InspectorWorkerResource.h"
-#include "Node.h"
-#include "ScriptFunctionCall.h"
-#include "ScriptObject.h"
-#include "ScriptState.h"
-#include "ScriptString.h"
-#include "ScriptValue.h"
-#include "SerializedScriptValue.h"
-#include <wtf/OwnPtr.h>
-
-namespace WebCore {
-
-InspectorFrontend::InspectorFrontend(ScriptObject webInspector, InspectorClient* inspectorClient)
- : m_webInspector(webInspector)
- , m_inspectorClient(inspectorClient)
-{
-}
-
-InspectorFrontend::~InspectorFrontend()
-{
- m_webInspector = ScriptObject();
-}
-
-void InspectorFrontend::close()
-{
- ScriptFunctionCall function(m_webInspector, "close");
- function.call();
-}
-
-void InspectorFrontend::inspectedPageDestroyed()
-{
- ScriptFunctionCall function(m_webInspector, "inspectedPageDestroyed");
- function.call();
-}
-
-ScriptArray InspectorFrontend::newScriptArray()
-{
- return ScriptArray::createNew(scriptState());
-}
-
-ScriptObject InspectorFrontend::newScriptObject()
-{
- return ScriptObject::createNew(scriptState());
-}
-
-void InspectorFrontend::didCommitLoad()
-{
- callSimpleFunction("didCommitLoad");
-}
-
-void InspectorFrontend::populateApplicationSettings(const String& settings)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("populateApplicationSettings");
- function.appendArgument(settings);
- function.call();
-}
-
-void InspectorFrontend::populateSessionSettings(const String& settings)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("populateSessionSettings");
- function.appendArgument(settings);
- function.call();
-}
-
-void InspectorFrontend::updateConsoleMessageExpiredCount(unsigned count)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("updateConsoleMessageExpiredCount");
- function.appendArgument(count);
- function.call();
-}
-
-void InspectorFrontend::addConsoleMessage(const ScriptObject& messageObj)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("addConsoleMessage");
- function.appendArgument(messageObj);
- function.call();
-}
-
-void InspectorFrontend::updateConsoleMessageRepeatCount(unsigned count)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("updateConsoleMessageRepeatCount");
- function.appendArgument(count);
- function.call();
-}
-
-void InspectorFrontend::clearConsoleMessages()
-{
- callSimpleFunction("clearConsoleMessages");
-}
-
-bool InspectorFrontend::updateResource(unsigned long identifier, const ScriptObject& resourceObj)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("updateResource");
- function.appendArgument(identifier);
- function.appendArgument(resourceObj);
- bool hadException = false;
- function.call(hadException);
- return !hadException;
-}
-
-void InspectorFrontend::removeResource(unsigned long identifier)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("removeResource");
- function.appendArgument(identifier);
- function.call();
-}
-
-void InspectorFrontend::didGetResourceContent(long callId, const String& content)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didGetResourceContent");
- function.appendArgument(callId);
- function.appendArgument(content);
- function.call();
-}
-
-void InspectorFrontend::updateFocusedNode(long nodeId)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("updateFocusedNode");
- function.appendArgument(nodeId);
- function.call();
-}
-
-void InspectorFrontend::showPanel(int panel)
-{
- const char* showFunctionName;
- switch (panel) {
- case InspectorController::AuditsPanel:
- showFunctionName = "showAuditsPanel";
- break;
- case InspectorController::ConsolePanel:
- showFunctionName = "showConsolePanel";
- break;
- case InspectorController::ElementsPanel:
- showFunctionName = "showElementsPanel";
- break;
- case InspectorController::ResourcesPanel:
- showFunctionName = "showResourcesPanel";
- break;
- case InspectorController::TimelinePanel:
- showFunctionName = "showTimelinePanel";
- break;
- case InspectorController::ProfilesPanel:
- showFunctionName = "showProfilesPanel";
- break;
- case InspectorController::ScriptsPanel:
- showFunctionName = "showScriptsPanel";
- break;
- case InspectorController::StoragePanel:
- showFunctionName = "showStoragePanel";
- break;
- default:
- ASSERT_NOT_REACHED();
- showFunctionName = 0;
- }
-
- if (showFunctionName)
- callSimpleFunction(showFunctionName);
-}
-
-void InspectorFrontend::populateInterface()
-{
- callSimpleFunction("populateInterface");
-}
-
-void InspectorFrontend::reset()
-{
- callSimpleFunction("reset");
-}
-
-void InspectorFrontend::resetProfilesPanel()
-{
- callSimpleFunction("resetProfilesPanel");
-}
-
-void InspectorFrontend::bringToFront()
-{
- callSimpleFunction("bringToFront");
-}
-
-void InspectorFrontend::inspectedURLChanged(const String& url)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("inspectedURLChanged");
- function.appendArgument(url);
- function.call();
-}
-
-void InspectorFrontend::resourceTrackingWasEnabled()
-{
- callSimpleFunction("resourceTrackingWasEnabled");
-}
-
-void InspectorFrontend::resourceTrackingWasDisabled()
-{
- callSimpleFunction("resourceTrackingWasDisabled");
-}
-
-void InspectorFrontend::searchingForNodeWasEnabled()
-{
- callSimpleFunction("searchingForNodeWasEnabled");
-}
-
-void InspectorFrontend::searchingForNodeWasDisabled()
-{
- callSimpleFunction("searchingForNodeWasDisabled");
-}
-
-void InspectorFrontend::monitoringXHRWasEnabled()
-{
- callSimpleFunction("monitoringXHRWasEnabled");
-}
-
-void InspectorFrontend::monitoringXHRWasDisabled()
-{
- callSimpleFunction("monitoringXHRWasDisabled");
-}
-
-void InspectorFrontend::updatePauseOnExceptionsState(long state)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("updatePauseOnExceptionsState");
- function.appendArgument(state);
- function.call();
-}
-
-void InspectorFrontend::timelineProfilerWasStarted()
-{
- callSimpleFunction("timelineProfilerWasStarted");
-}
-
-void InspectorFrontend::timelineProfilerWasStopped()
-{
- callSimpleFunction("timelineProfilerWasStopped");
-}
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-void InspectorFrontend::attachDebuggerWhenShown()
-{
- callSimpleFunction("attachDebuggerWhenShown");
-}
-
-void InspectorFrontend::debuggerWasEnabled()
-{
- callSimpleFunction("debuggerWasEnabled");
-}
-
-void InspectorFrontend::debuggerWasDisabled()
-{
- callSimpleFunction("debuggerWasDisabled");
-}
-
-void InspectorFrontend::didSetBreakpoint(long callId, bool success, unsigned line)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didSetBreakpoint");
- function.appendArgument(callId);
- function.appendArgument(success);
- function.appendArgument(line);
- function.call();
-}
-
-void InspectorFrontend::parsedScriptSource(const String& sourceID, const String& url, const String& data, int firstLine, int scriptWorldType)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("parsedScriptSource");
- function.appendArgument(sourceID);
- function.appendArgument(url);
- function.appendArgument(data);
- function.appendArgument(firstLine);
- function.appendArgument(scriptWorldType);
- function.call();
-}
-
-void InspectorFrontend::restoredBreakpoint(const String& sourceID, const String& url, int line, bool enabled, const String& condition)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("restoredBreakpoint");
- function.appendArgument(sourceID);
- function.appendArgument(url);
- function.appendArgument(line);
- function.appendArgument(enabled);
- function.appendArgument(condition);
- function.call();
-}
-
-void InspectorFrontend::failedToParseScriptSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("failedToParseScriptSource");
- function.appendArgument(url);
- function.appendArgument(data);
- function.appendArgument(firstLine);
- function.appendArgument(errorLine);
- function.appendArgument(errorMessage);
- function.call();
-}
-
-void InspectorFrontend::pausedScript(SerializedScriptValue* callFrames)
-{
- ScriptValue callFramesValue = ScriptValue::deserialize(scriptState(), callFrames);
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("pausedScript");
- function.appendArgument(callFramesValue);
- function.call();
-}
-
-void InspectorFrontend::resumedScript()
-{
- callSimpleFunction("resumedScript");
-}
-
-void InspectorFrontend::didEditScriptSource(long callId, bool success, const String& result, SerializedScriptValue* newCallFrames)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didEditScriptSource");
- function.appendArgument(callId);
- function.appendArgument(success);
- function.appendArgument(result);
- if (success && newCallFrames) {
- ScriptValue newCallFramesValue = ScriptValue::deserialize(scriptState(), newCallFrames);
- ASSERT(!newCallFramesValue .hasNoValue());
- function.appendArgument(newCallFramesValue);
- }
- function.call();
-}
-
-void InspectorFrontend::didGetScriptSource(long callId, const String& result)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didGetScriptSource");
- function.appendArgument(callId);
- function.appendArgument(result);
- function.call();
-}
-
-void InspectorFrontend::profilerWasEnabled()
-{
- callSimpleFunction("profilerWasEnabled");
-}
-
-void InspectorFrontend::profilerWasDisabled()
-{
- callSimpleFunction("profilerWasDisabled");
-}
-
-void InspectorFrontend::addProfileHeader(const ScriptValue& profile)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("addProfileHeader");
- function.appendArgument(profile);
- function.call();
-}
-
-void InspectorFrontend::setRecordingProfile(bool isProfiling)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("setRecordingProfile");
- function.appendArgument(isProfiling);
- function.call();
-}
-
-void InspectorFrontend::didGetProfileHeaders(long callId, const ScriptArray& headers)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didGetProfileHeaders");
- function.appendArgument(callId);
- function.appendArgument(headers);
- function.call();
-}
-
-void InspectorFrontend::didGetProfile(long callId, const ScriptValue& profile)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didGetProfile");
- function.appendArgument(callId);
- function.appendArgument(profile);
- function.call();
-}
-#endif
-
-void InspectorFrontend::didPushNodeByPathToFrontend(long callId, long nodeId)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didPushNodeByPathToFrontend");
- function.appendArgument(callId);
- function.appendArgument(nodeId);
- function.call();
-}
-
-#if ENABLE(WORKERS)
-void InspectorFrontend::didCreateWorker(const InspectorWorkerResource& worker)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didCreateWorker");
- function.appendArgument(worker.id());
- function.appendArgument(worker.url());
- function.appendArgument(worker.isSharedWorker());
- function.call();
-}
-
-void InspectorFrontend::didDestroyWorker(const InspectorWorkerResource& worker)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didDestroyWorker");
- function.appendArgument(worker.id());
- function.call();
-}
-#endif // ENABLE(WORKERS)
-
-void InspectorFrontend::didGetCookies(long callId, const ScriptArray& cookies, const String& cookiesString)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didGetCookies");
- function.appendArgument(callId);
- function.appendArgument(cookies);
- function.appendArgument(cookiesString);
- function.call();
-}
-
-void InspectorFrontend::didDispatchOnInjectedScript(long callId, SerializedScriptValue* result, bool isException)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didDispatchOnInjectedScript");
- function.appendArgument(callId);
- if (isException)
- function.appendArgument("");
- else {
- ScriptValue resultValue = ScriptValue::deserialize(scriptState(), result);
- function.appendArgument(resultValue);
- }
- function.appendArgument(isException);
- function.call();
-}
-
-#if ENABLE(DATABASE)
-bool InspectorFrontend::addDatabase(const ScriptObject& dbObject)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("addDatabase");
- function.appendArgument(dbObject);
- bool hadException = false;
- function.call(hadException);
- return !hadException;
-}
-
-void InspectorFrontend::selectDatabase(int databaseId)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("selectDatabase");
- function.appendArgument(databaseId);
- function.call();
-}
-
-void InspectorFrontend::didGetDatabaseTableNames(long callId, const ScriptArray& tableNames)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didGetDatabaseTableNames");
- function.appendArgument(callId);
- function.appendArgument(tableNames);
- function.call();
-}
-#endif
-
-#if ENABLE(DOM_STORAGE)
-bool InspectorFrontend::addDOMStorage(const ScriptObject& domStorageObj)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("addDOMStorage");
- function.appendArgument(domStorageObj);
- bool hadException = false;
- function.call(hadException);
- return !hadException;
-}
-
-void InspectorFrontend::selectDOMStorage(long storageId)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("selectDOMStorage");
- function.appendArgument(storageId);
- function.call();
-}
-
-void InspectorFrontend::didGetDOMStorageEntries(long callId, const ScriptArray& entries)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didGetDOMStorageEntries");
- function.appendArgument(callId);
- function.appendArgument(entries);
- function.call();
-}
-
-void InspectorFrontend::didSetDOMStorageItem(long callId, bool success)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didSetDOMStorageItem");
- function.appendArgument(callId);
- function.appendArgument(success);
- function.call();
-}
-
-void InspectorFrontend::didRemoveDOMStorageItem(long callId, bool success)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didRemoveDOMStorageItem");
- function.appendArgument(callId);
- function.appendArgument(success);
- function.call();
-}
-
-void InspectorFrontend::updateDOMStorage(long storageId)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("updateDOMStorage");
- function.appendArgument(storageId);
- function.call();
-}
-#endif
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
-void InspectorFrontend::didGetApplicationCaches(long callId, const ScriptValue& applicationCaches)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("didGetApplicationCaches");
- function.appendArgument(callId);
- function.appendArgument(applicationCaches);
- function.call();
-}
-
-void InspectorFrontend::updateApplicationCacheStatus(int status)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("updateApplicationCacheStatus");
- function.appendArgument(status);
- function.call();
-}
-
-void InspectorFrontend::updateNetworkState(bool isNowOnline)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("updateNetworkState");
- function.appendArgument(isNowOnline);
- function.call();
-}
-#endif
-
-void InspectorFrontend::contextMenuItemSelected(int itemId)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("contextMenuItemSelected");
- function.appendArgument(itemId);
- function.call();
-}
-
-void InspectorFrontend::contextMenuCleared()
-{
- callSimpleFunction("contextMenuCleared");
-}
-
-void InspectorFrontend::evaluateForTestInFrontend(long callId, const String& script)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument("evaluateForTestInFrontend");
- function.appendArgument(callId);
- function.appendArgument(script);
- function.call();
-}
-
-void InspectorFrontend::callSimpleFunction(const String& functionName)
-{
- ScriptFunctionCall function(m_webInspector, "dispatch");
- function.appendArgument(functionName);
- function.call();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/inspector/InspectorFrontend.h b/WebCore/inspector/InspectorFrontend.h
deleted file mode 100644
index e6567be..0000000
--- a/WebCore/inspector/InspectorFrontend.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef InspectorFrontend_h
-#define InspectorFrontend_h
-
-#include "InspectorValues.h"
-#include "ScriptArray.h"
-#include "ScriptObject.h"
-#include "ScriptState.h"
-#include <wtf/PassOwnPtr.h>
-
-namespace WebCore {
- class ConsoleMessage;
- class Database;
- class Frame;
- class InspectorClient;
- class InspectorResource;
- class InspectorWorkerResource;
- class Node;
- class ScriptString;
- class SerializedScriptValue;
- class Storage;
-
- class InspectorFrontend : public Noncopyable {
- public:
- // We are in transition from JS transport via webInspector to native
- // transport via inspectorClient. After migration, webInspector parameter should
- // be removed.
- InspectorFrontend(ScriptObject webInspector, InspectorClient* inspectorClient);
- ~InspectorFrontend();
-
- void close();
- void inspectedPageDestroyed();
-
- ScriptArray newScriptArray();
- ScriptObject newScriptObject();
-
- void didCommitLoad();
-
- void populateApplicationSettings(const String& settings);
- void populateSessionSettings(const String& settings);
-
- void updateConsoleMessageExpiredCount(unsigned count);
- void addConsoleMessage(const ScriptObject& messageObj);
- void updateConsoleMessageRepeatCount(unsigned count);
- void clearConsoleMessages();
-
- bool updateResource(unsigned long identifier, const ScriptObject& resourceObj);
- void removeResource(unsigned long identifier);
- void didGetResourceContent(long callId, const String& content);
-
- void updateFocusedNode(long nodeId);
- void showPanel(int panel);
- void populateInterface();
- void reset();
- void resetProfilesPanel();
-
- void bringToFront();
- void inspectedURLChanged(const String&);
-
- void resourceTrackingWasEnabled();
- void resourceTrackingWasDisabled();
-
- void searchingForNodeWasEnabled();
- void searchingForNodeWasDisabled();
-
- void monitoringXHRWasEnabled();
- void monitoringXHRWasDisabled();
-
- void updatePauseOnExceptionsState(long state);
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
- void attachDebuggerWhenShown();
- void debuggerWasEnabled();
- void debuggerWasDisabled();
-
- void didSetBreakpoint(long callId, bool success, unsigned line);
-
- void parsedScriptSource(const String& sourceID, const String& url, const String& data, int firstLine, int scriptWorldType);
- void restoredBreakpoint(const String& sourceID, const String& url, int line, bool enabled, const String& condition);
- void failedToParseScriptSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage);
- void pausedScript(SerializedScriptValue* callFrames);
- void resumedScript();
-
- void didEditScriptSource(long callId, bool success, const String& result, SerializedScriptValue* newCallFrames);
- void didGetScriptSource(long callId, const String& result);
-
- void profilerWasEnabled();
- void profilerWasDisabled();
- void addProfileHeader(const ScriptValue& profile);
- void setRecordingProfile(bool isProfiling);
- void didGetProfileHeaders(long callId, const ScriptArray& headers);
- void didGetProfile(long callId, const ScriptValue& profile);
-#endif
-
-#if ENABLE(DATABASE)
- bool addDatabase(const ScriptObject& dbObj);
- void selectDatabase(int databaseId);
- void didGetDatabaseTableNames(long callId, const ScriptArray& tableNames);
-#endif
-
-#if ENABLE(DOM_STORAGE)
- bool addDOMStorage(const ScriptObject& domStorageObj);
- void selectDOMStorage(long storageId);
- void didGetDOMStorageEntries(long callId, const ScriptArray& entries);
- void didSetDOMStorageItem(long callId, bool success);
- void didRemoveDOMStorageItem(long callId, bool success);
- void updateDOMStorage(long storageId);
-#endif
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- void updateApplicationCacheStatus(int status);
- void updateNetworkState(bool isNowOnline);
- void didGetApplicationCaches(long callId, const ScriptValue& applicationCaches);
-#endif
-
- void didPushNodeByPathToFrontend(long callId, long nodeId);
-
- void timelineProfilerWasStarted();
- void timelineProfilerWasStopped();
-
-#if ENABLE(WORKERS)
- void didCreateWorker(const InspectorWorkerResource&);
- void didDestroyWorker(const InspectorWorkerResource&);
-#endif // ENABLE(WORKER)
-
- void didGetCookies(long callId, const ScriptArray& cookies, const String& cookiesString);
- void didDispatchOnInjectedScript(long callId, SerializedScriptValue* result, bool isException);
-
- void contextMenuItemSelected(int itemId);
- void contextMenuCleared();
-
- ScriptState* scriptState() const { return m_webInspector.scriptState(); }
-
- void evaluateForTestInFrontend(long callId, const String& script);
-
- private:
- void callSimpleFunction(const String& functionName);
- ScriptObject m_webInspector;
- InspectorClient* m_inspectorClient;
- };
-
-} // namespace WebCore
-
-#endif // !defined(InspectorFrontend_h)
diff --git a/WebCore/inspector/InspectorFrontendClient.h b/WebCore/inspector/InspectorFrontendClient.h
index c20eb10..cbbbc53 100644
--- a/WebCore/inspector/InspectorFrontendClient.h
+++ b/WebCore/inspector/InspectorFrontendClient.h
@@ -31,13 +31,13 @@
#ifndef InspectorFrontendClient_h
#define InspectorFrontendClient_h
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
namespace WebCore {
class ContextMenuItem;
class Event;
-class String;
class InspectorFrontendClient {
public:
diff --git a/WebCore/inspector/InspectorFrontendClientLocal.cpp b/WebCore/inspector/InspectorFrontendClientLocal.cpp
index f6f7811..b45dd34 100644
--- a/WebCore/inspector/InspectorFrontendClientLocal.cpp
+++ b/WebCore/inspector/InspectorFrontendClientLocal.cpp
@@ -39,7 +39,6 @@
#include "FrameView.h"
#include "InspectorBackendDispatcher.h"
#include "InspectorController.h"
-#include "InspectorFrontend.h"
#include "InspectorFrontendHost.h"
#include "Page.h"
#include "PlatformString.h"
@@ -80,14 +79,7 @@ void InspectorFrontendClientLocal::windowObjectCleared()
void InspectorFrontendClientLocal::frontendLoaded()
{
bringToFront();
- // Create InspectorFrontend and set it to InspectorController.
- ASSERT(m_frontendScriptState);
- ScriptObject webInspectorObj;
- if (!ScriptGlobalObject::get(m_frontendScriptState, "WebInspector", webInspectorObj)) {
- ASSERT_NOT_REACHED();
- return;
- }
- m_inspectorController->connectFrontend(webInspectorObj);
+ m_inspectorController->connectFrontend();
}
void InspectorFrontendClientLocal::requestAttachWindow()
diff --git a/WebCore/inspector/InspectorFrontendHost.cpp b/WebCore/inspector/InspectorFrontendHost.cpp
index 0dacde6..f9bf176 100644
--- a/WebCore/inspector/InspectorFrontendHost.cpp
+++ b/WebCore/inspector/InspectorFrontendHost.cpp
@@ -195,9 +195,7 @@ void InspectorFrontendHost::moveWindowBy(float x, float y) const
void InspectorFrontendHost::setExtensionAPI(const String& script)
{
InspectorController* inspector = m_frontendPage->inspectorController();
-
- inspector->removeAllScriptsToEvaluateOnLoad();
- inspector->addScriptToEvaluateOnLoad(script);
+ inspector->setInspectorExtensionAPI(script);
}
String InspectorFrontendHost::localizedStringsURL()
diff --git a/WebCore/inspector/InspectorResource.cpp b/WebCore/inspector/InspectorResource.cpp
index 69618c3..9259d79 100644
--- a/WebCore/inspector/InspectorResource.cpp
+++ b/WebCore/inspector/InspectorResource.cpp
@@ -38,12 +38,12 @@
#include "DocLoader.h"
#include "DocumentLoader.h"
#include "Frame.h"
-#include "InspectorFrontend.h"
+#include "InspectorValues.h"
+#include "RemoteInspectorFrontend.h"
#include "ResourceLoadTiming.h"
#include "ResourceRequest.h"
#include "ResourceResponse.h"
#include "TextEncoding.h"
-#include "ScriptObject.h"
namespace WebCore {
@@ -146,80 +146,100 @@ void InspectorResource::updateResponse(const ResourceResponse& response)
m_changes.set(TypeChange);
}
-static void populateHeadersObject(ScriptObject* object, const HTTPHeaderMap& headers)
+static PassRefPtr<InspectorObject> buildHeadersObject(const HTTPHeaderMap& headers)
{
+ RefPtr<InspectorObject> object = InspectorObject::create();
HTTPHeaderMap::const_iterator end = headers.end();
for (HTTPHeaderMap::const_iterator it = headers.begin(); it != end; ++it) {
- object->set(it->first.string(), it->second);
+ object->setString(it->first.string(), it->second);
}
+ return object;
}
-void InspectorResource::updateScriptObject(InspectorFrontend* frontend)
+static PassRefPtr<InspectorObject> buildObjectForTiming(ResourceLoadTiming* timing)
+{
+ RefPtr<InspectorObject> jsonObject = InspectorObject::create();
+ jsonObject->setNumber("requestTime", timing->requestTime);
+ jsonObject->setNumber("proxyStart", timing->proxyStart);
+ jsonObject->setNumber("proxyEnd", timing->proxyEnd);
+ jsonObject->setNumber("dnsStart", timing->dnsStart);
+ jsonObject->setNumber("dnsEnd", timing->dnsEnd);
+ jsonObject->setNumber("connectStart", timing->connectStart);
+ jsonObject->setNumber("connectEnd", timing->connectEnd);
+ jsonObject->setNumber("sslStart", timing->sslStart);
+ jsonObject->setNumber("sslEnd", timing->sslEnd);
+ jsonObject->setNumber("sendStart", timing->sendStart);
+ jsonObject->setNumber("sendEnd", timing->sendEnd);
+ jsonObject->setNumber("receiveHeadersEnd", timing->receiveHeadersEnd);
+ return jsonObject;
+}
+
+
+void InspectorResource::updateScriptObject(RemoteInspectorFrontend* frontend)
{
if (m_changes.hasChange(NoChange))
return;
- ScriptObject jsonObject = frontend->newScriptObject();
+ RefPtr<InspectorObject> jsonObject = InspectorObject::create();
+ jsonObject->setNumber("id", m_identifier);
if (m_changes.hasChange(RequestChange)) {
- jsonObject.set("url", m_requestURL.string());
- jsonObject.set("documentURL", m_frame->document()->url().string());
- jsonObject.set("host", m_requestURL.host());
- jsonObject.set("path", m_requestURL.path());
- jsonObject.set("lastPathComponent", m_requestURL.lastPathComponent());
- ScriptObject requestHeaders = frontend->newScriptObject();
- populateHeadersObject(&requestHeaders, m_requestHeaderFields);
- jsonObject.set("requestHeaders", requestHeaders);
- jsonObject.set("mainResource", m_isMainResource);
- jsonObject.set("requestMethod", m_requestMethod);
- jsonObject.set("requestFormData", m_requestFormData);
- jsonObject.set("didRequestChange", true);
+ jsonObject->setString("url", m_requestURL.string());
+ jsonObject->setString("documentURL", m_frame->document()->url().string());
+ jsonObject->setString("host", m_requestURL.host());
+ jsonObject->setString("path", m_requestURL.path());
+ jsonObject->setString("lastPathComponent", m_requestURL.lastPathComponent());
+ RefPtr<InspectorObject> requestHeaders = buildHeadersObject(m_requestHeaderFields);
+ jsonObject->set("requestHeaders", requestHeaders);
+ jsonObject->setBool("mainResource", m_isMainResource);
+ jsonObject->setString("requestMethod", m_requestMethod);
+ jsonObject->setString("requestFormData", m_requestFormData);
+ jsonObject->setBool("didRequestChange", true);
}
if (m_changes.hasChange(ResponseChange)) {
- jsonObject.set("mimeType", m_mimeType);
- jsonObject.set("suggestedFilename", m_suggestedFilename);
- jsonObject.set("expectedContentLength", m_expectedContentLength);
- jsonObject.set("statusCode", m_responseStatusCode);
- jsonObject.set("statusText", m_responseStatusText);
- ScriptObject responseHeaders = frontend->newScriptObject();
- populateHeadersObject(&responseHeaders, m_responseHeaderFields);
- jsonObject.set("responseHeaders", responseHeaders);
- jsonObject.set("connectionID", m_connectionID);
- jsonObject.set("connectionReused", m_connectionReused);
- jsonObject.set("cached", m_cached);
+ jsonObject->setString("mimeType", m_mimeType);
+ jsonObject->setString("suggestedFilename", m_suggestedFilename);
+ jsonObject->setNumber("expectedContentLength", m_expectedContentLength);
+ jsonObject->setNumber("statusCode", m_responseStatusCode);
+ jsonObject->setString("statusText", m_responseStatusText);
+ RefPtr<InspectorObject> responseHeaders = buildHeadersObject(m_responseHeaderFields);
+ jsonObject->set("responseHeaders", responseHeaders);
+ jsonObject->setNumber("connectionID", m_connectionID);
+ jsonObject->setBool("connectionReused", m_connectionReused);
+ jsonObject->setBool("cached", m_cached);
if (m_loadTiming && !m_cached)
- jsonObject.set("timing", buildObjectForTiming(frontend, m_loadTiming.get()));
- jsonObject.set("didResponseChange", true);
+ jsonObject->set("timing", buildObjectForTiming(m_loadTiming.get()));
+ jsonObject->setBool("didResponseChange", true);
}
if (m_changes.hasChange(TypeChange)) {
- jsonObject.set("type", static_cast<int>(type()));
- jsonObject.set("didTypeChange", true);
+ jsonObject->setNumber("type", static_cast<int>(type()));
+ jsonObject->setBool("didTypeChange", true);
}
if (m_changes.hasChange(LengthChange)) {
- jsonObject.set("resourceSize", m_length);
- jsonObject.set("didLengthChange", true);
+ jsonObject->setNumber("resourceSize", m_length);
+ jsonObject->setBool("didLengthChange", true);
}
if (m_changes.hasChange(CompletionChange)) {
- jsonObject.set("failed", m_failed);
- jsonObject.set("finished", m_finished);
- jsonObject.set("didCompletionChange", true);
+ jsonObject->setBool("failed", m_failed);
+ jsonObject->setBool("finished", m_finished);
+ jsonObject->setBool("didCompletionChange", true);
}
if (m_changes.hasChange(TimingChange)) {
if (m_startTime > 0)
- jsonObject.set("startTime", m_startTime);
+ jsonObject->setNumber("startTime", m_startTime);
if (m_responseReceivedTime > 0)
- jsonObject.set("responseReceivedTime", m_responseReceivedTime);
+ jsonObject->setNumber("responseReceivedTime", m_responseReceivedTime);
if (m_endTime > 0)
- jsonObject.set("endTime", m_endTime);
+ jsonObject->setNumber("endTime", m_endTime);
if (m_loadEventTime > 0)
- jsonObject.set("loadEventTime", m_loadEventTime);
+ jsonObject->setNumber("loadEventTime", m_loadEventTime);
if (m_domContentEventTime > 0)
- jsonObject.set("domContentEventTime", m_domContentEventTime);
- jsonObject.set("didTimingChange", true);
+ jsonObject->setNumber("domContentEventTime", m_domContentEventTime);
+ jsonObject->setBool("didTimingChange", true);
}
if (m_changes.hasChange(RedirectsChange)) {
@@ -227,11 +247,11 @@ void InspectorResource::updateScriptObject(InspectorFrontend* frontend)
m_redirects[i]->updateScriptObject(frontend);
}
- if (frontend->updateResource(m_identifier, jsonObject))
- m_changes.clearAll();
+ frontend->updateResource(jsonObject);
+ m_changes.clearAll();
}
-void InspectorResource::releaseScriptObject(InspectorFrontend* frontend)
+void InspectorResource::releaseScriptObject(RemoteInspectorFrontend* frontend)
{
m_changes.setAll();
@@ -390,24 +410,6 @@ void InspectorResource::addLength(int lengthReceived)
m_changes.set(TimingChange);
}
-ScriptObject InspectorResource::buildObjectForTiming(InspectorFrontend* frontend, ResourceLoadTiming* timing)
-{
- ScriptObject jsonObject = frontend->newScriptObject();
- jsonObject.set("requestTime", timing->requestTime);
- jsonObject.set("proxyStart", timing->proxyStart);
- jsonObject.set("proxyEnd", timing->proxyEnd);
- jsonObject.set("dnsStart", timing->dnsStart);
- jsonObject.set("dnsEnd", timing->dnsEnd);
- jsonObject.set("connectStart", timing->connectStart);
- jsonObject.set("connectEnd", timing->connectEnd);
- jsonObject.set("sslStart", timing->sslStart);
- jsonObject.set("sslEnd", timing->sslEnd);
- jsonObject.set("sendStart", timing->sendStart);
- jsonObject.set("sendEnd", timing->sendEnd);
- jsonObject.set("receiveHeadersEnd", timing->receiveHeadersEnd);
- return jsonObject;
-}
-
} // namespace WebCore
#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/inspector/InspectorResource.h b/WebCore/inspector/InspectorResource.h
index 48e1a20..4c12ea0 100644
--- a/WebCore/inspector/InspectorResource.h
+++ b/WebCore/inspector/InspectorResource.h
@@ -33,8 +33,6 @@
#include "HTTPHeaderMap.h"
#include "KURL.h"
-#include "ScriptObject.h"
-#include "ScriptState.h"
#include "ScriptString.h"
#include <wtf/CurrentTime.h>
@@ -47,8 +45,8 @@ namespace WebCore {
class CachedResource;
class DocumentLoader;
- class InspectorFrontend;
class Frame;
+ class RemoteInspectorFrontend;
class ResourceLoadTiming;
class ResourceRequest;
class ResourceResponse;
@@ -78,8 +76,8 @@ namespace WebCore {
~InspectorResource();
PassRefPtr<InspectorResource> appendRedirect(unsigned long identifier, const KURL& redirectURL);
- void updateScriptObject(InspectorFrontend* frontend);
- void releaseScriptObject(InspectorFrontend* frontend);
+ void updateScriptObject(RemoteInspectorFrontend* frontend);
+ void releaseScriptObject(RemoteInspectorFrontend* frontend);
void updateRequest(const ResourceRequest&);
void updateResponse(const ResourceResponse&);
@@ -151,8 +149,6 @@ namespace WebCore {
Type cachedResourceType() const;
CachedResource* cachedResource() const;
- ScriptObject buildObjectForTiming(InspectorFrontend*, ResourceLoadTiming*);
-
unsigned long m_identifier;
RefPtr<DocumentLoader> m_loader;
RefPtr<Frame> m_frame;
diff --git a/WebCore/inspector/InspectorStorageAgent.cpp b/WebCore/inspector/InspectorStorageAgent.cpp
new file mode 100644
index 0000000..f95b392
--- /dev/null
+++ b/WebCore/inspector/InspectorStorageAgent.cpp
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#include "InspectorStorageAgent.h"
+
+#if ENABLE(INSPECTOR) && ENABLE(DATABASE)
+
+#include "Database.h"
+#include "ExceptionCode.h"
+#include "InspectorValues.h"
+#include "SQLError.h"
+#include "SQLStatementCallback.h"
+#include "SQLStatementErrorCallback.h"
+#include "SQLResultSetRowList.h"
+#include "SQLTransaction.h"
+#include "SQLTransactionCallback.h"
+#include "SQLTransactionErrorCallback.h"
+#include "SQLValue.h"
+#include "RemoteInspectorFrontend.h"
+#include "VoidCallback.h"
+
+#include <wtf/Vector.h>
+
+namespace WebCore {
+
+namespace {
+
+long lastTransactionId = 0;
+
+void reportTransactionFailed(InspectorStorageAgent* agent, long transactionId, SQLError* error)
+{
+ if (!agent->frontend())
+ return;
+ RefPtr<InspectorObject> errorObject = InspectorObject::create();
+ errorObject->setString("message", error->message());
+ errorObject->setNumber("code", error->code());
+ agent->frontend()->sqlTransactionFailed(transactionId, errorObject);
+}
+
+class StatementCallback : public SQLStatementCallback {
+public:
+ static PassRefPtr<StatementCallback> create(long transactionId, PassRefPtr<InspectorStorageAgent> agent)
+ {
+ return adoptRef(new StatementCallback(transactionId, agent));
+ }
+
+ virtual ~StatementCallback() { }
+
+ virtual bool handleEvent(SQLTransaction*, SQLResultSet* resultSet)
+ {
+ if (!m_agent->frontend())
+ return true;
+
+ SQLResultSetRowList* rowList = resultSet->rows();
+
+ RefPtr<InspectorArray> columnNames = InspectorArray::create();
+ const Vector<String>& columns = rowList->columnNames();
+ for (size_t i = 0; i < columns.size(); ++i)
+ columnNames->pushString(columns[i]);
+
+ RefPtr<InspectorArray> values = InspectorArray::create();
+ const Vector<SQLValue>& data = rowList->values();
+ for (size_t i = 0; i < data.size(); ++i) {
+ const SQLValue& value = rowList->values()[i];
+ switch (value.type()) {
+ case SQLValue::StringValue: values->pushString(value.string()); break;
+ case SQLValue::NumberValue: values->pushNumber(value.number()); break;
+ case SQLValue::NullValue: values->push(InspectorValue::null()); break;
+ }
+ }
+ m_agent->frontend()->sqlTransactionSucceeded(m_transactionId, columnNames, values);
+ return true;
+ }
+
+private:
+ StatementCallback(long transactionId, PassRefPtr<InspectorStorageAgent> agent)
+ : m_transactionId(transactionId)
+ , m_agent(agent) { }
+ long m_transactionId;
+ RefPtr<InspectorStorageAgent> m_agent;
+};
+
+class StatementErrorCallback : public SQLStatementErrorCallback {
+public:
+ static PassRefPtr<StatementErrorCallback> create(long transactionId, PassRefPtr<InspectorStorageAgent> agent)
+ {
+ return adoptRef(new StatementErrorCallback(transactionId, agent));
+ }
+
+ virtual ~StatementErrorCallback() { }
+
+ virtual bool handleEvent(SQLTransaction*, SQLError* error)
+ {
+ reportTransactionFailed(m_agent.get(), m_transactionId, error);
+ return true;
+ }
+
+private:
+ StatementErrorCallback(long transactionId, RefPtr<InspectorStorageAgent> agent)
+ : m_transactionId(transactionId)
+ , m_agent(agent) { }
+ long m_transactionId;
+ RefPtr<InspectorStorageAgent> m_agent;
+};
+
+class TransactionCallback : public SQLTransactionCallback {
+public:
+ static PassRefPtr<TransactionCallback> create(const String& sqlStatement, long transactionId, PassRefPtr<InspectorStorageAgent> agent)
+ {
+ return adoptRef(new TransactionCallback(sqlStatement, transactionId, agent));
+ }
+
+ virtual ~TransactionCallback() { }
+
+ virtual bool handleEvent(SQLTransaction* transaction)
+ {
+ if (!m_agent->frontend())
+ return true;
+
+ Vector<SQLValue> sqlValues;
+ RefPtr<SQLStatementCallback> callback(StatementCallback::create(m_transactionId, m_agent));
+ RefPtr<SQLStatementErrorCallback> errorCallback(StatementErrorCallback::create(m_transactionId, m_agent));
+ ExceptionCode ec = 0;
+ transaction->executeSQL(m_sqlStatement, sqlValues, callback.release(), errorCallback.release(), ec);
+ return true;
+ }
+private:
+ TransactionCallback(const String& sqlStatement, long transactionId, PassRefPtr<InspectorStorageAgent> agent)
+ : m_sqlStatement(sqlStatement)
+ , m_transactionId(transactionId)
+ , m_agent(agent) { }
+ String m_sqlStatement;
+ long m_transactionId;
+ RefPtr<InspectorStorageAgent> m_agent;
+};
+
+class TransactionErrorCallback : public SQLTransactionErrorCallback {
+public:
+ static PassRefPtr<TransactionErrorCallback> create(long transactionId, PassRefPtr<InspectorStorageAgent> agent)
+ {
+ return adoptRef(new TransactionErrorCallback(transactionId, agent));
+ }
+
+ virtual ~TransactionErrorCallback() { }
+
+ virtual bool handleEvent(SQLError* error)
+ {
+ reportTransactionFailed(m_agent.get(), m_transactionId, error);
+ return true;
+ }
+private:
+ TransactionErrorCallback(long transactionId, PassRefPtr<InspectorStorageAgent> agent)
+ : m_transactionId(transactionId)
+ , m_agent(agent) { }
+ long m_transactionId;
+ RefPtr<InspectorStorageAgent> m_agent;
+};
+
+class TransactionSuccessCallback : public VoidCallback {
+public:
+ static PassRefPtr<TransactionSuccessCallback> create()
+ {
+ return adoptRef(new TransactionSuccessCallback());
+ }
+
+ virtual ~TransactionSuccessCallback() { }
+
+ virtual void handleEvent() { }
+
+private:
+ TransactionSuccessCallback() { }
+};
+
+} // namespace
+
+InspectorStorageAgent::InspectorStorageAgent(RemoteInspectorFrontend* frontend)
+ : m_frontend(frontend)
+{
+}
+
+InspectorStorageAgent::~InspectorStorageAgent()
+{
+}
+
+long InspectorStorageAgent::executeSQL(Database* database, const String& query)
+{
+ long transactionId = ++lastTransactionId;
+ RefPtr<SQLTransactionCallback> callback(TransactionCallback::create(query, transactionId, this));
+ RefPtr<SQLTransactionErrorCallback> errorCallback(TransactionErrorCallback::create(transactionId, this));
+ RefPtr<VoidCallback> successCallback(TransactionSuccessCallback::create());
+ database->transaction(callback.release(), errorCallback.release(), successCallback.release());
+ return transactionId;
+}
+
+void InspectorStorageAgent::clearFrontend()
+{
+ m_frontend = 0;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR) && ENABLE(DATABASE)
diff --git a/WebCore/inspector/InspectorStorageAgent.h b/WebCore/inspector/InspectorStorageAgent.h
new file mode 100644
index 0000000..b47e0d3
--- /dev/null
+++ b/WebCore/inspector/InspectorStorageAgent.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef InspectorStorageAgent_h
+#define InspectorStorageAgent_h
+
+#include "PlatformString.h"
+#include "wtf/PassRefPtr.h"
+
+namespace WebCore {
+
+class Database;
+class RemoteInspectorFrontend;
+
+class InspectorStorageAgent : public RefCounted<InspectorStorageAgent> {
+public:
+ static PassRefPtr<InspectorStorageAgent> create(RemoteInspectorFrontend* frontend)
+ {
+ return adoptRef(new InspectorStorageAgent(frontend));
+ }
+
+ virtual ~InspectorStorageAgent();
+
+ long executeSQL(Database*, const String& query);
+
+ RemoteInspectorFrontend* frontend() { return m_frontend; }
+ void clearFrontend();
+
+private:
+ InspectorStorageAgent(RemoteInspectorFrontend*);
+
+ RemoteInspectorFrontend* m_frontend;
+};
+
+} // namespace WebCore
+
+#endif // !defined(InspectorStorageAgent_h)
diff --git a/WebCore/inspector/InspectorValues.cpp b/WebCore/inspector/InspectorValues.cpp
index d488b50..dad84ac 100644
--- a/WebCore/inspector/InspectorValues.cpp
+++ b/WebCore/inspector/InspectorValues.cpp
@@ -494,6 +494,11 @@ bool InspectorValue::asNumber(unsigned long*) const
return false;
}
+bool InspectorValue::asNumber(unsigned int*) const
+{
+ return false;
+}
+
bool InspectorValue::asString(String*) const
{
return false;
@@ -566,6 +571,13 @@ bool InspectorBasicValue::asNumber(unsigned long* output) const
return true;
}
+bool InspectorBasicValue::asNumber(unsigned int* output) const
+{
+ if (type() != TypeDouble)
+ return false;
+ *output = static_cast<unsigned int>(m_doubleValue);
+ return true;
+}
void InspectorBasicValue::writeJSON(Vector<UChar>* output) const
{
diff --git a/WebCore/inspector/InspectorValues.h b/WebCore/inspector/InspectorValues.h
index 940bab9..f6556d7 100644
--- a/WebCore/inspector/InspectorValues.h
+++ b/WebCore/inspector/InspectorValues.h
@@ -36,6 +36,7 @@
#include "PlatformString.h"
#include "StringHash.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
@@ -44,7 +45,6 @@ namespace WebCore {
class InspectorArray;
class InspectorObject;
-class String;
class InspectorValue : public RefCounted<InspectorValue> {
public:
@@ -71,6 +71,7 @@ public:
virtual bool asNumber(double* output) const;
virtual bool asNumber(long* output) const;
virtual bool asNumber(unsigned long* output) const;
+ virtual bool asNumber(unsigned int* output) const;
virtual bool asString(String* output) const;
virtual PassRefPtr<InspectorObject> asObject();
virtual PassRefPtr<InspectorArray> asArray();
@@ -109,6 +110,7 @@ public:
virtual bool asNumber(double* output) const;
virtual bool asNumber(long* output) const;
virtual bool asNumber(unsigned long* output) const;
+ virtual bool asNumber(unsigned int* output) const;
virtual void writeJSON(Vector<UChar>* output) const;
diff --git a/WebCore/inspector/ScriptDebugListener.h b/WebCore/inspector/ScriptDebugListener.h
index 539b000..5973402 100644
--- a/WebCore/inspector/ScriptDebugListener.h
+++ b/WebCore/inspector/ScriptDebugListener.h
@@ -33,11 +33,10 @@
#if ENABLE(JAVASCRIPT_DEBUGGER)
#include "ScriptState.h"
+#include <wtf/Forward.h>
namespace WebCore {
-class String;
-
enum ScriptWorldType {
MAIN_WORLD = 0,
EXTENSIONS_WORLD
diff --git a/WebCore/inspector/TimelineRecordFactory.cpp b/WebCore/inspector/TimelineRecordFactory.cpp
index 8b4a97f..ad9fdec 100644
--- a/WebCore/inspector/TimelineRecordFactory.cpp
+++ b/WebCore/inspector/TimelineRecordFactory.cpp
@@ -34,12 +34,10 @@
#if ENABLE(INSPECTOR)
#include "Event.h"
-#include "InspectorFrontend.h"
#include "InspectorValues.h"
#include "IntRect.h"
#include "ResourceRequest.h"
#include "ResourceResponse.h"
-#include "ScriptArray.h"
#include "ScriptCallStack.h"
namespace WebCore {
diff --git a/WebCore/inspector/front-end/ApplicationCacheItemsView.js b/WebCore/inspector/front-end/ApplicationCacheItemsView.js
index 029f83b..f450938 100644
--- a/WebCore/inspector/front-end/ApplicationCacheItemsView.js
+++ b/WebCore/inspector/front-end/ApplicationCacheItemsView.js
@@ -41,12 +41,14 @@ WebInspector.ApplicationCacheItemsView = function(treeElement, appcacheDomain)
this.refreshButton = new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"), "refresh-storage-status-bar-item");
this.refreshButton.addEventListener("click", this._refreshButtonClicked.bind(this), false);
- this.connectivityIcon = document.createElement("img");
- this.connectivityIcon.className = "storage-application-cache-connectivity-icon";
- this.connectivityIcon.src = "";
- this.connectivityMessage = document.createElement("span");
- this.connectivityMessage.className = "storage-application-cache-connectivity";
- this.connectivityMessage.textContent = "";
+ if (Preferences.onlineDetectionEnabled) {
+ this.connectivityIcon = document.createElement("img");
+ this.connectivityIcon.className = "storage-application-cache-connectivity-icon";
+ this.connectivityIcon.src = "";
+ this.connectivityMessage = document.createElement("span");
+ this.connectivityMessage.className = "storage-application-cache-connectivity";
+ this.connectivityMessage.textContent = "";
+ }
this.divider = document.createElement("span");
this.divider.className = "status-bar-item status-bar-divider";
@@ -72,11 +74,18 @@ WebInspector.ApplicationCacheItemsView = function(treeElement, appcacheDomain)
WebInspector.ApplicationCacheItemsView.prototype = {
get statusBarItems()
{
- return [
- this.refreshButton.element, this.deleteButton.element,
- this.connectivityIcon, this.connectivityMessage, this.divider,
- this.statusIcon, this.statusMessage
- ];
+ if (Preferences.onlineDetectionEnabled) {
+ return [
+ this.refreshButton.element, this.deleteButton.element,
+ this.connectivityIcon, this.connectivityMessage, this.divider,
+ this.statusIcon, this.statusMessage
+ ];
+ } else {
+ return [
+ this.refreshButton.element, this.deleteButton.element, this.divider,
+ this.statusIcon, this.statusMessage
+ ];
+ }
},
show: function(parentElement)
@@ -114,12 +123,14 @@ WebInspector.ApplicationCacheItemsView.prototype = {
updateNetworkState: function(isNowOnline)
{
- if (isNowOnline) {
- this.connectivityIcon.src = "Images/successGreenDot.png";
- this.connectivityMessage.textContent = WebInspector.UIString("Online");
- } else {
- this.connectivityIcon.src = "Images/errorRedDot.png";
- this.connectivityMessage.textContent = WebInspector.UIString("Offline");
+ if (Preferences.onlineDetectionEnabled) {
+ if (isNowOnline) {
+ this.connectivityIcon.src = "Images/successGreenDot.png";
+ this.connectivityMessage.textContent = WebInspector.UIString("Online");
+ } else {
+ this.connectivityIcon.src = "Images/errorRedDot.png";
+ this.connectivityMessage.textContent = WebInspector.UIString("Offline");
+ }
}
},
diff --git a/WebCore/inspector/front-end/BreakpointManager.js b/WebCore/inspector/front-end/BreakpointManager.js
index 709a9c2..21fa6a4 100644
--- a/WebCore/inspector/front-end/BreakpointManager.js
+++ b/WebCore/inspector/front-end/BreakpointManager.js
@@ -213,4 +213,3 @@ WebInspector.Breakpoint.prototype = {
WebInspector.Breakpoint.prototype.__proto__ = WebInspector.Object.prototype;
-WebInspector.didSetBreakpoint = WebInspector.Callback.processCallback;
diff --git a/WebCore/inspector/front-end/Callback.js b/WebCore/inspector/front-end/Callback.js
index 8ae7f95..d8163fe 100644
--- a/WebCore/inspector/front-end/Callback.js
+++ b/WebCore/inspector/front-end/Callback.js
@@ -42,15 +42,21 @@ WebInspector.Callback.prototype = {
return callbackId;
},
- processCallback: function(callbackId, opt_vararg)
+ processResponse: function(callbackId, opt_vararg)
{
var args = Array.prototype.slice.call(arguments, 1);
var callback = this._callbacks[callbackId];
callback.apply(null, args);
delete this._callbacks[callbackId];
+ },
+
+ removeResponseCallbackEntry: function(callbackId)
+ {
+ delete this._callbacks[callbackId];
}
}
WebInspector.Callback._INSTANCE = new WebInspector.Callback();
WebInspector.Callback.wrap = WebInspector.Callback._INSTANCE.wrap.bind(WebInspector.Callback._INSTANCE);
-WebInspector.Callback.processCallback = WebInspector.Callback._INSTANCE.processCallback.bind(WebInspector.Callback._INSTANCE);
+WebInspector.processResponse = WebInspector.Callback._INSTANCE.processResponse.bind(WebInspector.Callback._INSTANCE);
+WebInspector.removeResponseCallbackEntry = WebInspector.Callback._INSTANCE.removeResponseCallbackEntry.bind(WebInspector.Callback._INSTANCE);
diff --git a/WebCore/inspector/front-end/ConsoleView.js b/WebCore/inspector/front-end/ConsoleView.js
index e16c89e..6a4e0d3 100644
--- a/WebCore/inspector/front-end/ConsoleView.js
+++ b/WebCore/inspector/front-end/ConsoleView.js
@@ -1128,4 +1128,3 @@ WebInspector.ConsoleGroup.prototype = {
}
}
-WebInspector.didClearConsoleMessages = WebInspector.Callback.processCallback;
diff --git a/WebCore/inspector/front-end/DOMAgent.js b/WebCore/inspector/front-end/DOMAgent.js
index bcbe91e..c41d038 100644
--- a/WebCore/inspector/front-end/DOMAgent.js
+++ b/WebCore/inspector/front-end/DOMAgent.js
@@ -681,29 +681,3 @@ WebInspector.childNodeRemoved = function()
this.domAgent._childNodeRemoved.apply(this.domAgent, arguments);
}
-WebInspector.didGetApplicationCaches = WebInspector.Callback.processCallback;
-WebInspector.didGetCookies = WebInspector.Callback.processCallback;
-WebInspector.didGetChildNodes = WebInspector.Callback.processCallback;
-WebInspector.didPerformSearch = WebInspector.Callback.processCallback;
-WebInspector.didApplyDomChange = WebInspector.Callback.processCallback;
-WebInspector.didRemoveAttribute = WebInspector.Callback.processCallback;
-WebInspector.didSetTextNodeValue = WebInspector.Callback.processCallback;
-WebInspector.didRemoveNode = WebInspector.Callback.processCallback;
-WebInspector.didChangeTagName = WebInspector.Callback.processCallback;
-WebInspector.didGetOuterHTML = WebInspector.Callback.processCallback;
-WebInspector.didSetOuterHTML = WebInspector.Callback.processCallback;
-WebInspector.didPushNodeByPathToFrontend = WebInspector.Callback.processCallback;
-WebInspector.didGetEventListenersForNode = WebInspector.Callback.processCallback;
-
-WebInspector.didGetStyles = WebInspector.Callback.processCallback;
-WebInspector.didGetAllStyles = WebInspector.Callback.processCallback;
-WebInspector.didGetStyleSheet = WebInspector.Callback.processCallback;
-WebInspector.didGetRuleRanges = WebInspector.Callback.processCallback;
-WebInspector.didGetInlineStyle = WebInspector.Callback.processCallback;
-WebInspector.didGetComputedStyle = WebInspector.Callback.processCallback;
-WebInspector.didApplyStyleText = WebInspector.Callback.processCallback;
-WebInspector.didSetStyleText = WebInspector.Callback.processCallback;
-WebInspector.didSetStyleProperty = WebInspector.Callback.processCallback;
-WebInspector.didToggleStyleEnabled = WebInspector.Callback.processCallback;
-WebInspector.didSetRuleSelector = WebInspector.Callback.processCallback;
-WebInspector.didAddRule = WebInspector.Callback.processCallback;
diff --git a/WebCore/inspector/front-end/DOMStorage.js b/WebCore/inspector/front-end/DOMStorage.js
index c5f658d..5c28e29 100644
--- a/WebCore/inspector/front-end/DOMStorage.js
+++ b/WebCore/inspector/front-end/DOMStorage.js
@@ -73,6 +73,3 @@ WebInspector.DOMStorage.prototype = {
}
}
-WebInspector.didGetDOMStorageEntries = WebInspector.Callback.processCallback;
-WebInspector.didSetDOMStorageItem = WebInspector.Callback.processCallback;
-WebInspector.didRemoveDOMStorageItem = WebInspector.Callback.processCallback;
diff --git a/WebCore/inspector/front-end/Database.js b/WebCore/inspector/front-end/Database.js
index a0dc9ca..45b7a0e 100644
--- a/WebCore/inspector/front-end/Database.js
+++ b/WebCore/inspector/front-end/Database.js
@@ -34,6 +34,9 @@ WebInspector.Database = function(id, domain, name, version)
this._version = version;
}
+WebInspector.Database.successCallbacks = {};
+WebInspector.Database.errorCallbacks = {};
+
WebInspector.Database.prototype = {
get id()
{
@@ -87,17 +90,33 @@ WebInspector.Database.prototype = {
executeSql: function(query, onSuccess, onError)
{
- function callback(result)
+ function callback(success, transactionId)
{
- if (!(result instanceof Array)) {
- onError(result);
+ if (!success) {
+ onError(WebInspector.UIString("Database not found."));
return;
}
- onSuccess(result);
+ WebInspector.Database.successCallbacks[transactionId] = onSuccess;
+ WebInspector.Database.errorCallbacks[transactionId] = onError;
}
- // FIXME: execute the query in the frame the DB comes from.
- InjectedScriptAccess.getDefault().executeSql(this._id, query, callback);
+ InspectorBackend.executeSQL(WebInspector.Callback.wrap(callback), this._id, query);
}
}
-WebInspector.didGetDatabaseTableNames = WebInspector.Callback.processCallback;
+WebInspector.sqlTransactionSucceeded = function(transactionId, columnNames, values)
+{
+ var callback = WebInspector.Database.successCallbacks[transactionId];
+ if (!callback)
+ return;
+ delete WebInspector.Database.successCallbacks[transactionId];
+ callback(columnNames, values);
+}
+
+WebInspector.sqlTransactionFailed = function(transactionId, errorObj)
+{
+ var callback = WebInspector.Database.errorCallbacks[transactionId];
+ if (!callback)
+ return;
+ delete WebInspector.Database.errorCallbacks[transactionId];
+ callback(errorObj);
+}
diff --git a/WebCore/inspector/front-end/DatabaseQueryView.js b/WebCore/inspector/front-end/DatabaseQueryView.js
index 38c8df4..a179eaa 100644
--- a/WebCore/inspector/front-end/DatabaseQueryView.js
+++ b/WebCore/inspector/front-end/DatabaseQueryView.js
@@ -137,9 +137,9 @@ WebInspector.DatabaseQueryView.prototype = {
this.database.executeSql(query, this._queryFinished.bind(this, query), this._queryError.bind(this, query));
},
- _queryFinished: function(query, result)
+ _queryFinished: function(query, columnNames, values)
{
- var dataGrid = WebInspector.panels.storage.dataGridForResult(result);
+ var dataGrid = WebInspector.panels.storage.dataGridForResult(columnNames, values);
var trimmedQuery = query.trim();
if (dataGrid) {
@@ -154,7 +154,7 @@ WebInspector.DatabaseQueryView.prototype = {
_queryError: function(query, error)
{
- if (error.code == 1)
+ if (error.message)
var message = error.message;
else if (error.code == 2)
var message = WebInspector.UIString("Database no longer has expected version.");
diff --git a/WebCore/inspector/front-end/DatabaseTableView.js b/WebCore/inspector/front-end/DatabaseTableView.js
index cd66ab7..9e6d374 100644
--- a/WebCore/inspector/front-end/DatabaseTableView.js
+++ b/WebCore/inspector/front-end/DatabaseTableView.js
@@ -54,11 +54,11 @@ WebInspector.DatabaseTableView.prototype = {
this.database.executeSql("SELECT * FROM " + this.tableName, this._queryFinished.bind(this), this._queryError.bind(this));
},
- _queryFinished: function(result)
+ _queryFinished: function(columnNames, values)
{
this.element.removeChildren();
- var dataGrid = WebInspector.panels.storage.dataGridForResult(result);
+ var dataGrid = WebInspector.panels.storage.dataGridForResult(columnNames, values);
if (!dataGrid) {
var emptyMsgElement = document.createElement("div");
emptyMsgElement.className = "storage-table-empty";
diff --git a/WebCore/inspector/front-end/ElementsPanel.js b/WebCore/inspector/front-end/ElementsPanel.js
index 09a84f7..6713ddc 100644
--- a/WebCore/inspector/front-end/ElementsPanel.js
+++ b/WebCore/inspector/front-end/ElementsPanel.js
@@ -179,12 +179,12 @@ WebInspector.ElementsPanel.prototype = {
this.recentlyModifiedNodes = [];
delete this.currentQuery;
- this.searchCanceled();
},
setDocument: function(inspectedRootDocument)
{
this.reset();
+ this.searchCanceled();
if (!inspectedRootDocument)
return;
diff --git a/WebCore/inspector/front-end/ElementsTreeOutline.js b/WebCore/inspector/front-end/ElementsTreeOutline.js
index 3cd22ae..87d85c1 100644
--- a/WebCore/inspector/front-end/ElementsTreeOutline.js
+++ b/WebCore/inspector/front-end/ElementsTreeOutline.js
@@ -683,7 +683,7 @@ WebInspector.ElementsTreeElement.prototype = {
return;
if (this.treeOutline.showInElementsPanelEnabled) {
- WebInspector.showElementsPanel();
+ WebInspector.showPanel("elements");
WebInspector.panels.elements.focusedDOMNode = this.representedObject;
}
diff --git a/WebCore/inspector/front-end/ExtensionServer.js b/WebCore/inspector/front-end/ExtensionServer.js
index 2d2eab1..2abe1db 100644
--- a/WebCore/inspector/front-end/ExtensionServer.js
+++ b/WebCore/inspector/front-end/ExtensionServer.js
@@ -213,7 +213,7 @@ WebInspector.ExtensionServer.prototype = {
if (!resource)
return this._status.E_NOTFOUND(typeof id + ": " + id);
WebInspector.panels.resources.showResource(resource, message.line);
- WebInspector.showResourcesPanel();
+ WebInspector.showPanel("resources");
},
_dispatchCallback: function(requestId, port, result)
@@ -317,3 +317,5 @@ WebInspector.addExtensions = function(extensions)
{
WebInspector.extensionServer._addExtensions(extensions);
}
+
+WebInspector.extensionServer = new WebInspector.ExtensionServer();
diff --git a/WebCore/inspector/front-end/InjectedScript.js b/WebCore/inspector/front-end/InjectedScript.js
index 3a114c0..b8bf9f2 100644
--- a/WebCore/inspector/front-end/InjectedScript.js
+++ b/WebCore/inspector/front-end/InjectedScript.js
@@ -472,45 +472,6 @@ InjectedScript.CallFrameProxy.prototype = {
}
}
-InjectedScript.executeSql = function(callId, databaseId, query)
-{
- function successCallback(tx, result)
- {
- var rows = result.rows;
- var result = [];
- var length = rows.length;
- for (var i = 0; i < length; ++i) {
- var data = {};
- result.push(data);
- var row = rows.item(i);
- for (var columnIdentifier in row) {
- // FIXME: (Bug 19439) We should specially format SQL NULL here
- // (which is represented by JavaScript null here, and turned
- // into the string "null" by the String() function).
- var text = row[columnIdentifier];
- data[columnIdentifier] = String(text);
- }
- }
- InjectedScriptHost.reportDidDispatchOnInjectedScript(callId, result, false);
- }
-
- function errorCallback(tx, error)
- {
- InjectedScriptHost.reportDidDispatchOnInjectedScript(callId, error, false);
- }
-
- function queryTransaction(tx)
- {
- tx.executeSql(query, null, successCallback, errorCallback);
- }
-
- var database = InjectedScriptHost.databaseForId(databaseId);
- if (!database)
- errorCallback(null, { code : 2 }); // Return as unexpected version.
- database.transaction(queryTransaction, errorCallback);
- return true;
-}
-
InjectedScript._isDefined = function(object)
{
return object || InjectedScript._isHTMLAllCollection(object);
diff --git a/WebCore/inspector/front-end/InjectedScriptAccess.js b/WebCore/inspector/front-end/InjectedScriptAccess.js
index 59aa70c..b5aa9c7 100644
--- a/WebCore/inspector/front-end/InjectedScriptAccess.js
+++ b/WebCore/inspector/front-end/InjectedScriptAccess.js
@@ -66,7 +66,7 @@ InjectedScriptAccess._installHandler = function(methodName, async)
}
var callId = WebInspector.Callback.wrap(myCallback);
- InspectorBackend.dispatchOnInjectedScript(callId, this._injectedScriptId, methodName, argsString, !!async);
+ InspectorBackend.dispatchOnInjectedScript(callId, this._injectedScriptId, methodName, argsString);
};
}
@@ -84,9 +84,3 @@ InjectedScriptAccess._installHandler("getPrototypes");
InjectedScriptAccess._installHandler("openInInspectedWindow");
InjectedScriptAccess._installHandler("pushNodeToFrontend");
InjectedScriptAccess._installHandler("setPropertyValue");
-
-// Some methods can't run synchronously even on the injected script side (such as DB transactions).
-// Mark them as asynchronous here.
-InjectedScriptAccess._installHandler("executeSql", true);
-
-WebInspector.didDispatchOnInjectedScript = WebInspector.Callback.processCallback;
diff --git a/WebCore/inspector/front-end/InspectorBackendStub.js b/WebCore/inspector/front-end/InspectorBackendStub.js
index 7cfc8a1..c87cb81 100644
--- a/WebCore/inspector/front-end/InspectorBackendStub.js
+++ b/WebCore/inspector/front-end/InspectorBackendStub.js
@@ -46,6 +46,7 @@ WebInspector.InspectorBackendStub = function()
this._registerDelegate("enableResourceTracking");
this._registerDelegate("enableSearchingForNode");
this._registerDelegate("enableTimeline");
+ this._registerDelegate("getApplicationCaches");
this._registerDelegate("getChildNodes");
this._registerDelegate("getCookies");
this._registerDelegate("getDatabaseTableNames");
@@ -81,6 +82,7 @@ WebInspector.InspectorBackendStub = function()
this._registerDelegate("stopTimelineProfiler");
this._registerDelegate("storeLastActivePanel");
this._registerDelegate("takeHeapSnapshot");
+ this._registerDelegate("getProfilerLogLines");
this._registerDelegate("getAllStyles");
this._registerDelegate("getStyles");
@@ -103,6 +105,7 @@ WebInspector.InspectorBackendStub = function()
this._registerDelegate("removeBreakpoint");
this._registerDelegate("activateBreakpoints");
this._registerDelegate("deactivateBreakpoints");
+ this._registerDelegate("pause");
this._registerDelegate("resume");
this._registerDelegate("stepIntoStatement");
this._registerDelegate("stepOutOfFunction");
@@ -119,10 +122,7 @@ WebInspector.InspectorBackendStub.prototype = {
sendMessageToBackend: function()
{
var message = JSON.stringify(Array.prototype.slice.call(arguments));
- if (WebInspector._paramsObject && "page" in WebInspector._paramsObject)
- WebInspector.socket.send(message);
- else
- InspectorFrontendHost.sendMessageToBackend(message);
+ InspectorFrontendHost.sendMessageToBackend(message);
}
}
diff --git a/WebCore/inspector/front-end/ProfilesPanel.js b/WebCore/inspector/front-end/ProfilesPanel.js
index 911b1da..e5877d9 100644
--- a/WebCore/inspector/front-end/ProfilesPanel.js
+++ b/WebCore/inspector/front-end/ProfilesPanel.js
@@ -627,5 +627,3 @@ WebInspector.ProfileGroupSidebarTreeElement.prototype = {
WebInspector.ProfileGroupSidebarTreeElement.prototype.__proto__ = WebInspector.SidebarTreeElement.prototype;
-WebInspector.didGetProfileHeaders = WebInspector.Callback.processCallback;
-WebInspector.didGetProfile = WebInspector.Callback.processCallback;
diff --git a/WebCore/inspector/front-end/ResourcesPanel.js b/WebCore/inspector/front-end/ResourcesPanel.js
index 4fda07b..9785644 100644
--- a/WebCore/inspector/front-end/ResourcesPanel.js
+++ b/WebCore/inspector/front-end/ResourcesPanel.js
@@ -891,8 +891,6 @@ WebInspector.getResourceContent = function(identifier, callback)
InspectorBackend.getResourceContent(WebInspector.Callback.wrap(callback), identifier);
}
-WebInspector.didGetResourceContent = WebInspector.Callback.processCallback;
-
WebInspector.ResourceTimeCalculator = function(startAtZero)
{
WebInspector.AbstractTimelineCalculator.call(this);
diff --git a/WebCore/inspector/front-end/ScriptView.js b/WebCore/inspector/front-end/ScriptView.js
index 597fd28..5598577 100644
--- a/WebCore/inspector/front-end/ScriptView.js
+++ b/WebCore/inspector/front-end/ScriptView.js
@@ -136,4 +136,3 @@ WebInspector.ScriptView.prototype = {
WebInspector.ScriptView.prototype.__proto__ = WebInspector.View.prototype;
-WebInspector.didGetScriptSource = WebInspector.Callback.processCallback;
diff --git a/WebCore/inspector/front-end/ScriptsPanel.js b/WebCore/inspector/front-end/ScriptsPanel.js
index dff4853..44c1dba 100644
--- a/WebCore/inspector/front-end/ScriptsPanel.js
+++ b/WebCore/inspector/front-end/ScriptsPanel.js
@@ -103,11 +103,11 @@ WebInspector.ScriptsPanel = function()
this.stepOutButton.appendChild(document.createElement("img"));
this.sidebarButtonsElement.appendChild(this.stepOutButton);
- this.toggleBreakpointsButton = new WebInspector.StatusBarButton("", "toggle-breakpoints");
+ this.toggleBreakpointsButton = new WebInspector.StatusBarButton(WebInspector.UIString("Deactivate all breakpoints."), "toggle-breakpoints");
+ // Breakpoints should be activated by default, so emulate a click to toggle on.
+ this.toggleBreakpointsButton.toggled = true;
this.toggleBreakpointsButton.addEventListener("click", this.toggleBreakpointsClicked.bind(this), false);
this.sidebarButtonsElement.appendChild(this.toggleBreakpointsButton.element);
- // Breakpoints should be activated by default, so emulate a click to toggle on.
- this.toggleBreakpointsClicked();
this.debuggerStatusElement = document.createElement("div");
this.debuggerStatusElement.id = "scripts-debugger-status";
@@ -1034,4 +1034,3 @@ WebInspector.ScriptsPanel.prototype = {
WebInspector.ScriptsPanel.prototype.__proto__ = WebInspector.Panel.prototype;
-WebInspector.didEditScriptSource = WebInspector.Callback.processCallback;
diff --git a/WebCore/inspector/front-end/Settings.js b/WebCore/inspector/front-end/Settings.js
index e54acc7..c84ba79 100644
--- a/WebCore/inspector/front-end/Settings.js
+++ b/WebCore/inspector/front-end/Settings.js
@@ -43,6 +43,7 @@ var Preferences = {
debuggerAlwaysEnabled: false,
profilerAlwaysEnabled: false,
auditsPanelEnabled: true,
+ onlineDetectionEnabled: true
}
WebInspector.populateApplicationSettings = function(settingsString)
diff --git a/WebCore/inspector/front-end/StoragePanel.js b/WebCore/inspector/front-end/StoragePanel.js
index 68563de..2d17989 100644
--- a/WebCore/inspector/front-end/StoragePanel.js
+++ b/WebCore/inspector/front-end/StoragePanel.js
@@ -298,32 +298,28 @@ WebInspector.StoragePanel.prototype = {
database.getTableNames(tableNamesCallback);
},
- dataGridForResult: function(rows)
+ dataGridForResult: function(columnNames, values)
{
- if (!rows.length)
+ var numColumns = columnNames.length;
+ if (!numColumns)
return null;
var columns = {};
- var numColumns = 0;
- for (var columnIdentifier in rows[0]) {
+ for (var i = 0; i < columnNames.length; ++i) {
var column = {};
- column.width = columnIdentifier.length;
- column.title = columnIdentifier;
+ column.width = columnNames[i].length;
+ column.title = columnNames[i];
column.sortable = true;
- columns[columnIdentifier] = column;
- ++numColumns;
+ columns[columnNames[i]] = column;
}
var nodes = [];
- var length = rows.length;
- for (var i = 0; i < length; ++i) {
+ for (var i = 0; i < values.length / numColumns; ++i) {
var data = {};
-
- var row = rows[i];
- for (var columnIdentifier in row)
- data[columnIdentifier] = row[columnIdentifier];
+ for (var j = 0; j < columnNames.length; ++j)
+ data[columnNames[j]] = values[numColumns * i + j];
var node = new WebInspector.DataGridNode(data, false);
node.selectable = false;
diff --git a/WebCore/inspector/front-end/inspector.js b/WebCore/inspector/front-end/inspector.js
index 4bb30c7..4e8e633 100644
--- a/WebCore/inspector/front-end/inspector.js
+++ b/WebCore/inspector/front-end/inspector.js
@@ -526,7 +526,6 @@ WebInspector.loaded = function()
document.getElementById("close-button-left").addEventListener("click", this.close, true);
document.getElementById("close-button-right").addEventListener("click", this.close, true);
- this.extensionServer = new WebInspector.ExtensionServer();
this.extensionServer.initExtensions();
InspectorFrontendHost.loaded();
@@ -587,6 +586,11 @@ WebInspector.dispatchMessageFromBackend = function(arguments)
WebInspector.dispatch.apply(this, arguments);
}
+WebInspector.reportProtocolError = function(callId, methodName, errorText)
+{
+ WebInspector.log("InspectorBackend." + methodName + " failed with error text: '" + errorText + "'");
+ WebInspector.removeResponseCallbackEntry(callId);
+}
WebInspector.windowResize = function(event)
{
@@ -687,7 +691,7 @@ WebInspector.documentClick = function(event)
return;
}
- WebInspector.showResourcesPanel();
+ WebInspector.showPanel("resources");
}
if (WebInspector.followLinkTimeout)
@@ -1077,7 +1081,7 @@ WebInspector.elementDragEnd = function(event)
WebInspector.toggleSearchingForNode = function()
{
if (this.panels.elements) {
- this.showElementsPanel();
+ this.showPanel("elements");
this.panels.elements.toggleSearchingForNode();
}
}
@@ -1092,60 +1096,28 @@ WebInspector.showChanges = function()
this.drawer.showView(this.changes);
}
-WebInspector.showElementsPanel = function()
-{
- this.currentPanel = this.panels.elements;
-}
-
-WebInspector.showResourcesPanel = function()
-{
- this.currentPanel = this.panels.resources;
-}
-
-WebInspector.showScriptsPanel = function()
-{
- this.currentPanel = this.panels.scripts;
-}
-
-WebInspector.showTimelinePanel = function()
-{
- this.currentPanel = this.panels.timeline;
-}
-
-WebInspector.showProfilesPanel = function()
-{
- this.currentPanel = this.panels.profiles;
-}
-
-WebInspector.showStoragePanel = function()
-{
- this.currentPanel = this.panels.storage;
-}
-
-WebInspector.showConsolePanel = function()
-{
- this.currentPanel = this.panels.console;
-}
-
-WebInspector.showAuditsPanel = function()
+WebInspector.showPanel = function(panel)
{
- this.currentPanel = this.panels.audits;
+ if (!(panel in this.panels))
+ panel = "elements";
+ this.currentPanel = this.panels[panel];
}
WebInspector.selectDatabase = function(o)
{
- WebInspector.showStoragePanel();
+ WebInspector.showPanel("storage");
WebInspector.panels.storage.selectDatabase(o);
}
WebInspector.selectDOMStorage = function(o)
{
- WebInspector.showStoragePanel();
+ WebInspector.showPanel("storage");
WebInspector.panels.storage.selectDOMStorage(o);
}
-WebInspector.updateResource = function(identifier, payload)
+WebInspector.updateResource = function(payload)
{
+ var identifier = payload.id;
var resource = this.resources[identifier];
if (!resource) {
resource = new WebInspector.Resource(identifier, payload.url);
@@ -1737,7 +1709,7 @@ WebInspector.linkifyStringAsFragment = function(string)
WebInspector.showProfileForURL = function(url)
{
- WebInspector.showProfilesPanel();
+ WebInspector.showPanel("profiles");
WebInspector.panels.profiles.showProfileForURL(url);
}
@@ -1787,6 +1759,9 @@ WebInspector.completeURL = function(baseURL, href)
if (path.charAt(0) !== "/") {
var basePath = match[4] || "/";
path = basePath.substring(0, basePath.lastIndexOf("/")) + "/" + path;
+ } else if (path.length > 1 && path.charAt(1) === "/") {
+ // href starts with "//" which is a full URL with the protocol dropped (use the baseURL protocol).
+ return match[1] + ":" + path;
}
return match[1] + "://" + match[2] + (match[3] ? (":" + match[3]) : "") + path;
}
diff --git a/WebCore/inspector/front-end/utilities.js b/WebCore/inspector/front-end/utilities.js
index d248071..dd3e761 100644
--- a/WebCore/inspector/front-end/utilities.js
+++ b/WebCore/inspector/front-end/utilities.js
@@ -274,7 +274,8 @@ Element.prototype.query = function(query)
Element.prototype.removeChildren = function()
{
- this.innerHTML = "";
+ if (this.firstChild)
+ this.textContent = "";
}
Element.prototype.isInsertionCaretInside = function()
diff --git a/WebCore/loader/CachedResourceClient.h b/WebCore/loader/CachedResourceClient.h
index be3f87e..40a6a06 100644
--- a/WebCore/loader/CachedResourceClient.h
+++ b/WebCore/loader/CachedResourceClient.h
@@ -26,6 +26,7 @@
#define CachedResourceClient_h
#include <wtf/FastAllocBase.h>
+#include <wtf/Forward.h>
#if ENABLE(XBL)
namespace XBL {
@@ -39,7 +40,6 @@ namespace WebCore {
class CachedFont;
class CachedResource;
class CachedImage;
- class String;
class Image;
class IntRect;
class KURL;
diff --git a/WebCore/loader/CrossOriginAccessControl.h b/WebCore/loader/CrossOriginAccessControl.h
index 4a904d6..c44963b 100644
--- a/WebCore/loader/CrossOriginAccessControl.h
+++ b/WebCore/loader/CrossOriginAccessControl.h
@@ -24,12 +24,13 @@
*
*/
+#include <wtf/Forward.h>
+
namespace WebCore {
class HTTPHeaderMap;
class ResourceResponse;
class SecurityOrigin;
- class String;
bool isSimpleCrossOriginAccessRequest(const String& method, const HTTPHeaderMap&);
bool isOnAccessControlSimpleRequestMethodWhitelist(const String&);
diff --git a/WebCore/loader/CrossOriginPreflightResultCache.cpp b/WebCore/loader/CrossOriginPreflightResultCache.cpp
index f0211af..51874d1 100644
--- a/WebCore/loader/CrossOriginPreflightResultCache.cpp
+++ b/WebCore/loader/CrossOriginPreflightResultCache.cpp
@@ -128,7 +128,7 @@ bool CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders(const HTTPHea
HTTPHeaderMap::const_iterator end = requestHeaders.end();
for (HTTPHeaderMap::const_iterator it = requestHeaders.begin(); it != end; ++it) {
if (!m_headers.contains(it->first) && !isOnAccessControlSimpleRequestHeaderWhitelist(it->first, it->second)) {
- errorDescription = "Request header field " + it->first + " is not allowed by Access-Control-Allow-Headers.";
+ errorDescription = "Request header field " + it->first.string() + " is not allowed by Access-Control-Allow-Headers.";
return false;
}
}
diff --git a/WebCore/loader/DocumentLoadTiming.h b/WebCore/loader/DocumentLoadTiming.h
index 71a1dc4..2d4b0fa 100644
--- a/WebCore/loader/DocumentLoadTiming.h
+++ b/WebCore/loader/DocumentLoadTiming.h
@@ -26,11 +26,9 @@
#ifndef DocumentLoadTiming_h
#define DocumentLoadTiming_h
-#include <wtf/Noncopyable.h>
-
namespace WebCore {
-struct DocumentLoadTiming : public Noncopyable {
+struct DocumentLoadTiming {
DocumentLoadTiming()
: navigationStart(0.0)
, unloadEventEnd(0.0)
diff --git a/WebCore/loader/DocumentLoader.h b/WebCore/loader/DocumentLoader.h
index 2bd0761..d9e7581 100644
--- a/WebCore/loader/DocumentLoader.h
+++ b/WebCore/loader/DocumentLoader.h
@@ -211,6 +211,7 @@ namespace WebCore {
void takeMemoryCacheLoadsForClientNotification(Vector<String>& loads);
DocumentLoadTiming* timing() { return &m_documentLoadTiming; }
+ void resetTiming() { m_documentLoadTiming = DocumentLoadTiming(); }
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
ApplicationCacheHost* applicationCacheHost() const { return m_applicationCacheHost.get(); }
diff --git a/WebCore/loader/DocumentThreadableLoader.h b/WebCore/loader/DocumentThreadableLoader.h
index 9800b9a..ebf3a25 100644
--- a/WebCore/loader/DocumentThreadableLoader.h
+++ b/WebCore/loader/DocumentThreadableLoader.h
@@ -34,6 +34,7 @@
#include "FrameLoaderTypes.h"
#include "SubresourceLoaderClient.h"
#include "ThreadableLoader.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -43,7 +44,6 @@ namespace WebCore {
class Document;
class KURL;
class ResourceRequest;
- class String;
class ThreadableLoaderClient;
class DocumentThreadableLoader : public RefCounted<DocumentThreadableLoader>, public ThreadableLoader, private SubresourceLoaderClient {
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index f36aa60..8307c15 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -98,9 +98,9 @@
#include "ScriptController.h"
#include "ScriptSourceCode.h"
#include "ScriptString.h"
-#include "ScriptValue.h"
#include "SecurityOrigin.h"
#include "SegmentedString.h"
+#include "SerializedScriptValue.h"
#include "Settings.h"
#include "TextResourceDecoder.h"
#include "WindowFeatures.h"
@@ -466,8 +466,7 @@ void FrameLoader::stopLoading(UnloadEventPolicy unloadEventPolicy, DatabasePolic
if (m_provisionalDocumentLoader) {
DocumentLoadTiming* timing = m_provisionalDocumentLoader->timing();
ASSERT(timing->navigationStart);
- // FIXME: This fails in Safari (https://bugs.webkit.org/show_bug.cgi?id=42772). Understand why.
- // ASSERT(!timing->unloadEventEnd);
+ ASSERT(!timing->unloadEventEnd);
timing->unloadEventEnd = currentTime();
ASSERT(timing->unloadEventEnd >= timing->navigationStart);
}
@@ -3189,6 +3188,11 @@ void FrameLoader::loadProvisionalItemFromCachedPage()
provisionalLoader->prepareForLoadStart();
m_loadingFromCachedPage = true;
+
+ // Should have timing data from previous time(s) the page was shown.
+ ASSERT(provisionalLoader->timing()->navigationStart);
+ provisionalLoader->resetTiming();
+ provisionalLoader->timing()->navigationStart = currentTime();
provisionalLoader->setCommitted(true);
commitProvisionalLoad();
diff --git a/WebCore/loader/FrameLoaderClient.h b/WebCore/loader/FrameLoaderClient.h
index c7bd456..26a1259 100644
--- a/WebCore/loader/FrameLoaderClient.h
+++ b/WebCore/loader/FrameLoaderClient.h
@@ -75,7 +75,6 @@ namespace WebCore {
class SecurityOrigin;
class SharedBuffer;
class SubstituteData;
- class String;
class Widget;
typedef void (PolicyChecker::*FramePolicyFunction)(PolicyAction);
diff --git a/WebCore/loader/RedirectScheduler.h b/WebCore/loader/RedirectScheduler.h
index e9d04dc..0203e08 100644
--- a/WebCore/loader/RedirectScheduler.h
+++ b/WebCore/loader/RedirectScheduler.h
@@ -33,6 +33,7 @@
#include "Event.h"
#include "Timer.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
@@ -42,7 +43,6 @@ namespace WebCore {
class FormState;
class FormSubmission;
class Frame;
-class String;
struct FrameLoadRequest;
class ScheduledNavigation;
diff --git a/WebCore/loader/SubframeLoader.h b/WebCore/loader/SubframeLoader.h
index 4bdb787..df08870 100644
--- a/WebCore/loader/SubframeLoader.h
+++ b/WebCore/loader/SubframeLoader.h
@@ -40,7 +40,6 @@
namespace WebCore {
-class AtomicString;
class Frame;
class FrameLoaderClient;
class HTMLAppletElement;
diff --git a/WebCore/loader/TextResourceDecoder.cpp b/WebCore/loader/TextResourceDecoder.cpp
index 6d43d77..4002b38 100644
--- a/WebCore/loader/TextResourceDecoder.cpp
+++ b/WebCore/loader/TextResourceDecoder.cpp
@@ -488,7 +488,7 @@ bool TextResourceDecoder::checkForCSSCharset(const char* data, size_t len, bool&
if (pos == dataEnd)
return false;
- int encodingNameLength = pos - dataStart + 1;
+ int encodingNameLength = pos - dataStart;
++pos;
if (!skipWhitespace(pos, dataEnd))
diff --git a/WebCore/loader/appcache/ApplicationCacheGroup.cpp b/WebCore/loader/appcache/ApplicationCacheGroup.cpp
index 395d9ad..3ae8d9f 100644
--- a/WebCore/loader/appcache/ApplicationCacheGroup.cpp
+++ b/WebCore/loader/appcache/ApplicationCacheGroup.cpp
@@ -1079,25 +1079,6 @@ private:
ApplicationCacheGroup* m_cacheGroup;
};
-class OriginQuotaReachedCallbackTimer: public TimerBase {
-public:
- OriginQuotaReachedCallbackTimer(ApplicationCacheGroup* cacheGroup, Frame* frame)
- : m_cacheGroup(cacheGroup)
- , m_frame(frame)
- {
- }
-
-private:
- virtual void fired()
- {
- m_cacheGroup->didReachOriginQuota(m_frame.release());
- delete this;
- }
-
- ApplicationCacheGroup* m_cacheGroup;
- RefPtr<Frame> m_frame;
-};
-
void ApplicationCacheGroup::scheduleReachedMaxAppCacheSizeCallback()
{
ASSERT(isMainThread());
@@ -1108,11 +1089,8 @@ void ApplicationCacheGroup::scheduleReachedMaxAppCacheSizeCallback()
void ApplicationCacheGroup::scheduleReachedOriginQuotaCallback()
{
- ASSERT(isMainThread());
- RefPtr<Frame> frameProtector = m_frame;
- OriginQuotaReachedCallbackTimer* timer = new OriginQuotaReachedCallbackTimer(this, frameProtector.get());
- timer->startOneShot(0);
- // The timer will delete itself once it fires.
+ // FIXME: it might be nice to run this asynchronously, because there is no return value to wait for.
+ didReachOriginQuota(m_frame);
}
class CallCacheListenerTask : public ScriptExecutionContext::Task {
diff --git a/WebCore/loader/appcache/ApplicationCacheStorage.cpp b/WebCore/loader/appcache/ApplicationCacheStorage.cpp
index ec83911..5624809 100644
--- a/WebCore/loader/appcache/ApplicationCacheStorage.cpp
+++ b/WebCore/loader/appcache/ApplicationCacheStorage.cpp
@@ -518,7 +518,7 @@ bool ApplicationCacheStorage::remainingSizeForOriginExcludingCache(const Securit
bool ApplicationCacheStorage::storeUpdatedQuotaForOrigin(const SecurityOrigin* origin, int64_t quota)
{
- openDatabase(false);
+ openDatabase(true);
if (!m_database.isOpen())
return false;
diff --git a/WebCore/loader/appcache/DOMApplicationCache.h b/WebCore/loader/appcache/DOMApplicationCache.h
index b398756..de0614a 100644
--- a/WebCore/loader/appcache/DOMApplicationCache.h
+++ b/WebCore/loader/appcache/DOMApplicationCache.h
@@ -33,6 +33,7 @@
#include "EventListener.h"
#include "EventNames.h"
#include "EventTarget.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -40,10 +41,8 @@
namespace WebCore {
-class AtomicStringImpl;
class Frame;
class KURL;
-class String;
class DOMApplicationCache : public RefCounted<DOMApplicationCache>, public EventTarget {
public:
diff --git a/WebCore/loader/archive/ArchiveFactory.h b/WebCore/loader/archive/ArchiveFactory.h
index bf1d5c6..c3b9464 100644
--- a/WebCore/loader/archive/ArchiveFactory.h
+++ b/WebCore/loader/archive/ArchiveFactory.h
@@ -31,12 +31,12 @@
#include "Archive.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
class SharedBuffer;
-class String;
class ArchiveFactory {
public:
diff --git a/WebCore/loader/icon/IconDatabaseClient.h b/WebCore/loader/icon/IconDatabaseClient.h
index 1811214..c210d7d 100644
--- a/WebCore/loader/icon/IconDatabaseClient.h
+++ b/WebCore/loader/icon/IconDatabaseClient.h
@@ -29,6 +29,7 @@
#ifndef IconDatabaseClient_h
#define IconDatabaseClient_h
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
// All of these client methods will be called from a non-main thread
@@ -36,8 +37,6 @@
namespace WebCore {
-class String;
-
class IconDatabaseClient : public Noncopyable {
public:
virtual ~IconDatabaseClient() { }
diff --git a/WebCore/manual-tests/css3-background-layer-count.html b/WebCore/manual-tests/css3-background-layer-count.html
deleted file mode 100644
index fc21fd7..0000000
--- a/WebCore/manual-tests/css3-background-layer-count.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>CSS Test: Number of background properties greater than number of background images</title>
- <style type="text/css">
- div
- {
- margin: 10px;
- width: 250px;
- height: 250px;
- border: thick solid black;
- }
- #test
- {
- background-image: url("resources/non-animated.gif"), url("resources/non-animated.gif"), url("resources/non-animated.gif");
- background-position: right bottom, right top, left bottom, left center, right center;
- background-repeat: no-repeat, no-repeat, repeat-x, repeat, repeat-y;
- }
- #reference
- {
- background-image: url("resources/non-animated.gif"), url("resources/non-animated.gif"), url("resources/non-animated.gif");
- background-position: right bottom, right top, left bottom;
- background-repeat: no-repeat, no-repeat, repeat-x;
- }
- </style>
- </head>
- <body>
- <p>Test passes if the contents of the black boxes look exactly the same.</p>
- <table>
- <td>
- <div id="test"></div>
- </td>
- <td>
- <div id="reference"></div>
- </td>
- </table>
- </body>
-</html>
diff --git a/WebCore/manual-tests/system-color-change.html b/WebCore/manual-tests/system-color-change.html
new file mode 100644
index 0000000..d06f242
--- /dev/null
+++ b/WebCore/manual-tests/system-color-change.html
@@ -0,0 +1,7 @@
+<body bgcolor="highlight">
+Change the system highlight color.
+
+On Mac OS X, go into System Preferences and change the Highlight color in the Appearance preference panel.
+
+If the background of this page changes color immediately, the test passed.
+</body>
diff --git a/WebCore/mathml/MathMLElement.cpp b/WebCore/mathml/MathMLElement.cpp
index 30d02da..6088810 100644
--- a/WebCore/mathml/MathMLElement.cpp
+++ b/WebCore/mathml/MathMLElement.cpp
@@ -50,7 +50,10 @@ PassRefPtr<MathMLElement> MathMLElement::create(const QualifiedName& tagName, Do
bool MathMLElement::mapToEntry(const QualifiedName& attrName, MappedAttributeEntry& result) const
{
- if (attrName == MathMLNames::mathcolorAttr || attrName == MathMLNames::mathbackgroundAttr) {
+ if (attrName == mathcolorAttr || attrName == mathbackgroundAttr
+ || attrName == colorAttr || attrName == backgroundAttr
+ || attrName == fontsizeAttr || attrName == fontstyleAttr
+ || attrName == fontweightAttr || attrName == fontfamilyAttr) {
result = eMathML;
return false;
}
@@ -59,15 +62,27 @@ bool MathMLElement::mapToEntry(const QualifiedName& attrName, MappedAttributeEnt
void MathMLElement::parseMappedAttribute(Attribute* attr)
{
- if (attr->name() == MathMLNames::mathbackgroundAttr)
+ if (attr->name() == mathbackgroundAttr)
addCSSProperty(attr, CSSPropertyBackgroundColor, attr->value());
- else if (attr->name() == MathMLNames::mathcolorAttr)
- addCSSProperty(attr, CSSPropertyColor, attr->value());
- else if (attr->name() == MathMLNames::mathsizeAttr) {
+ else if (attr->name() == mathsizeAttr) {
// The following three values of mathsize are handled in WebCore/css/mathml.css
if (attr->value() != "normal" && attr->value() != "small" && attr->value() != "big")
addCSSProperty(attr, CSSPropertyFontSize, attr->value());
- }
+ } else if (attr->name() == mathcolorAttr)
+ addCSSProperty(attr, CSSPropertyColor, attr->value());
+ // FIXME: deprecated attributes that should loose in a conflict with a non deprecated attribute
+ else if (attr->name() == fontsizeAttr)
+ addCSSProperty(attr, CSSPropertyFontSize, attr->value());
+ else if (attr->name() == backgroundAttr)
+ addCSSProperty(attr, CSSPropertyBackgroundColor, attr->value());
+ else if (attr->name() == colorAttr)
+ addCSSProperty(attr, CSSPropertyColor, attr->value());
+ else if (attr->name() == fontstyleAttr)
+ addCSSProperty(attr, CSSPropertyFontStyle, attr->value());
+ else if (attr->name() == fontweightAttr)
+ addCSSProperty(attr, CSSPropertyFontWeight, attr->value());
+ else if (attr->name() == fontfamilyAttr)
+ addCSSProperty(attr, CSSPropertyFontFamily, attr->value());
else
StyledElement::parseMappedAttribute(attr);
}
diff --git a/WebCore/mathml/MathMLInlineContainerElement.cpp b/WebCore/mathml/MathMLInlineContainerElement.cpp
index efc9f8c..8b3f43e 100644
--- a/WebCore/mathml/MathMLInlineContainerElement.cpp
+++ b/WebCore/mathml/MathMLInlineContainerElement.cpp
@@ -32,6 +32,7 @@
#include "MathMLNames.h"
#include "RenderMathMLBlock.h"
+#include "RenderMathMLFenced.h"
#include "RenderMathMLFraction.h"
#include "RenderMathMLRoot.h"
#include "RenderMathMLRow.h"
@@ -53,33 +54,32 @@ PassRefPtr<MathMLInlineContainerElement> MathMLInlineContainerElement::create(co
return adoptRef(new MathMLInlineContainerElement(tagName, document));
}
-RenderObject* MathMLInlineContainerElement::createRenderer(RenderArena* arena, RenderStyle* style)
+RenderObject* MathMLInlineContainerElement::createRenderer(RenderArena* arena, RenderStyle*)
{
- RenderObject* object;
if (hasLocalName(MathMLNames::mrowTag))
- object = new (arena) RenderMathMLRow(this);
+ return new (arena) RenderMathMLRow(this);
else if (hasLocalName(MathMLNames::msubTag))
- object = new (arena) RenderMathMLSubSup(this);
+ return new (arena) RenderMathMLSubSup(this);
else if (hasLocalName(MathMLNames::msupTag))
- object = new (arena) RenderMathMLSubSup(this);
+ return new (arena) RenderMathMLSubSup(this);
else if (hasLocalName(MathMLNames::msubsupTag))
- object = new (arena) RenderMathMLSubSup(this);
+ return new (arena) RenderMathMLSubSup(this);
else if (hasLocalName(MathMLNames::moverTag))
- object = new (arena) RenderMathMLUnderOver(this);
+ return new (arena) RenderMathMLUnderOver(this);
else if (hasLocalName(MathMLNames::munderTag))
- object = new (arena) RenderMathMLUnderOver(this);
+ return new (arena) RenderMathMLUnderOver(this);
else if (hasLocalName(MathMLNames::munderoverTag))
- object = new (arena) RenderMathMLUnderOver(this);
+ return new (arena) RenderMathMLUnderOver(this);
else if (hasLocalName(MathMLNames::mfracTag))
- object = new (arena) RenderMathMLFraction(this);
+ return new (arena) RenderMathMLFraction(this);
else if (hasLocalName(MathMLNames::msqrtTag))
- object = new (arena) RenderMathMLSquareRoot(this);
+ return new (arena) RenderMathMLSquareRoot(this);
else if (hasLocalName(MathMLNames::mrootTag))
- object = new (arena) RenderMathMLRoot(this);
+ return new (arena) RenderMathMLRoot(this);
+ else if (hasLocalName(MathMLNames::mfencedTag))
+ return new (arena) RenderMathMLFenced(this);
else
- object = new (arena) RenderMathMLBlock(this);
- object->setStyle(style);
- return object;
+ return new (arena) RenderMathMLBlock(this);
}
}
diff --git a/WebCore/mathml/MathMLMathElement.cpp b/WebCore/mathml/MathMLMathElement.cpp
index 1b6b18d..6c5c3c6 100644
--- a/WebCore/mathml/MathMLMathElement.cpp
+++ b/WebCore/mathml/MathMLMathElement.cpp
@@ -44,11 +44,9 @@ PassRefPtr<MathMLMathElement> MathMLMathElement::create(const QualifiedName& tag
return adoptRef(new MathMLMathElement(tagName, document));
}
-RenderObject* MathMLMathElement::createRenderer(RenderArena* arena, RenderStyle* style)
+RenderObject* MathMLMathElement::createRenderer(RenderArena* arena, RenderStyle*)
{
- RenderMathMLMath* renderer = new (arena) RenderMathMLMath(this);
- renderer->setStyle(style);
- return renderer;
+ return new (arena) RenderMathMLMath(this);
}
}
diff --git a/WebCore/mathml/MathMLTextElement.cpp b/WebCore/mathml/MathMLTextElement.cpp
index 4135d6c..8f830cb 100644
--- a/WebCore/mathml/MathMLTextElement.cpp
+++ b/WebCore/mathml/MathMLTextElement.cpp
@@ -49,11 +49,8 @@ PassRefPtr<MathMLTextElement> MathMLTextElement::create(const QualifiedName& tag
RenderObject* MathMLTextElement::createRenderer(RenderArena* arena, RenderStyle* style)
{
- if (hasLocalName(MathMLNames::moTag)) {
- RenderObject* object = new (arena) RenderMathMLOperator(this);
- object->setStyle(style);
- return object;
- }
+ if (hasLocalName(MathMLNames::moTag))
+ return new (arena) RenderMathMLOperator(this);
return MathMLElement::createRenderer(arena, style);
}
diff --git a/WebCore/mathml/RenderMathMLFenced.cpp b/WebCore/mathml/RenderMathMLFenced.cpp
new file mode 100644
index 0000000..6c0bb0b
--- /dev/null
+++ b/WebCore/mathml/RenderMathMLFenced.cpp
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2009 Alex Milowski (alex@milowski.com). All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(MATHML)
+
+#include "RenderMathMLFenced.h"
+
+#include "FontSelector.h"
+#include "MathMLNames.h"
+#include "RenderInline.h"
+#include "RenderMathMLOperator.h"
+#include "RenderText.h"
+
+namespace WebCore {
+
+using namespace MathMLNames;
+
+enum Braces { OpeningBraceChar = 0x28, ClosingBraceChar = 0x29 };
+
+RenderMathMLFenced::RenderMathMLFenced(Node* fenced)
+ : RenderMathMLRow(fenced)
+ , m_open(OpeningBraceChar)
+ , m_close(ClosingBraceChar)
+{
+}
+
+void RenderMathMLFenced::updateFromElement()
+{
+ Element* fenced = static_cast<Element*>(node());
+
+ // FIXME: Handle open/close values with more than one character (they should be treated like text).
+ AtomicString openValue = fenced->getAttribute(MathMLNames::openAttr);
+ if (openValue.length() > 0)
+ m_open = openValue[0];
+ AtomicString closeValue = fenced->getAttribute(MathMLNames::closeAttr);
+ if (closeValue.length() > 0)
+ m_close = closeValue[0];
+
+ AtomicString separators = static_cast<Element*>(fenced)->getAttribute(MathMLNames::separatorsAttr);
+ if (!separators.isNull()) {
+ Vector<UChar> characters;
+ for (unsigned int i = 0; i < separators.length(); i++) {
+ if (!isSpaceOrNewline(separators[i]))
+ characters.append(separators[i]);
+ }
+ m_separators = !separators.length() ? 0 : StringImpl::create(characters.data() , characters.size());
+ } else {
+ // The separator defaults to a single comma.
+ m_separators = StringImpl::create(",");
+ }
+
+ if (isEmpty())
+ makeFences();
+}
+
+RefPtr<RenderStyle> RenderMathMLFenced::makeOperatorStyle()
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::create();
+ newStyle->inheritFrom(style());
+ newStyle->setDisplay(INLINE_BLOCK);
+ newStyle->setHeight(Length(100.0, Percent));
+ newStyle->setVerticalAlign(MIDDLE);
+ return newStyle;
+}
+
+void RenderMathMLFenced::makeFences()
+{
+ RenderObject* openFence = new (renderArena()) RenderMathMLOperator(node(), m_open);
+ openFence->setStyle(makeOperatorStyle().release());
+ RenderBlock::addChild(openFence, firstChild());
+ RenderObject* closeFence = new (renderArena()) RenderMathMLOperator(node(), m_close);
+ closeFence->setStyle(makeOperatorStyle().release());
+ RenderBlock::addChild(closeFence);
+}
+
+void RenderMathMLFenced::addChild(RenderObject* child, RenderObject*)
+{
+ // make the fences if the render object is empty
+ if (isEmpty())
+ updateFromElement();
+
+ if (m_separators.get()) {
+ unsigned int count = 0;
+ for (Node* position = child->node(); position; position = position->previousSibling()) {
+ if (position->nodeType() == Node::ELEMENT_NODE)
+ count++;
+ }
+
+ if (count > 1) {
+ UChar separator;
+
+ // Use the last separator if we've run out of specified separators.
+ if ((count - 1) >= m_separators.get()->length())
+ separator = (*m_separators.get())[m_separators.get()->length() - 1];
+ else
+ separator = (*m_separators.get())[count - 1];
+
+ RenderObject* separatorObj = new (renderArena()) RenderMathMLOperator(node(), separator);
+ separatorObj->setStyle(makeOperatorStyle().release());
+ RenderBlock::addChild(separatorObj, lastChild());
+ }
+ }
+
+ // If we have a block, we'll wrap it in an inline-block.
+ if (child->isBlockFlow() && child->style()->display() != INLINE_BLOCK) {
+ // Block objects wrapper.
+
+ RenderBlock* block = new (renderArena()) RenderBlock(node());
+ RefPtr<RenderStyle> newStyle = RenderStyle::create();
+ newStyle->inheritFrom(style());
+ newStyle->setDisplay(INLINE_BLOCK);
+ block->setStyle(newStyle.release());
+
+ RenderBlock::addChild(block, lastChild());
+ block->addChild(child);
+ } else
+ RenderBlock::addChild(child, lastChild());
+}
+
+void RenderMathMLFenced::layout()
+{
+ RenderMathMLRow::layout();
+
+ int width = 0;
+ for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
+ if (current->isBoxModelObject()) {
+ RenderBoxModelObject* box = toRenderBoxModelObject(current);
+ width += box->offsetWidth();
+ }
+ }
+ width++;
+ style()->setWidth(Length(width, Fixed));
+
+ setNeedsLayoutAndPrefWidthsRecalc();
+ markContainingBlocksForLayout();
+ RenderBlock::layout();
+}
+}
+
+#endif
diff --git a/WebCore/mathml/RenderMathMLFenced.h b/WebCore/mathml/RenderMathMLFenced.h
new file mode 100644
index 0000000..63cdaa8
--- /dev/null
+++ b/WebCore/mathml/RenderMathMLFenced.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2009 Alex Milowski (alex@milowski.com). All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RenderMathMLFenced_h
+#define RenderMathMLFenced_h
+
+#if ENABLE(MATHML)
+
+#include "RenderMathMLRow.h"
+
+namespace WebCore {
+
+class RenderMathMLFenced : public RenderMathMLRow {
+public:
+ RenderMathMLFenced(Node *fraction);
+ virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0);
+ virtual void updateFromElement();
+
+protected:
+ virtual void layout();
+
+private:
+ void makeFences();
+ RefPtr<RenderStyle> makeOperatorStyle();
+ UChar m_open;
+ UChar m_close;
+ RefPtr<StringImpl> m_separators;
+};
+
+}
+
+#endif // ENABLE(MATHML)
+
+#endif // RenderMathMLFenced_h
diff --git a/WebCore/mathml/RenderMathMLFraction.cpp b/WebCore/mathml/RenderMathMLFraction.cpp
index cd0681d..72f7298 100644
--- a/WebCore/mathml/RenderMathMLFraction.cpp
+++ b/WebCore/mathml/RenderMathMLFraction.cpp
@@ -122,23 +122,22 @@ void RenderMathMLFraction::addChild(RenderObject* child, RenderObject* beforeChi
void RenderMathMLFraction::layout()
{
updateFromElement();
-
+
// Adjust the fraction line thickness for the zoom
if (lastChild() && lastChild()->isRenderBlock())
- m_lineThickness = m_lineThickness * ceil(gFractionBarWidth * style()->fontSize());
-
+ m_lineThickness = static_cast<int>(m_lineThickness * ceil(gFractionBarWidth * style()->fontSize()));
+
RenderBlock::layout();
-
+
// The row layout can affect the numerator/denominator width.
// FIXME: This is probably only needed if one of the children
// contains an mrow.
setNeedsLayoutAndPrefWidthsRecalc();
markContainingBlocksForLayout();
-
+
RenderBlock::layout();
-
}
-
+
void RenderMathMLFraction::paint(PaintInfo& info, int tx, int ty)
{
RenderMathMLBlock::paint(info, tx, ty);
diff --git a/WebCore/mathml/RenderMathMLOperator.cpp b/WebCore/mathml/RenderMathMLOperator.cpp
index 911c5d2..f9ff630 100644
--- a/WebCore/mathml/RenderMathMLOperator.cpp
+++ b/WebCore/mathml/RenderMathMLOperator.cpp
@@ -38,28 +38,28 @@ namespace WebCore {
using namespace MathMLNames;
RenderMathMLOperator::RenderMathMLOperator(Node* container)
- : RenderMathMLBlock(container),
- m_stretchHeight(0),
- m_operator(0)
+ : RenderMathMLBlock(container)
+ , m_stretchHeight(0)
+ , m_operator(0)
{
}
-
+
RenderMathMLOperator::RenderMathMLOperator(Node* container, UChar operatorChar)
- : RenderMathMLBlock(container),
- m_stretchHeight(0),
- m_operator(operatorChar)
+ : RenderMathMLBlock(container)
+ , m_stretchHeight(0)
+ , m_operator(operatorChar)
{
}
-
+
bool RenderMathMLOperator::isChildAllowed(RenderObject*, RenderStyle*) const
{
return false;
}
-static const float gOperatorSpacer = 0.1;
-static const float gOperatorExpansion = 1.2;
+static const float gOperatorSpacer = 0.1f;
+static const float gOperatorExpansion = 1.2f;
-void RenderMathMLOperator::stretchToHeight(int height)
+void RenderMathMLOperator::stretchToHeight(int height)
{
if (height == m_stretchHeight)
return;
@@ -87,15 +87,20 @@ static struct StretchyCharacter {
UChar extensionGlyph;
UChar bottomGlyph;
UChar middleGlyph;
-} stretchyCharacters[9] = {
-{ 0x28 , 0x239b, 0x239c, 0x239d, 0x0 }, // left parenthesis
-{ 0x29 , 0x239e, 0x239f, 0x23a0, 0x0 }, // right parenthesis
-{ 0x5b , 0x23a1, 0x23a2, 0x23a3, 0x0 }, // left square bracket
-{ 0x5d , 0x23a4, 0x23a5, 0x23a6, 0x0 }, // right square bracket
-{ 0x7b , 0x23a7, 0x23aa, 0x23a9, 0x23a8 }, // left curly bracket
-{ 0x7c , 0x23d0, 0x23d0, 0x23d0, 0x0 }, // vertical bar
-{ 0x7d , 0x23ab, 0x23aa, 0x23ad, 0x23ac }, // right curly bracket
-{ 0x222b, 0x2320, 0x23ae, 0x2321, 0x0 } // integral sign
+} stretchyCharacters[13] = {
+ { 0x28 , 0x239b, 0x239c, 0x239d, 0x0 }, // left parenthesis
+ { 0x29 , 0x239e, 0x239f, 0x23a0, 0x0 }, // right parenthesis
+ { 0x5b , 0x23a1, 0x23a2, 0x23a3, 0x0 }, // left square bracket
+ { 0x2308, 0x23a1, 0x23a2, 0x23a2, 0x0 }, // left ceiling
+ { 0x230a, 0x23a2, 0x23a2, 0x23a3, 0x0 }, // left floor
+ { 0x5d , 0x23a4, 0x23a5, 0x23a6, 0x0 }, // right square bracket
+ { 0x2309, 0x23a4, 0x23a5, 0x23a5, 0x0 }, // right ceiling
+ { 0x230b, 0x23a5, 0x23a5, 0x23a6, 0x0 }, // right floor
+ { 0x7b , 0x23a7, 0x23aa, 0x23a9, 0x23a8 }, // left curly bracket
+ { 0x7c , 0x23d0, 0x23d0, 0x23d0, 0x0 }, // vertical bar
+ { 0x2016, 0x2016, 0x2016, 0x2016, 0x0 }, // double vertical line
+ { 0x7d , 0x23ab, 0x23aa, 0x23ad, 0x23ac }, // right curly bracket
+ { 0x222b, 0x2320, 0x23ae, 0x2321, 0x0 } // integral sign
};
// We stack glyphs using a 14px height with a displayed glyph height
@@ -107,21 +112,24 @@ static struct StretchyCharacter {
//
// All of these settings are represented in the constants below.
+// FIXME: use fractions of style()->fontSize() for proper zooming/resizing.
static const int gGlyphFontSize = 14;
-static const int gGlyphLineHeight = 12;
+static const int gGlyphLineHeight = 11;
static const int gMinimumStretchHeight = 24;
static const int gGlyphHeight = 10;
-static const int gMiddleGlyphTopAdjust = -2;
-static const int gBottomGlyphTopAdjust = -4;
-static const float gMinimumRatioForStretch = 0.10;
+static const int gTopGlyphTopAdjust = 1;
+static const int gMiddleGlyphTopAdjust = -1;
+static const int gBottomGlyphTopAdjust = -3;
+static const float gMinimumRatioForStretch = 0.10f;
void RenderMathMLOperator::updateFromElement()
{
- // clear our children
- while (firstChild()) {
- RenderObject* obj = firstChild();
- removeChild(obj);
- }
+ // Destroy our current children
+ children()->destroyLeftoverChildren();
+
+ // Since we share a node with our children, destroying our children will set our node's
+ // renderer to 0, so we need to re-set it back to this.
+ node()->setRenderer(this);
// If the operator is fixed, it will be contained in m_operator
UChar firstChar = m_operator;
@@ -140,7 +148,7 @@ void RenderMathMLOperator::updateFromElement()
String opText = mo->textContent();
for (unsigned int i = 0; !firstChar && i < opText.length(); i++) {
if (!isSpaceOrNewline(opText[i]))
- firstChar = opText[i];
+ firstChar = opText[i];
}
}
}
@@ -175,22 +183,22 @@ void RenderMathMLOperator::updateFromElement()
RefPtr<RenderStyle> newStyle = RenderStyle::create();
newStyle->inheritFrom(style());
newStyle->setDisplay(INLINE_BLOCK);
-
+
// Check for a stretchable character that is under the minimum height and use the
// font size to adjust the glyph size.
int currentFontSize = style()->fontSize();
if (!stretchDisabled && isStretchy && m_stretchHeight > 0 && m_stretchHeight <= gMinimumStretchHeight && m_stretchHeight > currentFontSize) {
- FontDescription* desc = new FontDescription();
- desc->setIsAbsoluteSize(true);
- desc->setSpecifiedSize(m_stretchHeight);
- desc->setComputedSize(m_stretchHeight);
- newStyle->setFontDescription(*desc);
+ FontDescription desc;
+ desc.setIsAbsoluteSize(true);
+ desc.setSpecifiedSize(m_stretchHeight);
+ desc.setComputedSize(m_stretchHeight);
+ newStyle->setFontDescription(desc);
newStyle->font().update(newStyle->font().fontSelector());
newStyle->setVerticalAlign(BASELINE);
m_isCentered = false;
} else {
int topPad = (m_stretchHeight - currentFontSize) / 2;
-
+
if (topPad / static_cast<float>(m_stretchHeight) > gMinimumRatioForStretch) {
newStyle->setVerticalAlign(TOP);
newStyle->setPaddingTop(Length(topPad, Fixed));
@@ -199,11 +207,11 @@ void RenderMathMLOperator::updateFromElement()
newStyle->setVerticalAlign(BASELINE);
}
}
-
+
container->setStyle(newStyle.release());
addChild(container);
-
- // Build the text of the operator.
+
+ // Build the text of the operator.
RenderText* text = 0;
if (m_operator)
text = new (renderArena()) RenderText(node(), StringImpl::create(&m_operator, 1));
@@ -226,12 +234,12 @@ void RenderMathMLOperator::updateFromElement()
int half = (m_stretchHeight - gGlyphHeight) / 2;
if (half <= gGlyphHeight) {
// We only have enough space for a single middle glyph.
- createGlyph(stretchyCharacters[index].topGlyph, half);
+ createGlyph(stretchyCharacters[index].topGlyph, half, gTopGlyphTopAdjust);
createGlyph(stretchyCharacters[index].middleGlyph, gGlyphHeight, gMiddleGlyphTopAdjust);
createGlyph(stretchyCharacters[index].bottomGlyph, 0, gBottomGlyphTopAdjust);
} else {
// We have to extend both the top and bottom to the middle.
- createGlyph(stretchyCharacters[index].topGlyph, gGlyphHeight);
+ createGlyph(stretchyCharacters[index].topGlyph, gGlyphHeight, gTopGlyphTopAdjust);
int remaining = half - gGlyphHeight;
while (remaining > 0) {
if (remaining < gGlyphHeight) {
@@ -269,7 +277,7 @@ void RenderMathMLOperator::updateFromElement()
} else {
// We do not have a middle glyph and so we just extend from the top to the bottom glyph.
int remaining = m_stretchHeight - 2 * gGlyphHeight;
- createGlyph(stretchyCharacters[index].topGlyph, gGlyphHeight);
+ createGlyph(stretchyCharacters[index].topGlyph, gGlyphHeight, gTopGlyphTopAdjust);
while (remaining > 0) {
if (remaining < gGlyphHeight) {
createGlyph(stretchyCharacters[index].extensionGlyph, remaining);
@@ -289,26 +297,26 @@ RefPtr<RenderStyle> RenderMathMLOperator::createStackableStyle(int size, int top
RefPtr<RenderStyle> newStyle = RenderStyle::create();
newStyle->inheritFrom(style());
newStyle->setDisplay(BLOCK);
-
- FontDescription* desc = new FontDescription();
- desc->setIsAbsoluteSize(true);
- desc->setSpecifiedSize(gGlyphFontSize);
- desc->setComputedSize(gGlyphFontSize);
- newStyle->setFontDescription(*desc);
+
+ FontDescription desc;
+ desc.setIsAbsoluteSize(true);
+ desc.setSpecifiedSize(gGlyphFontSize);
+ desc.setComputedSize(gGlyphFontSize);
+ newStyle->setFontDescription(desc);
newStyle->font().update(newStyle->font().fontSelector());
newStyle->setLineHeight(Length(gGlyphLineHeight, Fixed));
newStyle->setVerticalAlign(TOP);
-
+
if (size > 0)
newStyle->setMaxHeight(Length(size, Fixed));
-
+
newStyle->setOverflowY(OHIDDEN);
newStyle->setOverflowX(OHIDDEN);
if (topRelative) {
newStyle->setTop(Length(topRelative, Fixed));
newStyle->setPosition(RelativePosition);
}
-
+
return newStyle;
}
@@ -329,7 +337,7 @@ RenderBlock* RenderMathMLOperator::createGlyph(UChar glyph, int size, int charRe
parent->addChild(charBlock);
parent = charBlock;
}
-
+
RenderText* text = new (renderArena()) RenderText(node(), StringImpl::create(&glyph, 1));
text->setStyle(container->style());
parent->addChild(text);
@@ -344,7 +352,7 @@ int RenderMathMLOperator::baselinePosition(bool firstLine, bool isRootLineBox) c
return firstChild()->baselinePosition(firstLine, isRootLineBox);
return RenderBlock::baselinePosition(firstLine, isRootLineBox);
}
-
+
}
#endif
diff --git a/WebCore/mathml/RenderMathMLRoot.cpp b/WebCore/mathml/RenderMathMLRoot.cpp
index c624539..4ed8c19 100644
--- a/WebCore/mathml/RenderMathMLRoot.cpp
+++ b/WebCore/mathml/RenderMathMLRoot.cpp
@@ -42,26 +42,26 @@ const int gRadicalLeftMargin = 3;
// Bottom padding of the radical (px)
const int gRadicalBasePad = 3;
// Threshold above which the radical shape is modified to look nice with big bases (%)
-const float gThresholdBaseHeight = 1.5;
+const float gThresholdBaseHeight = 1.5f;
// Radical width (%)
-const float gRadicalWidth = 0.75;
+const float gRadicalWidth = 0.75f;
// Horizontal position of the bottom point of the radical (%)
-const float gRadicalBottomPointXPos= 0.5;
+const float gRadicalBottomPointXPos= 0.5f;
// Horizontal position of the top left point of the radical (%)
-const float gRadicalTopLeftPointXPos = 0.8;
+const float gRadicalTopLeftPointXPos = 0.8f;
// Vertical position of the top left point of the radical (%)
-const float gRadicalTopLeftPointYPos = 0.625;
+const float gRadicalTopLeftPointYPos = 0.625f;
// Vertical shift of the left end point of the radical (%)
-const float gRadicalLeftEndYShift = 0.05;
+const float gRadicalLeftEndYShift = 0.05f;
// Root padding around the base (%)
-const float gRootPadding = 0.2;
+const float gRootPadding = 0.2f;
// Additional bottom root padding (%)
-const float gRootBottomPadding = 0.2;
+const float gRootBottomPadding = 0.2f;
// Radical line thickness (%)
-const float gRadicalLineThickness = 0.02;
+const float gRadicalLineThickness = 0.02f;
// Radical thick line thickness (%)
-const float gRadicalThickLineThickness = 0.1;
+const float gRadicalThickLineThickness = 0.1f;
RenderMathMLRoot::RenderMathMLRoot(Node *expression)
: RenderMathMLBlock(expression)
@@ -129,7 +129,7 @@ void RenderMathMLRoot::paint(PaintInfo& info, int tx, int ty)
if (maxHeight > thresholdHeight && thresholdHeight) {
float shift = (maxHeight - thresholdHeight) / static_cast<float>(thresholdHeight);
if (shift > 1.)
- shift = 1.;
+ shift = 1.0f;
topStartShift = static_cast<int>(gRadicalBottomPointXPos * frontWidth * shift);
}
@@ -148,7 +148,7 @@ void RenderMathMLRoot::paint(PaintInfo& info, int tx, int ty)
info.context->setStrokeThickness(gRadicalLineThickness * style()->fontSize());
info.context->setStrokeStyle(SolidStroke);
- info.context->setStrokeColor(style()->visitedDependentColor(CSSPropertyColor), sRGBColorSpace);
+ info.context->setStrokeColor(style()->visitedDependentColor(CSSPropertyColor), DeviceColorSpace);
info.context->setLineJoin(MiterJoin);
info.context->setMiterLimit(style()->fontSize());
@@ -219,7 +219,7 @@ void RenderMathMLRoot::layout()
if (maxHeight > thresholdHeight && thresholdHeight) {
float shift = (maxHeight - thresholdHeight) / static_cast<float>(thresholdHeight);
if (shift > 1.)
- shift = 1.;
+ shift = 1.0f;
int frontWidth = static_cast<int>(style()->fontSize() * gRadicalWidth);
topStartShift = static_cast<int>(gRadicalBottomPointXPos * frontWidth * shift);
diff --git a/WebCore/mathml/RenderMathMLSquareRoot.cpp b/WebCore/mathml/RenderMathMLSquareRoot.cpp
index be62f57..86add7a 100644
--- a/WebCore/mathml/RenderMathMLSquareRoot.cpp
+++ b/WebCore/mathml/RenderMathMLSquareRoot.cpp
@@ -41,24 +41,24 @@ using namespace MathMLNames;
// Bottom padding of the radical (px)
const int gRadicalBasePad = 3;
// Threshold above which the radical shape is modified to look nice with big bases (%)
-const float gThresholdBaseHeight = 1.5;
+const float gThresholdBaseHeight = 1.5f;
// Radical width (%)
-const float gRadicalWidth = 0.75;
+const float gRadicalWidth = 0.75f;
// Horizontal position of the bottom point of the radical (%)
-const float gRadicalBottomPointXPos= 0.5;
+const float gRadicalBottomPointXPos= 0.5f;
// Horizontal position of the top left point of the radical (%)
-const float gRadicalTopLeftPointXPos = 0.2;
+const float gRadicalTopLeftPointXPos = 0.2f;
// Vertical position of the top left point of the radical (%)
-const float gRadicalTopLeftPointYPos = 0.5;
+const float gRadicalTopLeftPointYPos = 0.5f;
// Vertical shift of the left end point of the radical (%)
-const float gRadicalLeftEndYShift = 0.05;
+const float gRadicalLeftEndYShift = 0.05f;
// Additional bottom root padding (%)
-const float gRootBottomPadding = 0.2;
+const float gRootBottomPadding = 0.2f;
// Radical line thickness (%)
-const float gRadicalLineThickness = 0.02;
+const float gRadicalLineThickness = 0.02f;
// Radical thick line thickness (%)
-const float gRadicalThickLineThickness = 0.1;
+const float gRadicalThickLineThickness = 0.1f;
RenderMathMLSquareRoot::RenderMathMLSquareRoot(Node *expression)
: RenderMathMLBlock(expression)
@@ -102,7 +102,7 @@ void RenderMathMLSquareRoot::paint(PaintInfo& info, int tx, int ty)
if (maxHeight > thresholdHeight && thresholdHeight) {
float shift = (maxHeight - thresholdHeight) / static_cast<float>(thresholdHeight);
if (shift > 1.)
- shift = 1.;
+ shift = 1.0f;
topStartShift = static_cast<int>(gRadicalBottomPointXPos * frontWidth * shift);
}
diff --git a/WebCore/mathml/RenderMathMLSubSup.cpp b/WebCore/mathml/RenderMathMLSubSup.cpp
index 45ad000..52ac0e3 100644
--- a/WebCore/mathml/RenderMathMLSubSup.cpp
+++ b/WebCore/mathml/RenderMathMLSubSup.cpp
@@ -44,7 +44,7 @@ using namespace MathMLNames;
static const int gTopAdjustDivisor = 3;
static const int gSubsupScriptMargin = 1;
-static const float gSubSupStretch = 1.2;
+static const float gSubSupStretch = 1.2f;
RenderMathMLSubSup::RenderMathMLSubSup(Element* element)
: RenderMathMLBlock(element)
diff --git a/WebCore/mathml/mathattrs.in b/WebCore/mathml/mathattrs.in
index 5431453..4fda481 100644
--- a/WebCore/mathml/mathattrs.in
+++ b/WebCore/mathml/mathattrs.in
@@ -3,13 +3,20 @@ namespaceURI="http://www.w3.org/1998/Math/MathML"
guardFactoryWith="ENABLE(MATHML)"
attrsNullNamespace
+background
close
+color
definitionURL
denomalign
+fontfamily
+fontsize
+fontstyle
+fontweight
linethickness
mathbackground
mathcolor
mathsize
+mathvariant
numalign
open
separators
diff --git a/WebCore/notifications/NotificationCenter.cpp b/WebCore/notifications/NotificationCenter.cpp
index ec70f0a..a2289ec 100644
--- a/WebCore/notifications/NotificationCenter.cpp
+++ b/WebCore/notifications/NotificationCenter.cpp
@@ -68,6 +68,7 @@ void NotificationCenter::disconnectFrame()
return;
m_notificationPresenter->cancelRequestsForPermission(m_scriptExecutionContext);
m_notificationPresenter = 0;
+ m_scriptExecutionContext = 0;
}
} // namespace WebCore
diff --git a/WebCore/notifications/NotificationPresenter.h b/WebCore/notifications/NotificationPresenter.h
index e3e7ee2..9602199 100644
--- a/WebCore/notifications/NotificationPresenter.h
+++ b/WebCore/notifications/NotificationPresenter.h
@@ -42,7 +42,6 @@ namespace WebCore {
class Notification;
class KURL;
class ScriptExecutionContext;
- class String;
class NotificationPresenter {
diff --git a/WebCore/page/Chrome.h b/WebCore/page/Chrome.h
index 30edf28..5ee8897 100644
--- a/WebCore/page/Chrome.h
+++ b/WebCore/page/Chrome.h
@@ -48,7 +48,6 @@ namespace WebCore {
class Node;
class Page;
class PopupMenuClient;
- class String;
#if ENABLE(NOTIFICATIONS)
class NotificationPresenter;
#endif
diff --git a/WebCore/page/ChromeClient.h b/WebCore/page/ChromeClient.h
index f90e01e..eb2372d 100644
--- a/WebCore/page/ChromeClient.h
+++ b/WebCore/page/ChromeClient.h
@@ -46,7 +46,6 @@ class NSResponder;
namespace WebCore {
- class AtomicString;
class Element;
class FileChooser;
class FloatRect;
@@ -59,7 +58,6 @@ namespace WebCore {
class Page;
class SecurityOrigin;
class PopupMenuClient;
- class String;
class Widget;
struct FrameLoadRequest;
diff --git a/WebCore/page/Console.h b/WebCore/page/Console.h
index d057ff9..ab62525 100644
--- a/WebCore/page/Console.h
+++ b/WebCore/page/Console.h
@@ -33,6 +33,7 @@
#include "PlatformString.h"
#include "ScriptProfile.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -44,7 +45,6 @@ typedef Vector<RefPtr<ScriptProfile> > ProfilesArray;
class Frame;
class Page;
-class String;
class ScriptCallStack;
// Keep in sync with inspector/front-end/Console.js
diff --git a/WebCore/page/ContextMenuClient.h b/WebCore/page/ContextMenuClient.h
index 1997cd0..f91536b 100644
--- a/WebCore/page/ContextMenuClient.h
+++ b/WebCore/page/ContextMenuClient.h
@@ -27,6 +27,7 @@
#define ContextMenuClient_h
#include "PlatformMenuDescription.h"
+#include <wtf/Forward.h>
namespace WebCore {
class ContextMenu;
@@ -34,7 +35,6 @@ namespace WebCore {
class Frame;
class HitTestResult;
class KURL;
- class String;
class ContextMenuClient {
public:
diff --git a/WebCore/page/DOMSelection.h b/WebCore/page/DOMSelection.h
index 0287e44..b0421c7 100644
--- a/WebCore/page/DOMSelection.h
+++ b/WebCore/page/DOMSelection.h
@@ -39,7 +39,6 @@ namespace WebCore {
class Frame;
class Range;
class Node;
- class String;
class VisibleSelection;
typedef int ExceptionCode;
diff --git a/WebCore/page/DOMWindow.cpp b/WebCore/page/DOMWindow.cpp
index 526e824..71ad7cb 100644
--- a/WebCore/page/DOMWindow.cpp
+++ b/WebCore/page/DOMWindow.cpp
@@ -42,6 +42,7 @@
#include "DOMTimer.h"
#include "Database.h"
#include "DatabaseCallback.h"
+#include "DeviceMotionController.h"
#include "DeviceOrientationController.h"
#include "PageTransitionEvent.h"
#include "Document.h"
@@ -1451,6 +1452,8 @@ bool DOMWindow::addEventListener(const AtomicString& eventType, PassRefPtr<Event
else if (eventType == eventNames().beforeunloadEvent && allowsBeforeUnloadListeners(this))
addBeforeUnloadEventListener(this);
#if ENABLE(DEVICE_ORIENTATION)
+ else if (eventType == eventNames().devicemotionEvent && frame() && frame()->page() && frame()->page()->deviceMotionController())
+ frame()->page()->deviceMotionController()->addListener(this);
else if (eventType == eventNames().deviceorientationEvent && frame() && frame()->page() && frame()->page()->deviceOrientationController())
frame()->page()->deviceOrientationController()->addListener(this);
#endif
@@ -1468,6 +1471,8 @@ bool DOMWindow::removeEventListener(const AtomicString& eventType, EventListener
else if (eventType == eventNames().beforeunloadEvent && allowsBeforeUnloadListeners(this))
removeBeforeUnloadEventListener(this);
#if ENABLE(DEVICE_ORIENTATION)
+ else if (eventType == eventNames().devicemotionEvent && frame() && frame()->page() && frame()->page()->deviceMotionController())
+ frame()->page()->deviceMotionController()->removeListener(this);
else if (eventType == eventNames().deviceorientationEvent && frame() && frame()->page() && frame()->page()->deviceOrientationController())
frame()->page()->deviceOrientationController()->removeListener(this);
#endif
@@ -1546,6 +1551,8 @@ void DOMWindow::removeAllEventListeners()
EventTarget::removeAllEventListeners();
#if ENABLE(DEVICE_ORIENTATION)
+ if (frame() && frame()->page() && frame()->page()->deviceMotionController())
+ frame()->page()->deviceMotionController()->removeAllListeners(this);
if (frame() && frame()->page() && frame()->page()->deviceOrientationController())
frame()->page()->deviceOrientationController()->removeAllListeners(this);
#endif
diff --git a/WebCore/page/DOMWindow.h b/WebCore/page/DOMWindow.h
index 51d407c..8d57dcc 100644
--- a/WebCore/page/DOMWindow.h
+++ b/WebCore/page/DOMWindow.h
@@ -338,6 +338,7 @@ namespace WebCore {
#endif
#if ENABLE(DEVICE_ORIENTATION)
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(devicemotion);
DEFINE_ATTRIBUTE_EVENT_LISTENER(deviceorientation);
#endif
diff --git a/WebCore/page/DOMWindow.idl b/WebCore/page/DOMWindow.idl
index c024460..a65739b 100644
--- a/WebCore/page/DOMWindow.idl
+++ b/WebCore/page/DOMWindow.idl
@@ -160,7 +160,7 @@ module window {
readonly attribute [EnabledAtRuntime] DOMApplicationCache applicationCache;
#endif
#if defined(ENABLE_DATABASE) && ENABLE_DATABASE
- [EnabledAtRuntime, Custom] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in DatabaseCallback creationCallback)
+ [EnabledAtRuntime, RequiresAllArguments=Raise] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
raises(DOMException);
#endif
#if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
@@ -306,8 +306,10 @@ module window {
attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend;
attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel;
- attribute [Conditional=DEVICE_ORIENTATION, EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
- attribute [Conditional=DEVICE_ORIENTATION, EnabledAtRuntime] EventListener ondeviceorientation;
+ attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
+ attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondevicemotion;
+ attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
+ attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondeviceorientation;
// EventTarget interface
[Custom] void addEventListener(in DOMString type,
@@ -748,10 +750,10 @@ module window {
attribute DOMFormDataConstructor FormData;
- attribute [Conditional=FILE_READER|FILE_WRITER] FileErrorConstructor FileError;
- attribute [Conditional=FILE_READER] FileReaderConstructor FileReader;
+ attribute [Conditional=BLOB|FILE_WRITER] FileErrorConstructor FileError;
+ attribute [Conditional=BLOB] FileReaderConstructor FileReader;
- attribute BlobBuilderConstructor BlobBuilder;
+ attribute [Conditional=BLOB] BlobBuilderConstructor BlobBuilder;
#endif // defined(LANGUAGE_JAVASCRIPT)
diff --git a/WebCore/page/EditorClient.h b/WebCore/page/EditorClient.h
index ff5bf94..93e27ff 100644
--- a/WebCore/page/EditorClient.h
+++ b/WebCore/page/EditorClient.h
@@ -58,7 +58,6 @@ class KeyboardEvent;
class Node;
class Range;
class VisibleSelection;
-class String;
class VisiblePosition;
struct GrammarDetail {
diff --git a/WebCore/page/EventHandler.cpp b/WebCore/page/EventHandler.cpp
index 20ceed9..adcaadc 100644
--- a/WebCore/page/EventHandler.cpp
+++ b/WebCore/page/EventHandler.cpp
@@ -2701,19 +2701,8 @@ bool EventHandler::tabsToLinks(KeyboardEvent* event) const
void EventHandler::defaultTextInputEventHandler(TextEvent* event)
{
- String data = event->data();
- if (data == "\n") {
- if (event->isLineBreak()) {
- if (m_frame->editor()->insertLineBreak())
- event->setDefaultHandled();
- } else {
- if (m_frame->editor()->insertParagraphSeparator())
- event->setDefaultHandled();
- }
- } else {
- if (m_frame->editor()->insertTextWithoutSendingTextEvent(data, false, event))
- event->setDefaultHandled();
- }
+ if (m_frame->editor()->handleTextEvent(event))
+ event->setDefaultHandled();
}
#if PLATFORM(QT) || PLATFORM(MAC) || PLATFORM(ANDROID)
diff --git a/WebCore/page/EventHandler.h b/WebCore/page/EventHandler.h
index 242601b..ca19a0c 100644
--- a/WebCore/page/EventHandler.h
+++ b/WebCore/page/EventHandler.h
@@ -45,7 +45,6 @@ class NSView;
namespace WebCore {
-class AtomicString;
class Clipboard;
class Cursor;
class Event;
@@ -66,7 +65,6 @@ class RenderLayer;
class RenderObject;
class RenderWidget;
class Scrollbar;
-class String;
class SVGElementInstance;
class TextEvent;
class TouchEvent;
diff --git a/WebCore/page/FocusController.cpp b/WebCore/page/FocusController.cpp
index 53a4fa8..388aa09 100644
--- a/WebCore/page/FocusController.cpp
+++ b/WebCore/page/FocusController.cpp
@@ -123,8 +123,11 @@ void FocusController::setFocused(bool focused)
return;
m_isFocused = focused;
-
- if (m_focusedFrame && m_focusedFrame->view()) {
+
+ if (!m_focusedFrame)
+ setFocusedFrame(m_page->mainFrame());
+
+ if (m_focusedFrame->view()) {
m_focusedFrame->selection()->setFocused(focused);
dispatchEventsOnWindowAndFocusedNode(m_focusedFrame->document(), focused);
}
diff --git a/WebCore/page/Frame.cpp b/WebCore/page/Frame.cpp
index c0b11d3..17652d9 100644
--- a/WebCore/page/Frame.cpp
+++ b/WebCore/page/Frame.cpp
@@ -72,7 +72,6 @@
#include "RenderView.h"
#include "ScriptController.h"
#include "ScriptSourceCode.h"
-#include "ScriptValue.h"
#include "Settings.h"
#include "TextIterator.h"
#include "TextResourceDecoder.h"
diff --git a/WebCore/page/FrameView.cpp b/WebCore/page/FrameView.cpp
index cb18ed1..04fef3b 100644
--- a/WebCore/page/FrameView.cpp
+++ b/WebCore/page/FrameView.cpp
@@ -418,7 +418,7 @@ PassRefPtr<Scrollbar> FrameView::createScrollbar(ScrollbarOrientation orientatio
// If we have an owning iframe/frame element, then it can set the custom scrollbar also.
RenderPart* frameRenderer = m_frame->ownerRenderer();
if (frameRenderer && frameRenderer->style()->hasPseudoStyle(SCROLLBAR))
- return RenderScrollbar::createCustomScrollbar(this, orientation, frameRenderer);
+ return RenderScrollbar::createCustomScrollbar(this, orientation, 0, m_frame.get());
// Nobody set a custom style, so we just use a native scrollbar.
return ScrollView::createScrollbar(orientation);
diff --git a/WebCore/page/FrameView.h b/WebCore/page/FrameView.h
index 9765c6f..cc32404 100644
--- a/WebCore/page/FrameView.h
+++ b/WebCore/page/FrameView.h
@@ -47,7 +47,6 @@ class RenderObject;
class RenderEmbeddedObject;
class RenderScrollbarPart;
struct ScheduledEvent;
-class String;
template <typename T> class Timer;
diff --git a/WebCore/page/GeolocationPositionCache.h b/WebCore/page/GeolocationPositionCache.h
index c7f7e49..dd57180 100644
--- a/WebCore/page/GeolocationPositionCache.h
+++ b/WebCore/page/GeolocationPositionCache.h
@@ -26,6 +26,7 @@
#ifndef GeolocationPositionCache_h
#define GeolocationPositionCache_h
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
@@ -33,7 +34,6 @@
namespace WebCore {
class Geoposition;
-class String;
class GeolocationPositionCache {
public:
diff --git a/WebCore/page/History.h b/WebCore/page/History.h
index 66a6a03..e885847 100644
--- a/WebCore/page/History.h
+++ b/WebCore/page/History.h
@@ -27,6 +27,7 @@
#define History_h
#include "KURL.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -34,7 +35,6 @@ namespace WebCore {
class Frame;
class SerializedScriptValue;
-class String;
typedef int ExceptionCode;
class History : public RefCounted<History> {
diff --git a/WebCore/page/Location.h b/WebCore/page/Location.h
index 065bde1..808eff9 100644
--- a/WebCore/page/Location.h
+++ b/WebCore/page/Location.h
@@ -29,6 +29,7 @@
#ifndef Location_h
#define Location_h
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -36,7 +37,6 @@ namespace WebCore {
class Frame;
class KURL;
- class String;
class Location : public RefCounted<Location> {
public:
diff --git a/WebCore/page/Navigator.h b/WebCore/page/Navigator.h
index e5dd4e8..de10d62 100644
--- a/WebCore/page/Navigator.h
+++ b/WebCore/page/Navigator.h
@@ -21,7 +21,11 @@
#define Navigator_h
#include "NavigatorBase.h"
+<<<<<<< HEAD
#include "PlatformString.h"
+=======
+#include <wtf/Forward.h>
+>>>>>>> webkit.org at r65072
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
@@ -33,11 +37,14 @@ class DOMPluginArray;
class Frame;
class Geolocation;
class PluginData;
+<<<<<<< HEAD
class String;
#if PLATFORM(ANDROID)
class ApplicationInstalledCallback;
class Connection;
#endif
+=======
+>>>>>>> webkit.org at r65072
class Navigator : public NavigatorBase, public RefCounted<Navigator> {
public:
diff --git a/WebCore/page/NavigatorBase.h b/WebCore/page/NavigatorBase.h
index 4c09f47..8f576e3 100644
--- a/WebCore/page/NavigatorBase.h
+++ b/WebCore/page/NavigatorBase.h
@@ -26,9 +26,9 @@
#ifndef NavigatorBase_h
#define NavigatorBase_h
-namespace WebCore {
+#include <wtf/Forward.h>
- class String;
+namespace WebCore {
class NavigatorBase {
public:
diff --git a/WebCore/page/Page.cpp b/WebCore/page/Page.cpp
index 49a14c2..f808928 100644
--- a/WebCore/page/Page.cpp
+++ b/WebCore/page/Page.cpp
@@ -20,6 +20,7 @@
#include "config.h"
#include "Page.h"
+#include "DeviceMotionController.h"
#include "BackForwardController.h"
#include "BackForwardList.h"
#include "Base64.h"
@@ -156,6 +157,7 @@ Page::Page(const PageClients& pageClients)
, m_geolocationController(new GeolocationController(this, pageClients.geolocationControllerClient))
#endif
#if ENABLE(DEVICE_ORIENTATION)
+ , m_deviceMotionController(RuntimeEnabledFeatures::deviceMotionEnabled() ? new DeviceMotionController(pageClients.deviceMotionClient) : 0)
, m_deviceOrientationController(RuntimeEnabledFeatures::deviceOrientationEnabled() ? new DeviceOrientationController(this, pageClients.deviceOrientationClient) : 0)
#endif
#if ENABLE(INPUT_SPEECH)
diff --git a/WebCore/page/Page.h b/WebCore/page/Page.h
index 62af0a7..d9e9255 100644
--- a/WebCore/page/Page.h
+++ b/WebCore/page/Page.h
@@ -44,6 +44,8 @@ namespace WebCore {
class ChromeClient;
class ContextMenuClient;
class ContextMenuController;
+ class DeviceMotionClient;
+ class DeviceMotionController;
class DeviceOrientationClient;
class DeviceOrientationController;
class Document;
@@ -101,6 +103,7 @@ namespace WebCore {
, inspectorClient(0)
, pluginHalterClient(0)
, geolocationControllerClient(0)
+ , deviceMotionClient(0)
, deviceOrientationClient(0)
, backForwardControllerClient(0)
, speechInputClient(0)
@@ -113,6 +116,7 @@ namespace WebCore {
InspectorClient* inspectorClient;
PluginHalterClient* pluginHalterClient;
GeolocationControllerClient* geolocationControllerClient;
+ DeviceMotionClient* deviceMotionClient;
DeviceOrientationClient* deviceOrientationClient;
BackForwardControllerClient* backForwardControllerClient;
SpeechInputClient* speechInputClient;
@@ -179,6 +183,7 @@ namespace WebCore {
GeolocationController* geolocationController() const { return m_geolocationController.get(); }
#endif
#if ENABLE(DEVICE_ORIENTATION)
+ DeviceMotionController* deviceMotionController() const { return m_deviceMotionController.get(); }
DeviceOrientationController* deviceOrientationController() const { return m_deviceOrientationController.get(); }
#endif
#if ENABLE(INPUT_SPEECH)
@@ -313,6 +318,7 @@ namespace WebCore {
OwnPtr<GeolocationController> m_geolocationController;
#endif
#if ENABLE(DEVICE_ORIENTATION)
+ OwnPtr<DeviceMotionController> m_deviceMotionController;
OwnPtr<DeviceOrientationController> m_deviceOrientationController;
#endif
#if ENABLE(INPUT_SPEECH)
diff --git a/WebCore/page/PageGroup.cpp b/WebCore/page/PageGroup.cpp
index 15d4d8d..12b1a41 100644
--- a/WebCore/page/PageGroup.cpp
+++ b/WebCore/page/PageGroup.cpp
@@ -138,7 +138,8 @@ bool PageGroup::isLinkVisited(LinkHash visitedLinkHash)
void PageGroup::addVisitedLinkHash(LinkHash hash)
{
- addVisitedLink(hash);
+ if (shouldTrackVisitedLinks)
+ addVisitedLink(hash);
}
inline void PageGroup::addVisitedLink(LinkHash hash)
diff --git a/WebCore/page/PageGroupLoadDeferrer.cpp b/WebCore/page/PageGroupLoadDeferrer.cpp
index ced8f36..a01422f 100644
--- a/WebCore/page/PageGroupLoadDeferrer.cpp
+++ b/WebCore/page/PageGroupLoadDeferrer.cpp
@@ -21,6 +21,7 @@
#include "config.h"
#include "PageGroupLoadDeferrer.h"
+#include "AsyncScriptRunner.h"
#include "Frame.h"
#include "Page.h"
#include "PageGroup.h"
@@ -45,7 +46,7 @@ PageGroupLoadDeferrer::PageGroupLoadDeferrer(Page* page, bool deferSelf)
// windows or sheets, which is exactly when PageGroupLoadDeferrer is used.
for (Frame* frame = otherPage->mainFrame(); frame; frame = frame->tree()->traverseNext()) {
frame->document()->suspendActiveDOMObjects();
- frame->document()->suspendExecuteScriptSoonTimer();
+ frame->document()->asyncScriptRunner()->suspend();
}
}
}
@@ -64,7 +65,7 @@ PageGroupLoadDeferrer::~PageGroupLoadDeferrer()
for (Frame* frame = page->mainFrame(); frame; frame = frame->tree()->traverseNext()) {
frame->document()->resumeActiveDOMObjects();
- frame->document()->resumeExecuteScriptSoonTimer();
+ frame->document()->asyncScriptRunner()->resume();
}
}
}
diff --git a/WebCore/page/PluginHalterClient.h b/WebCore/page/PluginHalterClient.h
index 0251547..12d37cc 100644
--- a/WebCore/page/PluginHalterClient.h
+++ b/WebCore/page/PluginHalterClient.h
@@ -26,10 +26,11 @@
#ifndef PluginHalterClient_h
#define PluginHalterClient_h
+#include <wtf/Forward.h>
+
namespace WebCore {
class Node;
-class String;
class PluginHalterClient {
public:
diff --git a/WebCore/page/PrintContext.h b/WebCore/page/PrintContext.h
index ed1cfa4..ceda892 100644
--- a/WebCore/page/PrintContext.h
+++ b/WebCore/page/PrintContext.h
@@ -21,6 +21,7 @@
#ifndef PrintContext_h
#define PrintContext_h
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
namespace WebCore {
@@ -31,7 +32,6 @@ class FloatRect;
class FloatSize;
class GraphicsContext;
class IntRect;
-class String;
class PrintContext {
public:
diff --git a/WebCore/page/Settings.h b/WebCore/page/Settings.h
index 32a027e..c5a13b2 100644
--- a/WebCore/page/Settings.h
+++ b/WebCore/page/Settings.h
@@ -168,6 +168,17 @@ namespace WebCore {
unsigned sessionStorageQuota() const { return m_sessionStorageQuota; }
#endif
+ // When this option is set, WebCore will avoid storing any record of browsing activity
+ // that may persist on disk or remain displayed when the option is reset.
+ // This option does not affect the storage of such information in RAM.
+ // The following functions respect this setting:
+ // - HTML5/DOM Storage
+ // - Icon Database
+ // - Console Messages
+ // - Cache
+ // - Application Cache
+ // - Back/Forward Page History
+ // - Page Search Results
void setPrivateBrowsingEnabled(bool);
bool privateBrowsingEnabled() const { return m_privateBrowsingEnabled; }
diff --git a/WebCore/page/SpeechInput.h b/WebCore/page/SpeechInput.h
index 2ce0eea..58f4efe 100644
--- a/WebCore/page/SpeechInput.h
+++ b/WebCore/page/SpeechInput.h
@@ -34,13 +34,13 @@
#if ENABLE(INPUT_SPEECH)
#include "SpeechInputListener.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
namespace WebCore {
class SpeechInputClient;
class SpeechInputListener;
-class String;
// This class connects the input elements requiring speech input with the platform specific
// speech recognition engine. It provides methods for the input elements to activate speech
diff --git a/WebCore/page/SpeechInputListener.h b/WebCore/page/SpeechInputListener.h
index 1b21a11..143984d 100644
--- a/WebCore/page/SpeechInputListener.h
+++ b/WebCore/page/SpeechInputListener.h
@@ -33,9 +33,9 @@
#if ENABLE(INPUT_SPEECH)
-namespace WebCore {
+#include <wtf/Forward.h>
-class String;
+namespace WebCore {
// Interface to be implemented by the element which invokes SpeechInput.
class SpeechInputListener {
diff --git a/WebCore/page/animation/AnimationController.h b/WebCore/page/animation/AnimationController.h
index d184b45..4528dae 100644
--- a/WebCore/page/animation/AnimationController.h
+++ b/WebCore/page/animation/AnimationController.h
@@ -36,14 +36,12 @@ namespace WebCore {
class AnimationBase;
class AnimationControllerPrivate;
-class AtomicString;
class Document;
class Element;
class Frame;
class Node;
class RenderObject;
class RenderStyle;
-class String;
class AnimationController {
public:
diff --git a/WebCore/platform/BlobItem.cpp b/WebCore/platform/BlobItem.cpp
index cc5e6c7..591516d 100644
--- a/WebCore/platform/BlobItem.cpp
+++ b/WebCore/platform/BlobItem.cpp
@@ -37,7 +37,7 @@
namespace WebCore {
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
static const double invalidModificationTime = 0;
static double getFileSnapshotModificationTime(const String& path)
@@ -48,11 +48,11 @@ static double getFileSnapshotModificationTime(const String& path)
return static_cast<double>(modificationTime);
return invalidModificationTime;
}
-#endif // ENABLE(BLOB_SLICE)
+#endif // ENABLE(BLOB)
// DataBlobItem ----------------------------------------------------------------
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
PassRefPtr<BlobItem> DataBlobItem::slice(long long start, long long length)
{
ASSERT(start >= 0 && length >= 0);
@@ -63,7 +63,7 @@ PassRefPtr<BlobItem> DataBlobItem::slice(long long start, long long length)
length = size() - start;
return DataRangeBlobItem::create(this, start, length);
}
-#endif // ENABLE(BLOB_SLICE)
+#endif
// FileBlobItem ----------------------------------------------------------------
@@ -101,7 +101,7 @@ unsigned long long FileBlobItem::size() const
return static_cast<unsigned long long>(size);
}
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
PassRefPtr<BlobItem> FileBlobItem::slice(long long start, long long length)
{
ASSERT(start >= 0 && length >= 0);
@@ -115,7 +115,7 @@ PassRefPtr<BlobItem> FileBlobItem::slice(long long start, long long length)
double modificationTime = fileRangeItem ? fileRangeItem->snapshotModificationTime() : getFileSnapshotModificationTime(path());
return FileRangeBlobItem::create(path(), start, length, modificationTime);
}
-#endif // ENABLE(BLOB_SLICE)
+#endif // ENABLE(BLOB)
// StringBlobItem --------------------------------------------------------------
@@ -141,7 +141,7 @@ ByteArrayBlobItem::ByteArrayBlobItem(const char* data, size_t size)
m_bytesArray.append(data, size);
}
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
// DataRangeBlobItem -----------------------------------------------------------
@@ -187,6 +187,6 @@ FileRangeBlobItem::FileRangeBlobItem(const String& path, long long start, long l
m_uniqueName.replace("-", ""); // For safty, remove '-' from the filename snce some servers may not like it.
}
-#endif // ENABLE(BLOB_SLICE)
+#endif // ENABLE(BLOB)
} // namespace WebCore
diff --git a/WebCore/platform/BlobItem.h b/WebCore/platform/BlobItem.h
index 3741f3f..42ece92 100644
--- a/WebCore/platform/BlobItem.h
+++ b/WebCore/platform/BlobItem.h
@@ -70,13 +70,13 @@ public:
virtual const StringBlobItem* toStringBlobItem() const { return 0; }
virtual const ByteArrayBlobItem* toByteArrayBlobItem() const { return 0; }
virtual const FileBlobItem* toFileBlobItem() const { return 0; }
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
virtual const DataRangeBlobItem* toDataRangeBlobItem() const { return 0; }
virtual const FileRangeBlobItem* toFileRangeBlobItem() const { return 0; }
// Note: no external methods except for Blob::slice should call this.
virtual PassRefPtr<BlobItem> slice(long long start, long long length) = 0;
-#endif // ENABLE(BLOB_SLICE)
+#endif // ENABLE(BLOB)
protected:
BlobItem() { }
@@ -90,9 +90,9 @@ public:
// BlobItem methods.
virtual const DataBlobItem* toDataBlobItem() const { return this; }
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
virtual PassRefPtr<BlobItem> slice(long long start, long long length);
-#endif // ENABLE(BLOB_SLICE)
+#endif // ENABLE(BLOB)
};
class FileBlobItem : public BlobItem {
@@ -110,9 +110,9 @@ public:
// BlobItem methods.
virtual unsigned long long size() const;
virtual const FileBlobItem* toFileBlobItem() const { return this; }
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
virtual PassRefPtr<BlobItem> slice(long long start, long long length);
-#endif // ENABLE(BLOB_SLICE)
+#endif // ENABLE(BLOB)
protected:
FileBlobItem(const String& path);
@@ -159,7 +159,7 @@ private:
Vector<char> m_bytesArray;
};
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
// BlobItem class for sliced data (string or bytes-array).
class DataRangeBlobItem : public DataBlobItem {
@@ -202,7 +202,7 @@ private:
double m_snapshotModificationTime;
};
-#endif // ENABLE(BLOB_SLICE)
+#endif // ENABLE(BLOB)
} // namespace WebCore
diff --git a/WebCore/platform/CookieJar.h b/WebCore/platform/CookieJar.h
index fb1abee..4793708 100644
--- a/WebCore/platform/CookieJar.h
+++ b/WebCore/platform/CookieJar.h
@@ -26,13 +26,13 @@
#ifndef CookieJar_h
#define CookieJar_h
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
namespace WebCore {
class Document;
class KURL;
- class String;
struct Cookie;
diff --git a/WebCore/platform/CrossThreadCopier.h b/WebCore/platform/CrossThreadCopier.h
index 80805c4..6f7bb25 100644
--- a/WebCore/platform/CrossThreadCopier.h
+++ b/WebCore/platform/CrossThreadCopier.h
@@ -31,6 +31,7 @@
#ifndef CrossThreadCopier_h
#define CrossThreadCopier_h
+#include <wtf/Forward.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
@@ -43,7 +44,6 @@ namespace WebCore {
class ResourceError;
class ResourceRequest;
class ResourceResponse;
- class String;
struct CrossThreadResourceResponseData;
struct CrossThreadResourceRequestData;
struct ThreadableLoaderOptions;
diff --git a/WebCore/platform/Cursor.h b/WebCore/platform/Cursor.h
index 98d69b9..5e547ef 100644
--- a/WebCore/platform/Cursor.h
+++ b/WebCore/platform/Cursor.h
@@ -36,7 +36,7 @@ typedef HICON HCURSOR;
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#elif PLATFORM(GTK)
-typedef struct _GdkCursor GdkCursor;
+#include "GRefPtrGtk.h"
#elif PLATFORM(QT)
#include <QCursor>
#elif PLATFORM(CHROMIUM)
@@ -62,7 +62,7 @@ typedef struct HICON__ *HICON;
typedef HICON HCURSOR;
#endif
-#if PLATFORM(WIN) || PLATFORM(MAC)
+#if PLATFORM(WIN) || PLATFORM(MAC) || PLATFORM(GTK)
#define WTF_USE_LAZY_NATIVE_CURSOR 1
#endif
@@ -84,7 +84,7 @@ namespace WebCore {
#elif PLATFORM(MAC)
typedef NSCursor* PlatformCursor;
#elif PLATFORM(GTK)
- typedef GdkCursor* PlatformCursor;
+ typedef GRefPtr<GdkCursor> PlatformCursor;
#elif PLATFORM(EFL)
typedef const char* PlatformCursor;
#elif PLATFORM(QT) && !defined(QT_NO_CURSOR)
diff --git a/WebCore/platform/DragImage.h b/WebCore/platform/DragImage.h
index d7d53b2..e825798 100644
--- a/WebCore/platform/DragImage.h
+++ b/WebCore/platform/DragImage.h
@@ -28,6 +28,7 @@
#include "IntSize.h"
#include "FloatSize.h"
+#include <wtf/Forward.h>
#if PLATFORM(MAC)
#include <wtf/RetainPtr.h>
@@ -64,8 +65,7 @@ namespace WebCore {
class Image;
class KURL;
class Range;
- class String;
-
+
#if PLATFORM(MAC)
typedef RetainPtr<NSImage> DragImageRef;
#elif PLATFORM(QT)
diff --git a/WebCore/platform/FileSystem.h b/WebCore/platform/FileSystem.h
index 42aaaef..617470b 100644
--- a/WebCore/platform/FileSystem.h
+++ b/WebCore/platform/FileSystem.h
@@ -47,6 +47,7 @@
#include "PlatformString.h"
#include <time.h>
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
typedef const struct __CFData* CFDataRef;
@@ -63,11 +64,6 @@ typedef HINSTANCE HMODULE;
typedef struct _IFile IFile;
#endif
-namespace WTF {
-class CString;
-}
-using WTF::CString;
-
namespace WebCore {
// PlatformModule
@@ -155,12 +151,12 @@ String directoryName(const String&);
Vector<String> listDirectory(const String& path, const String& filter = String());
-WTF::CString fileSystemRepresentation(const String&);
+CString fileSystemRepresentation(const String&);
inline bool isHandleValid(const PlatformFileHandle& handle) { return handle != invalidPlatformFileHandle; }
// Prefix is what the filename should be prefixed with, not the full path.
-WTF::CString openTemporaryFile(const char* prefix, PlatformFileHandle&);
+CString openTemporaryFile(const char* prefix, PlatformFileHandle&);
PlatformFileHandle openFile(const String& path, FileOpenMode);
void closeFile(PlatformFileHandle&);
// Returns the resulting offset from the beginning of the file if successful, -1 otherwise.
diff --git a/WebCore/platform/KURLHash.h b/WebCore/platform/KURLHash.h
index 7448a49..283170b 100644
--- a/WebCore/platform/KURLHash.h
+++ b/WebCore/platform/KURLHash.h
@@ -52,7 +52,7 @@ namespace WTF {
template<> struct HashTraits<WebCore::KURL> : GenericHashTraits<WebCore::KURL> {
static const bool emptyValueIsZero = true;
- static void constructDeletedValue(WebCore::KURL& slot) { new (&slot) WebCore::KURL(WebCore::ParsedURLString, WebCore::String(HashTableDeletedValue)); }
+ static void constructDeletedValue(WebCore::KURL& slot) { new (&slot) WebCore::KURL(WebCore::ParsedURLString, WTF::String(HashTableDeletedValue)); }
static bool isDeletedValue(const WebCore::KURL& slot) { return slot.string().isHashTableDeletedValue(); }
};
diff --git a/WebCore/platform/Language.h b/WebCore/platform/Language.h
index 1d59c21..4c92755 100644
--- a/WebCore/platform/Language.h
+++ b/WebCore/platform/Language.h
@@ -26,9 +26,9 @@
#ifndef Language_h
#define Language_h
-namespace WebCore {
+#include <wtf/Forward.h>
- class String;
+namespace WebCore {
String defaultLanguage();
diff --git a/WebCore/platform/Length.h b/WebCore/platform/Length.h
index 4f36577..a3b1eda 100644
--- a/WebCore/platform/Length.h
+++ b/WebCore/platform/Length.h
@@ -23,12 +23,11 @@
#include <wtf/Assertions.h>
#include <wtf/FastAllocBase.h>
+#include <wtf/Forward.h>
#include <wtf/MathExtras.h>
namespace WebCore {
-class String;
-
const int undefinedLength = -1;
const int percentScaleFactor = 128;
diff --git a/WebCore/platform/LinkHash.h b/WebCore/platform/LinkHash.h
index 2756654..a499a8e 100644
--- a/WebCore/platform/LinkHash.h
+++ b/WebCore/platform/LinkHash.h
@@ -27,10 +27,10 @@
#define LinkHash_h
#include "StringHash.h"
+#include <wtf/Forward.h>
namespace WebCore {
-class AtomicString;
class KURL;
typedef uint64_t LinkHash;
diff --git a/WebCore/platform/LocalizationStrategy.h b/WebCore/platform/LocalizationStrategy.h
index 9bde316..178cfa2 100644
--- a/WebCore/platform/LocalizationStrategy.h
+++ b/WebCore/platform/LocalizationStrategy.h
@@ -28,9 +28,10 @@
#if USE(PLATFORM_STRATEGIES)
+#include <wtf/Forward.h>
+
namespace WebCore {
-class String;
class IntSize;
class LocalizationStrategy {
@@ -41,7 +42,10 @@ public:
virtual String submitButtonDefaultLabel() = 0;
virtual String fileButtonChooseFileLabel() = 0;
virtual String fileButtonNoFileSelectedLabel() = 0;
+
+#if PLATFORM(MAC)
virtual String copyImageUnknownFileLabel() = 0;
+#endif
#if ENABLE(CONTEXT_MENUS)
virtual String contextMenuItemTagOpenLinkInNewWindow() = 0;
@@ -122,7 +126,10 @@ public:
virtual String AXHeadingText() = 0;
virtual String AXDefinitionListTermText() = 0;
virtual String AXDefinitionListDefinitionText() = 0;
+
+#if PLATFORM(MAC)
virtual String AXARIAContentGroupText(const String& ariaType) = 0;
+#endif
virtual String AXButtonActionVerb() = 0;
virtual String AXRadioButtonActionVerb() = 0;
diff --git a/WebCore/platform/mac/LocalizedStringsMac.mm b/WebCore/platform/LocalizedStrings.cpp
index 8b7df04..a69e0fb 100644
--- a/WebCore/platform/mac/LocalizedStringsMac.mm
+++ b/WebCore/platform/LocalizedStrings.cpp
@@ -23,16 +23,18 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#import "config.h"
-#import "LocalizedStrings.h"
+#include "config.h"
+#include "LocalizedStrings.h"
-#import "IntSize.h"
-#import "LocalizationStrategy.h"
-#import "PlatformStrategies.h"
-#import "PlatformString.h"
+#include "IntSize.h"
+#include "LocalizationStrategy.h"
+#include "PlatformStrategies.h"
+#include "PlatformString.h"
namespace WebCore {
+#if USE(PLATFORM_STRATEGIES)
+
String inputElementAltText()
{
return platformStrategies()->localizationStrategy()->inputElementAltText();
@@ -63,10 +65,12 @@ String fileButtonNoFileSelectedLabel()
return platformStrategies()->localizationStrategy()->fileButtonNoFileSelectedLabel();
}
+#if PLATFORM(MAC)
String copyImageUnknownFileLabel()
{
return platformStrategies()->localizationStrategy()->copyImageUnknownFileLabel();
}
+#endif
#if ENABLE(CONTEXT_MENUS)
String contextMenuItemTagOpenLinkInNewWindow()
@@ -154,10 +158,12 @@ String contextMenuItemTagLearnSpelling()
return platformStrategies()->localizationStrategy()->contextMenuItemTagLearnSpelling();
}
+#if PLATFORM(MAC)
String contextMenuItemTagSearchInSpotlight()
{
return platformStrategies()->localizationStrategy()->contextMenuItemTagSearchInSpotlight();
}
+#endif
String contextMenuItemTagSearchWeb()
{
@@ -209,10 +215,12 @@ String contextMenuItemTagFontMenu()
return platformStrategies()->localizationStrategy()->contextMenuItemTagFontMenu();
}
+#if PLATFORM(MAC)
String contextMenuItemTagShowFonts()
{
return platformStrategies()->localizationStrategy()->contextMenuItemTagShowFonts();
}
+#endif
String contextMenuItemTagBold()
{
@@ -234,6 +242,7 @@ String contextMenuItemTagOutline()
return platformStrategies()->localizationStrategy()->contextMenuItemTagOutline();
}
+#if PLATFORM(MAC)
String contextMenuItemTagStyles()
{
return platformStrategies()->localizationStrategy()->contextMenuItemTagStyles();
@@ -258,6 +267,7 @@ String contextMenuItemTagStopSpeaking()
{
return platformStrategies()->localizationStrategy()->contextMenuItemTagStopSpeaking();
}
+#endif
String contextMenuItemTagWritingDirectionMenu()
{
@@ -284,6 +294,8 @@ String contextMenuItemTagRightToLeft()
return platformStrategies()->localizationStrategy()->contextMenuItemTagRightToLeft();
}
+#if PLATFORM(MAC)
+
String contextMenuItemTagCorrectSpellingAutomatically()
{
return platformStrategies()->localizationStrategy()->contextMenuItemTagCorrectSpellingAutomatically();
@@ -348,6 +360,8 @@ String contextMenuItemTagChangeBack(const String& replacedString)
{
return platformStrategies()->localizationStrategy()->contextMenuItemTagChangeBack(replacedString);
}
+
+#endif // PLATFORM(MAC)
String contextMenuItemTagInspectElement()
{
@@ -406,10 +420,12 @@ String AXDefinitionListDefinitionText()
return platformStrategies()->localizationStrategy()->AXDefinitionListDefinitionText();
}
+#if PLATFORM(MAC)
String AXARIAContentGroupText(const String& ariaType)
{
return platformStrategies()->localizationStrategy()->AXARIAContentGroupText(ariaType);
}
+#endif
String AXButtonActionVerb()
{
@@ -471,6 +487,18 @@ String unknownFileSizeText()
return platformStrategies()->localizationStrategy()->unknownFileSizeText();
}
+#if PLATFORM(WIN)
+String uploadFileText()
+{
+ return platformStrategies()->localizationStrategy()->uploadFileText();
+}
+
+String allFilesText()
+{
+ return platformStrategies()->localizationStrategy()->allFilesText();
+}
+#endif
+
String imageTitle(const String& filename, const IntSize& size)
{
return platformStrategies()->localizationStrategy()->imageTitle(filename, size);
@@ -536,4 +564,6 @@ String validationMessageStepMismatchText()
return platformStrategies()->localizationStrategy()->validationMessageStepMismatchText();
}
+#endif // USE(PLATFORM_STRATEGIES)
+
} // namespace WebCore
diff --git a/WebCore/platform/LocalizedStrings.h b/WebCore/platform/LocalizedStrings.h
index 56d44b3..04042b6 100644
--- a/WebCore/platform/LocalizedStrings.h
+++ b/WebCore/platform/LocalizedStrings.h
@@ -26,9 +26,10 @@
#ifndef LocalizedStrings_h
#define LocalizedStrings_h
+#include <wtf/Forward.h>
+
namespace WebCore {
- class String;
class IntSize;
String inputElementAltText();
@@ -37,7 +38,11 @@ namespace WebCore {
String submitButtonDefaultLabel();
String fileButtonChooseFileLabel();
String fileButtonNoFileSelectedLabel();
+
+#if PLATFORM(MAC)
String copyImageUnknownFileLabel();
+#endif
+
#if ENABLE(CONTEXT_MENUS)
String contextMenuItemTagOpenLinkInNewWindow();
String contextMenuItemTagDownloadLinkToDisk();
@@ -117,7 +122,10 @@ namespace WebCore {
String AXHeadingText();
String AXDefinitionListTermText();
String AXDefinitionListDefinitionText();
+
+#if PLATFORM(MAC)
String AXARIAContentGroupText(const String& ariaType);
+#endif
String AXButtonActionVerb();
String AXRadioButtonActionVerb();
diff --git a/WebCore/platform/Logging.h b/WebCore/platform/Logging.h
index 45b6d23..df3c6fd 100644
--- a/WebCore/platform/Logging.h
+++ b/WebCore/platform/Logging.h
@@ -27,6 +27,7 @@
#define Logging_h
#include <wtf/Assertions.h>
+#include <wtf/Forward.h>
#ifndef LOG_CHANNEL_PREFIX
#define LOG_CHANNEL_PREFIX Log
@@ -34,8 +35,6 @@
namespace WebCore {
- class String;
-
extern WTFLogChannel LogNotYetImplemented;
extern WTFLogChannel LogFrames;
extern WTFLogChannel LogLoading;
diff --git a/WebCore/platform/Pasteboard.h b/WebCore/platform/Pasteboard.h
index 7ee8e81..7773624 100644
--- a/WebCore/platform/Pasteboard.h
+++ b/WebCore/platform/Pasteboard.h
@@ -63,11 +63,6 @@ typedef struct HWND__* HWND;
#include "PasteboardPrivate.h"
#endif
-namespace WTF {
-class CString;
-}
-using WTF::CString;
-
namespace WebCore {
#if PLATFORM(MAC)
@@ -84,7 +79,6 @@ class HitTestResult;
class KURL;
class Node;
class Range;
-class String;
class Pasteboard : public Noncopyable {
public:
diff --git a/WebCore/platform/PopupMenuClient.h b/WebCore/platform/PopupMenuClient.h
index 976f28c..2b41380 100644
--- a/WebCore/platform/PopupMenuClient.h
+++ b/WebCore/platform/PopupMenuClient.h
@@ -24,6 +24,7 @@
#include "PopupMenuStyle.h"
#include "ScrollTypes.h"
+#include <wtf/Forward.h>
namespace WebCore {
@@ -32,7 +33,6 @@ class FontSelector;
class HostWindow;
class Scrollbar;
class ScrollbarClient;
-class String;
class PopupMenuClient {
public:
diff --git a/WebCore/platform/SearchPopupMenu.h b/WebCore/platform/SearchPopupMenu.h
index d1ecd0f..f199fab 100644
--- a/WebCore/platform/SearchPopupMenu.h
+++ b/WebCore/platform/SearchPopupMenu.h
@@ -22,13 +22,12 @@
#define SearchPopupMenu_h
#include "PopupMenu.h"
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
-class AtomicString;
-
class SearchPopupMenu : public RefCounted<SearchPopupMenu> {
public:
virtual ~SearchPopupMenu() {}
diff --git a/WebCore/platform/Widget.h b/WebCore/platform/Widget.h
index 6303c6a..58d4e57 100644
--- a/WebCore/platform/Widget.h
+++ b/WebCore/platform/Widget.h
@@ -99,6 +99,7 @@ typedef PlatformWidget PlatformPageClient;
#include "IntRect.h"
#include "IntSize.h"
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
namespace WebCore {
@@ -110,9 +111,6 @@ class GraphicsContext;
class PlatformMouseEvent;
class ScrollView;
class WidgetPrivate;
-#if PLATFORM(EFL)
-class String;
-#endif
// The Widget class serves as a base class for three kinds of objects:
// (1) Scrollable areas (ScrollView)
diff --git a/WebCore/platform/WindowsKeyboardCodes.h b/WebCore/platform/WindowsKeyboardCodes.h
index 86c77ea..2d287c2 100644
--- a/WebCore/platform/WindowsKeyboardCodes.h
+++ b/WebCore/platform/WindowsKeyboardCodes.h
@@ -27,6 +27,36 @@
#define VK_UNKNOWN 0
+// Undef macros which are also defined in MinGW/include/winuser.h to aviod gcc redefinition warning
+// https://bugs.webkit.org/show_bug.cgi?id=43360
+#if COMPILER(MINGW)
+#undef VK_BACK
+#undef VK_TAB
+#undef VK_CLEAR
+#undef VK_RETURN
+#undef VK_SHIFT
+#undef VK_CONTROL
+#undef VK_MENU
+#undef VK_PAUSE
+#undef VK_CAPITAL
+#undef VK_SPACE
+#undef VK_PRIOR
+#undef VK_NEXT
+#undef VK_END
+#undef VK_HOME
+#undef VK_LEFT
+#undef VK_UP
+#undef VK_RIGHT
+#undef VK_DOWN
+#undef VK_SELECT
+#undef VK_PRINT
+#undef VK_EXECUTE
+#undef VK_SNAPSHOT
+#undef VK_INSERT
+#undef VK_DELETE
+#undef VK_HELP
+#endif // COMPILER(MINGW)
+
// Left mouse button
// Right mouse button
// Control-break processing
diff --git a/WebCore/platform/android/TemporaryLinkStubs.cpp b/WebCore/platform/android/TemporaryLinkStubs.cpp
index 911d849..2cacef9 100644
--- a/WebCore/platform/android/TemporaryLinkStubs.cpp
+++ b/WebCore/platform/android/TemporaryLinkStubs.cpp
@@ -311,7 +311,17 @@ void* WebCore::Frame::dragImageForSelection()
return 0;
}
+<<<<<<< HEAD
void WebCore::Pasteboard::writeImage(WebCore::Node*, WebCore::KURL const&, WebCore::String const&) {}
+=======
+
+WTF::String WebCore::MIMETypeRegistry::getMIMETypeForExtension(WTF::String const&)
+{
+ return WTF::String();
+}
+
+void WebCore::Pasteboard::writeImage(WebCore::Node*, WebCore::KURL const&, WTF::String const&) {}
+>>>>>>> webkit.org at r65072
namespace WebCore {
diff --git a/WebCore/platform/cf/BinaryPropertyList.h b/WebCore/platform/cf/BinaryPropertyList.h
index a930b43..8cbb2e1 100644
--- a/WebCore/platform/cf/BinaryPropertyList.h
+++ b/WebCore/platform/cf/BinaryPropertyList.h
@@ -28,12 +28,11 @@
#include <CoreFoundation/CoreFoundation.h>
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
namespace WebCore {
-class String;
-
// Writes a limited subset of binary property lists.
// Covers only what's needed for writing browser history as of this writing.
class BinaryPropertyListObjectStream {
diff --git a/WebCore/platform/chromium/ChromiumBridge.h b/WebCore/platform/chromium/ChromiumBridge.h
index acfefe1..fc1345e 100644
--- a/WebCore/platform/chromium/ChromiumBridge.h
+++ b/WebCore/platform/chromium/ChromiumBridge.h
@@ -38,6 +38,7 @@
#include "PasteboardPrivate.h"
#include "PluginData.h"
+#include <wtf/Forward.h>
#include <wtf/HashSet.h>
#include <wtf/Vector.h>
@@ -73,7 +74,6 @@ namespace WebCore {
class IDBFactoryBackendInterface;
class IntRect;
class KURL;
- class String;
class Widget;
struct Cookie;
@@ -260,7 +260,6 @@ namespace WebCore {
// Widget -------------------------------------------------------------
static void widgetSetCursor(Widget*, const Cursor&);
- static void widgetSetFocus(Widget*);
};
} // namespace WebCore
diff --git a/WebCore/platform/chromium/ClipboardUtilitiesChromium.h b/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
index 7514280..9fdad42 100644
--- a/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
+++ b/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
@@ -28,10 +28,11 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <wtf/Forward.h>
+
namespace WebCore {
class KURL;
-class String;
#if OS(WINDOWS)
void replaceNewlinesWithWindowsStyleNewlines(String&);
diff --git a/WebCore/platform/chromium/WidgetChromium.cpp b/WebCore/platform/chromium/WidgetChromium.cpp
index 94afa0d..1b7fef4 100644
--- a/WebCore/platform/chromium/WidgetChromium.cpp
+++ b/WebCore/platform/chromium/WidgetChromium.cpp
@@ -65,8 +65,6 @@ void Widget::paint(GraphicsContext*, const IntRect&)
void Widget::setFocus(bool focused)
{
- if (focused)
- ChromiumBridge::widgetSetFocus(this);
}
void Widget::setIsSelected(bool)
diff --git a/WebCore/platform/cocoa/KeyEventCocoa.h b/WebCore/platform/cocoa/KeyEventCocoa.h
index 8d486ad..d6e206e 100644
--- a/WebCore/platform/cocoa/KeyEventCocoa.h
+++ b/WebCore/platform/cocoa/KeyEventCocoa.h
@@ -26,9 +26,9 @@
#ifndef KeyEventCocoa_h
#define KeyEventCocoa_h
-namespace WebCore {
+#include <wtf/Forward.h>
-class String;
+namespace WebCore {
String keyIdentifierForCharCode(unichar charCode);
diff --git a/WebCore/platform/cocoa/KeyEventCocoa.mm b/WebCore/platform/cocoa/KeyEventCocoa.mm
index 522c420..cf83d93 100644
--- a/WebCore/platform/cocoa/KeyEventCocoa.mm
+++ b/WebCore/platform/cocoa/KeyEventCocoa.mm
@@ -31,7 +31,7 @@
#import "WindowsKeyboardCodes.h"
#import <wtf/ASCIICType.h>
-#if PLATFORM(IPHONE)
+#if PLATFORM(IOS)
#import "KeyEventCodesIPhone.h"
#endif
diff --git a/WebCore/platform/efl/ClipboardEfl.cpp b/WebCore/platform/efl/ClipboardEfl.cpp
index 1633ccb..60146b5 100644
--- a/WebCore/platform/efl/ClipboardEfl.cpp
+++ b/WebCore/platform/efl/ClipboardEfl.cpp
@@ -53,7 +53,7 @@ void ClipboardEfl::clearData(const String&)
notImplemented();
}
-void ClipboardEfl::writePlainText(const WebCore::String&)
+void ClipboardEfl::writePlainText(const WTF::String&)
{
notImplemented();
}
diff --git a/WebCore/platform/efl/ClipboardEfl.h b/WebCore/platform/efl/ClipboardEfl.h
index c8de431..d5b17c0 100644
--- a/WebCore/platform/efl/ClipboardEfl.h
+++ b/WebCore/platform/efl/ClipboardEfl.h
@@ -52,7 +52,7 @@ public:
virtual bool hasData();
- virtual void writePlainText(const WebCore::String&);
+ virtual void writePlainText(const WTF::String&);
};
}
diff --git a/WebCore/platform/efl/RenderThemeEfl.cpp b/WebCore/platform/efl/RenderThemeEfl.cpp
index d5a5365..36600a9 100644
--- a/WebCore/platform/efl/RenderThemeEfl.cpp
+++ b/WebCore/platform/efl/RenderThemeEfl.cpp
@@ -34,6 +34,7 @@
#include "Page.h"
#include "RenderBox.h"
#include "RenderObject.h"
+#include "RenderSlider.h"
#include <wtf/text/CString.h>
#include <Ecore_Evas.h>
@@ -256,7 +257,7 @@ void RenderThemeEfl::applyEdjeStateFromForm(Evas_Object* o, ControlStates states
bool RenderThemeEfl::paintThemePart(RenderObject* o, FormType type, const PaintInfo& i, const IntRect& rect)
{
- struct ThemePartCacheEntry* ce;
+ ThemePartCacheEntry* ce;
Eina_List* updates;
cairo_t* cairo;
@@ -273,6 +274,29 @@ bool RenderThemeEfl::paintThemePart(RenderObject* o, FormType type, const PaintI
cairo = i.context->platformContext();
ASSERT(cairo);
+ // Currently, only sliders needs this message; if other widget ever needs special
+ // treatment, move them to special functions.
+ if (type == SliderVertical || type == SliderHorizontal) {
+ RenderSlider* renderSlider = toRenderSlider(o);
+ Edje_Message_Float_Set* msg;
+ int max, value;
+
+ if (type == SliderVertical) {
+ max = rect.height() - renderSlider->thumbRect().height();
+ value = renderSlider->thumbRect().y();
+ } else {
+ max = rect.width() - renderSlider->thumbRect().width();
+ value = renderSlider->thumbRect().x();
+ }
+
+ msg = static_cast<Edje_Message_Float_Set*>(alloca(sizeof(Edje_Message_Float_Set) + sizeof(float)));
+
+ msg->count = 2;
+ msg->val[0] = static_cast<float>(value) / static_cast<float>(max);
+ msg->val[1] = 0.1;
+ edje_object_message_send(ce->o, EDJE_MESSAGE_FLOAT_SET, 0, msg);
+ }
+
edje_object_calc_force(ce->o);
edje_object_message_signal_process(ce->o);
updates = evas_render_updates(ecore_evas_get(ce->ee));
@@ -542,6 +566,8 @@ const char* RenderThemeEfl::edjeGroupFromFormType(FormType type) const
W("search/results_button"),
W("search/results_decoration"),
W("search/cancel_button"),
+ W("slider/vertical"),
+ W("slider/horizontal"),
#undef W
0
};
@@ -702,6 +728,8 @@ static bool supportsFocus(ControlPart appearance)
case MenulistPart:
case RadioPart:
case CheckboxPart:
+ case SliderVerticalPart:
+ case SliderHorizontalPart:
return true;
default:
return false;
@@ -730,6 +758,40 @@ int RenderThemeEfl::baselinePosition(const RenderObject* o) const
return RenderTheme::baselinePosition(o);
}
+bool RenderThemeEfl::paintSliderTrack(RenderObject* o, const PaintInfo& i, const IntRect& rect)
+{
+ if (o->style()->appearance() == SliderHorizontalPart)
+ return paintThemePart(o, SliderHorizontal, i, rect);
+ return paintThemePart(o, SliderVertical, i, rect);
+}
+
+void RenderThemeEfl::adjustSliderTrackStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
+{
+ if (!m_page && e && e->document()->page()) {
+ static_cast<RenderThemeEfl*>(e->document()->page()->theme())->adjustSliderTrackStyle(selector, style, e);
+ return;
+ }
+
+ adjustSizeConstraints(style, SliderHorizontal);
+ style->resetBorder();
+
+ const struct ThemePartDesc *desc = m_partDescs + (size_t)SliderHorizontal;
+ if (style->width().value() < desc->min.width().value())
+ style->setWidth(desc->min.width());
+ if (style->height().value() < desc->min.height().value())
+ style->setHeight(desc->min.height());
+}
+
+void RenderThemeEfl::adjustSliderThumbStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
+{
+ adjustSliderTrackStyle(selector, style, e);
+}
+
+bool RenderThemeEfl::paintSliderThumb(RenderObject* o, const PaintInfo& i, const IntRect& rect)
+{
+ return paintSliderTrack(o, i, rect);
+}
+
void RenderThemeEfl::adjustCheckboxStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
{
if (!m_page && e && e->document()->page()) {
diff --git a/WebCore/platform/efl/RenderThemeEfl.h b/WebCore/platform/efl/RenderThemeEfl.h
index 9753a76..8e5650d 100644
--- a/WebCore/platform/efl/RenderThemeEfl.h
+++ b/WebCore/platform/efl/RenderThemeEfl.h
@@ -50,6 +50,8 @@ enum FormType { // KEEP IN SYNC WITH edjeGroupFromFormType()
SearchFieldResultsButton,
SearchFieldResultsDecoration,
SearchFieldCancelButton,
+ SliderVertical,
+ SliderHorizontal,
FormTypeLast
};
@@ -135,6 +137,11 @@ public:
virtual void adjustSearchFieldCancelButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
virtual bool paintSearchFieldCancelButton(RenderObject*, const PaintInfo&, const IntRect&);
+ virtual void adjustSliderTrackStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
+ virtual bool paintSliderTrack(RenderObject*, const PaintInfo&, const IntRect&);
+
+ virtual void adjustSliderThumbStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
+ virtual bool paintSliderThumb(RenderObject*, const PaintInfo&, const IntRect&);
private:
void createCanvas();
void createEdje();
diff --git a/WebCore/platform/graphics/Color.h b/WebCore/platform/graphics/Color.h
index 9335bc4..81480b6 100644
--- a/WebCore/platform/graphics/Color.h
+++ b/WebCore/platform/graphics/Color.h
@@ -27,6 +27,7 @@
#define Color_h
#include <wtf/FastAllocBase.h>
+#include <wtf/Forward.h>
#include <wtf/unicode/Unicode.h>
#if PLATFORM(CG)
@@ -55,7 +56,6 @@ struct rgb_color;
namespace WebCore {
class Color;
-class String;
typedef unsigned RGBA32; // RGBA quadruplet
diff --git a/WebCore/platform/graphics/FontCache.h b/WebCore/platform/graphics/FontCache.h
index 1a3ba69..e6845d9 100644
--- a/WebCore/platform/graphics/FontCache.h
+++ b/WebCore/platform/graphics/FontCache.h
@@ -31,6 +31,7 @@
#define FontCache_h
#include <limits.h>
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
#include <wtf/unicode/Unicode.h>
@@ -42,7 +43,6 @@
namespace WebCore
{
-class AtomicString;
class Font;
class FontPlatformData;
class FontData;
diff --git a/WebCore/platform/graphics/FontData.h b/WebCore/platform/graphics/FontData.h
index 76927f5..ee94a98 100644
--- a/WebCore/platform/graphics/FontData.h
+++ b/WebCore/platform/graphics/FontData.h
@@ -26,13 +26,13 @@
#ifndef FontData_h
#define FontData_h
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/unicode/Unicode.h>
namespace WebCore {
class SimpleFontData;
-class String;
class FontData : public Noncopyable {
public:
diff --git a/WebCore/platform/graphics/FontSelector.h b/WebCore/platform/graphics/FontSelector.h
index 9b520b9..156bf10 100644
--- a/WebCore/platform/graphics/FontSelector.h
+++ b/WebCore/platform/graphics/FontSelector.h
@@ -26,11 +26,11 @@
#ifndef FontSelector_h
#define FontSelector_h
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
namespace WebCore {
-class AtomicString;
class FontData;
class FontDescription;
diff --git a/WebCore/platform/graphics/GraphicsContext.h b/WebCore/platform/graphics/GraphicsContext.h
index d5df153..aafbce6 100644
--- a/WebCore/platform/graphics/GraphicsContext.h
+++ b/WebCore/platform/graphics/GraphicsContext.h
@@ -69,6 +69,7 @@ class wxWindowDC;
typedef wxWindowDC PlatformGraphicsContext;
#endif
#elif PLATFORM(SKIA)
+<<<<<<< HEAD
#if PLATFORM(ANDROID)
namespace WebCore {
class PlatformGraphicsContext;
@@ -78,6 +79,12 @@ struct SkPoint;
#else
typedef class PlatformContextSkia PlatformGraphicsContext;
#endif
+=======
+namespace WebCore {
+class PlatformContextSkia;
+}
+typedef WebCore::PlatformContextSkia PlatformGraphicsContext;
+>>>>>>> webkit.org at r65072
#elif PLATFORM(HAIKU)
class BView;
typedef BView PlatformGraphicsContext;
@@ -121,6 +128,7 @@ namespace WebCore {
class Font;
class Generator;
class Gradient;
+ class GraphicsContext3D;
class GraphicsContextPlatformPrivate;
class GraphicsContextPrivate;
class ImageBuffer;
@@ -425,6 +433,11 @@ namespace WebCore {
pattern getHaikuStrokeStyle();
#endif
+#if PLATFORM(SKIA)
+ void setGraphicsContext3D(GraphicsContext3D*, const IntSize&);
+ void syncSoftwareCanvas();
+#endif
+
private:
void savePlatformState();
void restorePlatformState();
diff --git a/WebCore/platform/graphics/GraphicsContext3D.h b/WebCore/platform/graphics/GraphicsContext3D.h
index 28388f4..d702096 100644
--- a/WebCore/platform/graphics/GraphicsContext3D.h
+++ b/WebCore/platform/graphics/GraphicsContext3D.h
@@ -43,7 +43,7 @@
#include <wtf/RetainPtr.h>
typedef CGLContextObj PlatformGraphicsContext3D;
-const PlatformGraphicsContext3D NullPlatformGraphicsContext3D = 0;
+const PlatformGraphicsContext3D NullPlatformGraphicsContext3D = 0;
typedef GLuint Platform3DObject;
const Platform3DObject NullPlatform3DObject = 0;
@@ -58,12 +58,12 @@ typedef void* WebGLLayer;
class QPainter;
class QRect;
typedef void* PlatformGraphicsContext3D;
-const PlatformGraphicsContext3D NullPlatformGraphicsContext3D = 0;
+const PlatformGraphicsContext3D NullPlatformGraphicsContext3D = 0;
typedef int Platform3DObject;
const Platform3DObject NullPlatform3DObject = 0;
#else
typedef void* PlatformGraphicsContext3D;
-const PlatformGraphicsContext3D NullPlatformGraphicsContext3D = 0;
+const PlatformGraphicsContext3D NullPlatformGraphicsContext3D = 0;
typedef int Platform3DObject;
const Platform3DObject NullPlatform3DObject = 0;
#endif
@@ -73,774 +73,768 @@ const Platform3DObject NullPlatform3DObject = 0;
#endif
namespace WebCore {
- class WebGLActiveInfo;
- class ArrayBuffer;
- class ArrayBufferView;
- class WebGLBuffer;
- class Uint8Array;
- class Float32Array;
- class WebGLFramebuffer;
- class Int32Array;
- class WebGLProgram;
- class WebGLRenderbuffer;
- class WebGLRenderingContext;
- class WebGLShader;
- class WebGLTexture;
- class Image;
- class ImageData;
- class HostWindow;
-
- struct ActiveInfo {
- String name;
- unsigned type;
- int size;
- };
-
- // FIXME: ideally this would be used on all platforms.
+class ArrayBuffer;
+class ArrayBufferView;
+class CanvasRenderingContext;
+class Float32Array;
+class HostWindow;
+class Image;
+class ImageData;
+class Int32Array;
+class Uint8Array;
+class WebGLActiveInfo;
+
+struct ActiveInfo {
+ String name;
+ unsigned type;
+ int size;
+};
+
+// FIXME: ideally this would be used on all platforms.
#if PLATFORM(CHROMIUM) || PLATFORM(QT)
- class GraphicsContext3DInternal;
+class GraphicsContext3DInternal;
#endif
- class GraphicsContext3D : public Noncopyable {
- public:
- enum WebGLEnumType {
- DEPTH_BUFFER_BIT = 0x00000100,
- STENCIL_BUFFER_BIT = 0x00000400,
- COLOR_BUFFER_BIT = 0x00004000,
- POINTS = 0x0000,
- LINES = 0x0001,
- LINE_LOOP = 0x0002,
- LINE_STRIP = 0x0003,
- TRIANGLES = 0x0004,
- TRIANGLE_STRIP = 0x0005,
- TRIANGLE_FAN = 0x0006,
- ZERO = 0,
- ONE = 1,
- SRC_COLOR = 0x0300,
- ONE_MINUS_SRC_COLOR = 0x0301,
- SRC_ALPHA = 0x0302,
- ONE_MINUS_SRC_ALPHA = 0x0303,
- DST_ALPHA = 0x0304,
- ONE_MINUS_DST_ALPHA = 0x0305,
- DST_COLOR = 0x0306,
- ONE_MINUS_DST_COLOR = 0x0307,
- SRC_ALPHA_SATURATE = 0x0308,
- FUNC_ADD = 0x8006,
- BLEND_EQUATION = 0x8009,
- BLEND_EQUATION_RGB = 0x8009,
- BLEND_EQUATION_ALPHA = 0x883D,
- FUNC_SUBTRACT = 0x800A,
- FUNC_REVERSE_SUBTRACT = 0x800B,
- BLEND_DST_RGB = 0x80C8,
- BLEND_SRC_RGB = 0x80C9,
- BLEND_DST_ALPHA = 0x80CA,
- BLEND_SRC_ALPHA = 0x80CB,
- CONSTANT_COLOR = 0x8001,
- ONE_MINUS_CONSTANT_COLOR = 0x8002,
- CONSTANT_ALPHA = 0x8003,
- ONE_MINUS_CONSTANT_ALPHA = 0x8004,
- BLEND_COLOR = 0x8005,
- ARRAY_BUFFER = 0x8892,
- ELEMENT_ARRAY_BUFFER = 0x8893,
- ARRAY_BUFFER_BINDING = 0x8894,
- ELEMENT_ARRAY_BUFFER_BINDING = 0x8895,
- STREAM_DRAW = 0x88E0,
- STATIC_DRAW = 0x88E4,
- DYNAMIC_DRAW = 0x88E8,
- BUFFER_SIZE = 0x8764,
- BUFFER_USAGE = 0x8765,
- CURRENT_VERTEX_ATTRIB = 0x8626,
- FRONT = 0x0404,
- BACK = 0x0405,
- FRONT_AND_BACK = 0x0408,
- TEXTURE_2D = 0x0DE1,
- CULL_FACE = 0x0B44,
- BLEND = 0x0BE2,
- DITHER = 0x0BD0,
- STENCIL_TEST = 0x0B90,
- DEPTH_TEST = 0x0B71,
- SCISSOR_TEST = 0x0C11,
- POLYGON_OFFSET_FILL = 0x8037,
- SAMPLE_ALPHA_TO_COVERAGE = 0x809E,
- SAMPLE_COVERAGE = 0x80A0,
- NO_ERROR = 0,
- INVALID_ENUM = 0x0500,
- INVALID_VALUE = 0x0501,
- INVALID_OPERATION = 0x0502,
- OUT_OF_MEMORY = 0x0505,
- CW = 0x0900,
- CCW = 0x0901,
- LINE_WIDTH = 0x0B21,
- ALIASED_POINT_SIZE_RANGE = 0x846D,
- ALIASED_LINE_WIDTH_RANGE = 0x846E,
- CULL_FACE_MODE = 0x0B45,
- FRONT_FACE = 0x0B46,
- DEPTH_RANGE = 0x0B70,
- DEPTH_WRITEMASK = 0x0B72,
- DEPTH_CLEAR_VALUE = 0x0B73,
- DEPTH_FUNC = 0x0B74,
- STENCIL_CLEAR_VALUE = 0x0B91,
- STENCIL_FUNC = 0x0B92,
- STENCIL_FAIL = 0x0B94,
- STENCIL_PASS_DEPTH_FAIL = 0x0B95,
- STENCIL_PASS_DEPTH_PASS = 0x0B96,
- STENCIL_REF = 0x0B97,
- STENCIL_VALUE_MASK = 0x0B93,
- STENCIL_WRITEMASK = 0x0B98,
- STENCIL_BACK_FUNC = 0x8800,
- STENCIL_BACK_FAIL = 0x8801,
- STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802,
- STENCIL_BACK_PASS_DEPTH_PASS = 0x8803,
- STENCIL_BACK_REF = 0x8CA3,
- STENCIL_BACK_VALUE_MASK = 0x8CA4,
- STENCIL_BACK_WRITEMASK = 0x8CA5,
- VIEWPORT = 0x0BA2,
- SCISSOR_BOX = 0x0C10,
- COLOR_CLEAR_VALUE = 0x0C22,
- COLOR_WRITEMASK = 0x0C23,
- UNPACK_ALIGNMENT = 0x0CF5,
- PACK_ALIGNMENT = 0x0D05,
- MAX_TEXTURE_SIZE = 0x0D33,
- MAX_VIEWPORT_DIMS = 0x0D3A,
- SUBPIXEL_BITS = 0x0D50,
- RED_BITS = 0x0D52,
- GREEN_BITS = 0x0D53,
- BLUE_BITS = 0x0D54,
- ALPHA_BITS = 0x0D55,
- DEPTH_BITS = 0x0D56,
- STENCIL_BITS = 0x0D57,
- POLYGON_OFFSET_UNITS = 0x2A00,
- POLYGON_OFFSET_FACTOR = 0x8038,
- TEXTURE_BINDING_2D = 0x8069,
- SAMPLE_BUFFERS = 0x80A8,
- SAMPLES = 0x80A9,
- SAMPLE_COVERAGE_VALUE = 0x80AA,
- SAMPLE_COVERAGE_INVERT = 0x80AB,
- NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2,
- COMPRESSED_TEXTURE_FORMATS = 0x86A3,
- DONT_CARE = 0x1100,
- FASTEST = 0x1101,
- NICEST = 0x1102,
- GENERATE_MIPMAP_HINT = 0x8192,
- BYTE = 0x1400,
- UNSIGNED_BYTE = 0x1401,
- SHORT = 0x1402,
- UNSIGNED_SHORT = 0x1403,
- INT = 0x1404,
- UNSIGNED_INT = 0x1405,
- FLOAT = 0x1406,
- FIXED = 0x140C,
- DEPTH_COMPONENT = 0x1902,
- ALPHA = 0x1906,
- RGB = 0x1907,
- RGBA = 0x1908,
- LUMINANCE = 0x1909,
- LUMINANCE_ALPHA = 0x190A,
- UNSIGNED_SHORT_4_4_4_4 = 0x8033,
- UNSIGNED_SHORT_5_5_5_1 = 0x8034,
- UNSIGNED_SHORT_5_6_5 = 0x8363,
- FRAGMENT_SHADER = 0x8B30,
- VERTEX_SHADER = 0x8B31,
- MAX_VERTEX_ATTRIBS = 0x8869,
- MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB,
- MAX_VARYING_VECTORS = 0x8DFC,
- MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D,
- MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C,
- MAX_TEXTURE_IMAGE_UNITS = 0x8872,
- MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD,
- SHADER_TYPE = 0x8B4F,
- DELETE_STATUS = 0x8B80,
- LINK_STATUS = 0x8B82,
- VALIDATE_STATUS = 0x8B83,
- ATTACHED_SHADERS = 0x8B85,
- ACTIVE_UNIFORMS = 0x8B86,
- ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87,
- ACTIVE_ATTRIBUTES = 0x8B89,
- ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A,
- SHADING_LANGUAGE_VERSION = 0x8B8C,
- CURRENT_PROGRAM = 0x8B8D,
- NEVER = 0x0200,
- LESS = 0x0201,
- EQUAL = 0x0202,
- LEQUAL = 0x0203,
- GREATER = 0x0204,
- NOTEQUAL = 0x0205,
- GEQUAL = 0x0206,
- ALWAYS = 0x0207,
- KEEP = 0x1E00,
- REPLACE = 0x1E01,
- INCR = 0x1E02,
- DECR = 0x1E03,
- INVERT = 0x150A,
- INCR_WRAP = 0x8507,
- DECR_WRAP = 0x8508,
- VENDOR = 0x1F00,
- RENDERER = 0x1F01,
- VERSION = 0x1F02,
- EXTENSIONS = 0x1F03,
- NEAREST = 0x2600,
- LINEAR = 0x2601,
- NEAREST_MIPMAP_NEAREST = 0x2700,
- LINEAR_MIPMAP_NEAREST = 0x2701,
- NEAREST_MIPMAP_LINEAR = 0x2702,
- LINEAR_MIPMAP_LINEAR = 0x2703,
- TEXTURE_MAG_FILTER = 0x2800,
- TEXTURE_MIN_FILTER = 0x2801,
- TEXTURE_WRAP_S = 0x2802,
- TEXTURE_WRAP_T = 0x2803,
- TEXTURE = 0x1702,
- TEXTURE_CUBE_MAP = 0x8513,
- TEXTURE_BINDING_CUBE_MAP = 0x8514,
- TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515,
- TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516,
- TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517,
- TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518,
- TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519,
- TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A,
- MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C,
- TEXTURE0 = 0x84C0,
- TEXTURE1 = 0x84C1,
- TEXTURE2 = 0x84C2,
- TEXTURE3 = 0x84C3,
- TEXTURE4 = 0x84C4,
- TEXTURE5 = 0x84C5,
- TEXTURE6 = 0x84C6,
- TEXTURE7 = 0x84C7,
- TEXTURE8 = 0x84C8,
- TEXTURE9 = 0x84C9,
- TEXTURE10 = 0x84CA,
- TEXTURE11 = 0x84CB,
- TEXTURE12 = 0x84CC,
- TEXTURE13 = 0x84CD,
- TEXTURE14 = 0x84CE,
- TEXTURE15 = 0x84CF,
- TEXTURE16 = 0x84D0,
- TEXTURE17 = 0x84D1,
- TEXTURE18 = 0x84D2,
- TEXTURE19 = 0x84D3,
- TEXTURE20 = 0x84D4,
- TEXTURE21 = 0x84D5,
- TEXTURE22 = 0x84D6,
- TEXTURE23 = 0x84D7,
- TEXTURE24 = 0x84D8,
- TEXTURE25 = 0x84D9,
- TEXTURE26 = 0x84DA,
- TEXTURE27 = 0x84DB,
- TEXTURE28 = 0x84DC,
- TEXTURE29 = 0x84DD,
- TEXTURE30 = 0x84DE,
- TEXTURE31 = 0x84DF,
- ACTIVE_TEXTURE = 0x84E0,
- REPEAT = 0x2901,
- CLAMP_TO_EDGE = 0x812F,
- MIRRORED_REPEAT = 0x8370,
- FLOAT_VEC2 = 0x8B50,
- FLOAT_VEC3 = 0x8B51,
- FLOAT_VEC4 = 0x8B52,
- INT_VEC2 = 0x8B53,
- INT_VEC3 = 0x8B54,
- INT_VEC4 = 0x8B55,
- BOOL = 0x8B56,
- BOOL_VEC2 = 0x8B57,
- BOOL_VEC3 = 0x8B58,
- BOOL_VEC4 = 0x8B59,
- FLOAT_MAT2 = 0x8B5A,
- FLOAT_MAT3 = 0x8B5B,
- FLOAT_MAT4 = 0x8B5C,
- SAMPLER_2D = 0x8B5E,
- SAMPLER_CUBE = 0x8B60,
- VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622,
- VERTEX_ATTRIB_ARRAY_SIZE = 0x8623,
- VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624,
- VERTEX_ATTRIB_ARRAY_TYPE = 0x8625,
- VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A,
- VERTEX_ATTRIB_ARRAY_POINTER = 0x8645,
- VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F,
- IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A,
- IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B,
- COMPILE_STATUS = 0x8B81,
- INFO_LOG_LENGTH = 0x8B84,
- SHADER_SOURCE_LENGTH = 0x8B88,
- SHADER_COMPILER = 0x8DFA,
- SHADER_BINARY_FORMATS = 0x8DF8,
- NUM_SHADER_BINARY_FORMATS = 0x8DF9,
- LOW_FLOAT = 0x8DF0,
- MEDIUM_FLOAT = 0x8DF1,
- HIGH_FLOAT = 0x8DF2,
- LOW_INT = 0x8DF3,
- MEDIUM_INT = 0x8DF4,
- HIGH_INT = 0x8DF5,
- FRAMEBUFFER = 0x8D40,
- RENDERBUFFER = 0x8D41,
- RGBA4 = 0x8056,
- RGB5_A1 = 0x8057,
- RGB565 = 0x8D62,
- DEPTH_COMPONENT16 = 0x81A5,
- STENCIL_INDEX = 0x1901,
- STENCIL_INDEX8 = 0x8D48,
- DEPTH_STENCIL = 0x84F9,
- RENDERBUFFER_WIDTH = 0x8D42,
- RENDERBUFFER_HEIGHT = 0x8D43,
- RENDERBUFFER_INTERNAL_FORMAT = 0x8D44,
- RENDERBUFFER_RED_SIZE = 0x8D50,
- RENDERBUFFER_GREEN_SIZE = 0x8D51,
- RENDERBUFFER_BLUE_SIZE = 0x8D52,
- RENDERBUFFER_ALPHA_SIZE = 0x8D53,
- RENDERBUFFER_DEPTH_SIZE = 0x8D54,
- RENDERBUFFER_STENCIL_SIZE = 0x8D55,
- FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0,
- FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1,
- FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2,
- FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3,
- COLOR_ATTACHMENT0 = 0x8CE0,
- DEPTH_ATTACHMENT = 0x8D00,
- STENCIL_ATTACHMENT = 0x8D20,
- DEPTH_STENCIL_ATTACHMENT = 0x821A,
- NONE = 0,
- FRAMEBUFFER_COMPLETE = 0x8CD5,
- FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6,
- FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7,
- FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9,
- FRAMEBUFFER_UNSUPPORTED = 0x8CDD,
- FRAMEBUFFER_BINDING = 0x8CA6,
- RENDERBUFFER_BINDING = 0x8CA7,
- MAX_RENDERBUFFER_SIZE = 0x84E8,
- INVALID_FRAMEBUFFER_OPERATION = 0x0506,
-
- // WebGL-specific enums
- UNPACK_FLIP_Y_WEBGL = 0x9240,
- UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241
- };
-
- // Context creation attributes.
- struct Attributes {
- Attributes()
- : alpha(true)
- , depth(true)
- , stencil(false)
- , antialias(true)
- , premultipliedAlpha(true)
- {
- }
-
- bool alpha;
- bool depth;
- bool stencil;
- bool antialias;
- bool premultipliedAlpha;
- };
-
- static PassOwnPtr<GraphicsContext3D> create(Attributes attrs, HostWindow* hostWindow);
- virtual ~GraphicsContext3D();
+class GraphicsContext3D : public Noncopyable {
+public:
+ enum WebGLEnumType {
+ DEPTH_BUFFER_BIT = 0x00000100,
+ STENCIL_BUFFER_BIT = 0x00000400,
+ COLOR_BUFFER_BIT = 0x00004000,
+ POINTS = 0x0000,
+ LINES = 0x0001,
+ LINE_LOOP = 0x0002,
+ LINE_STRIP = 0x0003,
+ TRIANGLES = 0x0004,
+ TRIANGLE_STRIP = 0x0005,
+ TRIANGLE_FAN = 0x0006,
+ ZERO = 0,
+ ONE = 1,
+ SRC_COLOR = 0x0300,
+ ONE_MINUS_SRC_COLOR = 0x0301,
+ SRC_ALPHA = 0x0302,
+ ONE_MINUS_SRC_ALPHA = 0x0303,
+ DST_ALPHA = 0x0304,
+ ONE_MINUS_DST_ALPHA = 0x0305,
+ DST_COLOR = 0x0306,
+ ONE_MINUS_DST_COLOR = 0x0307,
+ SRC_ALPHA_SATURATE = 0x0308,
+ FUNC_ADD = 0x8006,
+ BLEND_EQUATION = 0x8009,
+ BLEND_EQUATION_RGB = 0x8009,
+ BLEND_EQUATION_ALPHA = 0x883D,
+ FUNC_SUBTRACT = 0x800A,
+ FUNC_REVERSE_SUBTRACT = 0x800B,
+ BLEND_DST_RGB = 0x80C8,
+ BLEND_SRC_RGB = 0x80C9,
+ BLEND_DST_ALPHA = 0x80CA,
+ BLEND_SRC_ALPHA = 0x80CB,
+ CONSTANT_COLOR = 0x8001,
+ ONE_MINUS_CONSTANT_COLOR = 0x8002,
+ CONSTANT_ALPHA = 0x8003,
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004,
+ BLEND_COLOR = 0x8005,
+ ARRAY_BUFFER = 0x8892,
+ ELEMENT_ARRAY_BUFFER = 0x8893,
+ ARRAY_BUFFER_BINDING = 0x8894,
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895,
+ STREAM_DRAW = 0x88E0,
+ STATIC_DRAW = 0x88E4,
+ DYNAMIC_DRAW = 0x88E8,
+ BUFFER_SIZE = 0x8764,
+ BUFFER_USAGE = 0x8765,
+ CURRENT_VERTEX_ATTRIB = 0x8626,
+ FRONT = 0x0404,
+ BACK = 0x0405,
+ FRONT_AND_BACK = 0x0408,
+ TEXTURE_2D = 0x0DE1,
+ CULL_FACE = 0x0B44,
+ BLEND = 0x0BE2,
+ DITHER = 0x0BD0,
+ STENCIL_TEST = 0x0B90,
+ DEPTH_TEST = 0x0B71,
+ SCISSOR_TEST = 0x0C11,
+ POLYGON_OFFSET_FILL = 0x8037,
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E,
+ SAMPLE_COVERAGE = 0x80A0,
+ NO_ERROR = 0,
+ INVALID_ENUM = 0x0500,
+ INVALID_VALUE = 0x0501,
+ INVALID_OPERATION = 0x0502,
+ OUT_OF_MEMORY = 0x0505,
+ CW = 0x0900,
+ CCW = 0x0901,
+ LINE_WIDTH = 0x0B21,
+ ALIASED_POINT_SIZE_RANGE = 0x846D,
+ ALIASED_LINE_WIDTH_RANGE = 0x846E,
+ CULL_FACE_MODE = 0x0B45,
+ FRONT_FACE = 0x0B46,
+ DEPTH_RANGE = 0x0B70,
+ DEPTH_WRITEMASK = 0x0B72,
+ DEPTH_CLEAR_VALUE = 0x0B73,
+ DEPTH_FUNC = 0x0B74,
+ STENCIL_CLEAR_VALUE = 0x0B91,
+ STENCIL_FUNC = 0x0B92,
+ STENCIL_FAIL = 0x0B94,
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95,
+ STENCIL_PASS_DEPTH_PASS = 0x0B96,
+ STENCIL_REF = 0x0B97,
+ STENCIL_VALUE_MASK = 0x0B93,
+ STENCIL_WRITEMASK = 0x0B98,
+ STENCIL_BACK_FUNC = 0x8800,
+ STENCIL_BACK_FAIL = 0x8801,
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802,
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803,
+ STENCIL_BACK_REF = 0x8CA3,
+ STENCIL_BACK_VALUE_MASK = 0x8CA4,
+ STENCIL_BACK_WRITEMASK = 0x8CA5,
+ VIEWPORT = 0x0BA2,
+ SCISSOR_BOX = 0x0C10,
+ COLOR_CLEAR_VALUE = 0x0C22,
+ COLOR_WRITEMASK = 0x0C23,
+ UNPACK_ALIGNMENT = 0x0CF5,
+ PACK_ALIGNMENT = 0x0D05,
+ MAX_TEXTURE_SIZE = 0x0D33,
+ MAX_VIEWPORT_DIMS = 0x0D3A,
+ SUBPIXEL_BITS = 0x0D50,
+ RED_BITS = 0x0D52,
+ GREEN_BITS = 0x0D53,
+ BLUE_BITS = 0x0D54,
+ ALPHA_BITS = 0x0D55,
+ DEPTH_BITS = 0x0D56,
+ STENCIL_BITS = 0x0D57,
+ POLYGON_OFFSET_UNITS = 0x2A00,
+ POLYGON_OFFSET_FACTOR = 0x8038,
+ TEXTURE_BINDING_2D = 0x8069,
+ SAMPLE_BUFFERS = 0x80A8,
+ SAMPLES = 0x80A9,
+ SAMPLE_COVERAGE_VALUE = 0x80AA,
+ SAMPLE_COVERAGE_INVERT = 0x80AB,
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2,
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3,
+ DONT_CARE = 0x1100,
+ FASTEST = 0x1101,
+ NICEST = 0x1102,
+ GENERATE_MIPMAP_HINT = 0x8192,
+ BYTE = 0x1400,
+ UNSIGNED_BYTE = 0x1401,
+ SHORT = 0x1402,
+ UNSIGNED_SHORT = 0x1403,
+ INT = 0x1404,
+ UNSIGNED_INT = 0x1405,
+ FLOAT = 0x1406,
+ FIXED = 0x140C,
+ DEPTH_COMPONENT = 0x1902,
+ ALPHA = 0x1906,
+ RGB = 0x1907,
+ RGBA = 0x1908,
+ LUMINANCE = 0x1909,
+ LUMINANCE_ALPHA = 0x190A,
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033,
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034,
+ UNSIGNED_SHORT_5_6_5 = 0x8363,
+ FRAGMENT_SHADER = 0x8B30,
+ VERTEX_SHADER = 0x8B31,
+ MAX_VERTEX_ATTRIBS = 0x8869,
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB,
+ MAX_VARYING_VECTORS = 0x8DFC,
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D,
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C,
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872,
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD,
+ SHADER_TYPE = 0x8B4F,
+ DELETE_STATUS = 0x8B80,
+ LINK_STATUS = 0x8B82,
+ VALIDATE_STATUS = 0x8B83,
+ ATTACHED_SHADERS = 0x8B85,
+ ACTIVE_UNIFORMS = 0x8B86,
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87,
+ ACTIVE_ATTRIBUTES = 0x8B89,
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A,
+ SHADING_LANGUAGE_VERSION = 0x8B8C,
+ CURRENT_PROGRAM = 0x8B8D,
+ NEVER = 0x0200,
+ LESS = 0x0201,
+ EQUAL = 0x0202,
+ LEQUAL = 0x0203,
+ GREATER = 0x0204,
+ NOTEQUAL = 0x0205,
+ GEQUAL = 0x0206,
+ ALWAYS = 0x0207,
+ KEEP = 0x1E00,
+ REPLACE = 0x1E01,
+ INCR = 0x1E02,
+ DECR = 0x1E03,
+ INVERT = 0x150A,
+ INCR_WRAP = 0x8507,
+ DECR_WRAP = 0x8508,
+ VENDOR = 0x1F00,
+ RENDERER = 0x1F01,
+ VERSION = 0x1F02,
+ EXTENSIONS = 0x1F03,
+ NEAREST = 0x2600,
+ LINEAR = 0x2601,
+ NEAREST_MIPMAP_NEAREST = 0x2700,
+ LINEAR_MIPMAP_NEAREST = 0x2701,
+ NEAREST_MIPMAP_LINEAR = 0x2702,
+ LINEAR_MIPMAP_LINEAR = 0x2703,
+ TEXTURE_MAG_FILTER = 0x2800,
+ TEXTURE_MIN_FILTER = 0x2801,
+ TEXTURE_WRAP_S = 0x2802,
+ TEXTURE_WRAP_T = 0x2803,
+ TEXTURE = 0x1702,
+ TEXTURE_CUBE_MAP = 0x8513,
+ TEXTURE_BINDING_CUBE_MAP = 0x8514,
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515,
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516,
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517,
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518,
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519,
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A,
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C,
+ TEXTURE0 = 0x84C0,
+ TEXTURE1 = 0x84C1,
+ TEXTURE2 = 0x84C2,
+ TEXTURE3 = 0x84C3,
+ TEXTURE4 = 0x84C4,
+ TEXTURE5 = 0x84C5,
+ TEXTURE6 = 0x84C6,
+ TEXTURE7 = 0x84C7,
+ TEXTURE8 = 0x84C8,
+ TEXTURE9 = 0x84C9,
+ TEXTURE10 = 0x84CA,
+ TEXTURE11 = 0x84CB,
+ TEXTURE12 = 0x84CC,
+ TEXTURE13 = 0x84CD,
+ TEXTURE14 = 0x84CE,
+ TEXTURE15 = 0x84CF,
+ TEXTURE16 = 0x84D0,
+ TEXTURE17 = 0x84D1,
+ TEXTURE18 = 0x84D2,
+ TEXTURE19 = 0x84D3,
+ TEXTURE20 = 0x84D4,
+ TEXTURE21 = 0x84D5,
+ TEXTURE22 = 0x84D6,
+ TEXTURE23 = 0x84D7,
+ TEXTURE24 = 0x84D8,
+ TEXTURE25 = 0x84D9,
+ TEXTURE26 = 0x84DA,
+ TEXTURE27 = 0x84DB,
+ TEXTURE28 = 0x84DC,
+ TEXTURE29 = 0x84DD,
+ TEXTURE30 = 0x84DE,
+ TEXTURE31 = 0x84DF,
+ ACTIVE_TEXTURE = 0x84E0,
+ REPEAT = 0x2901,
+ CLAMP_TO_EDGE = 0x812F,
+ MIRRORED_REPEAT = 0x8370,
+ FLOAT_VEC2 = 0x8B50,
+ FLOAT_VEC3 = 0x8B51,
+ FLOAT_VEC4 = 0x8B52,
+ INT_VEC2 = 0x8B53,
+ INT_VEC3 = 0x8B54,
+ INT_VEC4 = 0x8B55,
+ BOOL = 0x8B56,
+ BOOL_VEC2 = 0x8B57,
+ BOOL_VEC3 = 0x8B58,
+ BOOL_VEC4 = 0x8B59,
+ FLOAT_MAT2 = 0x8B5A,
+ FLOAT_MAT3 = 0x8B5B,
+ FLOAT_MAT4 = 0x8B5C,
+ SAMPLER_2D = 0x8B5E,
+ SAMPLER_CUBE = 0x8B60,
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622,
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623,
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624,
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625,
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A,
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645,
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F,
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A,
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B,
+ COMPILE_STATUS = 0x8B81,
+ INFO_LOG_LENGTH = 0x8B84,
+ SHADER_SOURCE_LENGTH = 0x8B88,
+ SHADER_COMPILER = 0x8DFA,
+ SHADER_BINARY_FORMATS = 0x8DF8,
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9,
+ LOW_FLOAT = 0x8DF0,
+ MEDIUM_FLOAT = 0x8DF1,
+ HIGH_FLOAT = 0x8DF2,
+ LOW_INT = 0x8DF3,
+ MEDIUM_INT = 0x8DF4,
+ HIGH_INT = 0x8DF5,
+ FRAMEBUFFER = 0x8D40,
+ RENDERBUFFER = 0x8D41,
+ RGBA4 = 0x8056,
+ RGB5_A1 = 0x8057,
+ RGB565 = 0x8D62,
+ DEPTH_COMPONENT16 = 0x81A5,
+ STENCIL_INDEX = 0x1901,
+ STENCIL_INDEX8 = 0x8D48,
+ DEPTH_STENCIL = 0x84F9,
+ RENDERBUFFER_WIDTH = 0x8D42,
+ RENDERBUFFER_HEIGHT = 0x8D43,
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44,
+ RENDERBUFFER_RED_SIZE = 0x8D50,
+ RENDERBUFFER_GREEN_SIZE = 0x8D51,
+ RENDERBUFFER_BLUE_SIZE = 0x8D52,
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53,
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54,
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55,
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0,
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1,
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2,
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3,
+ COLOR_ATTACHMENT0 = 0x8CE0,
+ DEPTH_ATTACHMENT = 0x8D00,
+ STENCIL_ATTACHMENT = 0x8D20,
+ DEPTH_STENCIL_ATTACHMENT = 0x821A,
+ NONE = 0,
+ FRAMEBUFFER_COMPLETE = 0x8CD5,
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6,
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7,
+ FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9,
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD,
+ FRAMEBUFFER_BINDING = 0x8CA6,
+ RENDERBUFFER_BINDING = 0x8CA7,
+ MAX_RENDERBUFFER_SIZE = 0x84E8,
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506,
+
+ // WebGL-specific enums
+ UNPACK_FLIP_Y_WEBGL = 0x9240,
+ UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241
+ };
+
+ // Context creation attributes.
+ struct Attributes {
+ Attributes()
+ : alpha(true)
+ , depth(true)
+ , stencil(false)
+ , antialias(true)
+ , premultipliedAlpha(true)
+ {
+ }
+
+ bool alpha;
+ bool depth;
+ bool stencil;
+ bool antialias;
+ bool premultipliedAlpha;
+ };
+
+ static PassOwnPtr<GraphicsContext3D> create(Attributes attrs, HostWindow* hostWindow);
+ virtual ~GraphicsContext3D();
#if PLATFORM(MAC)
- PlatformGraphicsContext3D platformGraphicsContext3D() const { return m_contextObj; }
- Platform3DObject platformTexture() const { return m_texture; }
- CALayer* platformLayer() const { return static_cast<CALayer*>(m_webGLLayer.get()); }
+ PlatformGraphicsContext3D platformGraphicsContext3D() const { return m_contextObj; }
+ Platform3DObject platformTexture() const { return m_texture; }
+ CALayer* platformLayer() const { return static_cast<CALayer*>(m_webGLLayer.get()); }
#elif PLATFORM(CHROMIUM)
- PlatformGraphicsContext3D platformGraphicsContext3D() const;
- Platform3DObject platformTexture() const;
+ PlatformGraphicsContext3D platformGraphicsContext3D() const;
+ Platform3DObject platformTexture() const;
#if USE(ACCELERATED_COMPOSITING)
- PlatformLayer* platformLayer() const;
+ PlatformLayer* platformLayer() const;
#endif
#elif PLATFORM(QT)
- PlatformGraphicsContext3D platformGraphicsContext3D();
- Platform3DObject platformTexture() const;
+ PlatformGraphicsContext3D platformGraphicsContext3D();
+ Platform3DObject platformTexture() const;
#if USE(ACCELERATED_COMPOSITING)
- PlatformLayer* platformLayer() const { return 0; }
+ PlatformLayer* platformLayer() const { return 0; }
#endif
#else
- PlatformGraphicsContext3D platformGraphicsContext3D() const { return NullPlatformGraphicsContext3D; }
- Platform3DObject platformTexture() const { return NullPlatform3DObject; }
+ PlatformGraphicsContext3D platformGraphicsContext3D() const { return NullPlatformGraphicsContext3D; }
+ Platform3DObject platformTexture() const { return NullPlatform3DObject; }
#if USE(ACCELERATED_COMPOSITING)
- PlatformLayer* platformLayer() const { return 0; }
+ PlatformLayer* platformLayer() const { return 0; }
#endif
#endif
- void makeContextCurrent();
+ void makeContextCurrent();
#if PLATFORM(MAC) || PLATFORM(CHROMIUM)
- // With multisampling on, blit from multisampleFBO to regular FBO.
- void prepareTexture();
+ // With multisampling on, blit from multisampleFBO to regular FBO.
+ void prepareTexture();
#endif
- // Helper to return the size in bytes of OpenGL data types
- // like GL_FLOAT, GL_INT, etc.
- int sizeInBytes(int type);
-
- bool isGLES2Compliant() const;
-
- //----------------------------------------------------------------------
- // Helpers for texture uploading and pixel readback.
- //
-
- // Computes the components per pixel and bytes per component
- // for the given format and type combination. Returns false if
- // either was an invalid enum.
- bool computeFormatAndTypeParameters(unsigned int format,
- unsigned int type,
- unsigned long* componentsPerPixel,
- unsigned long* bytesPerComponent);
-
- // Extracts the contents of the given Image into the passed Vector,
- // packing the pixel data according to the given format and type,
- // and obeying the flipY and premultiplyAlpha flags. Returns true
- // upon success.
- bool extractImageData(Image* image,
- unsigned int format,
- unsigned int type,
- bool flipY,
- bool premultiplyAlpha,
- Vector<uint8_t>& data);
-
- // Extracts the contents of the given ImageData into the passed Vector,
- // packing the pixel data according to the given format and type,
- // and obeying the flipY and premultiplyAlpha flags. Returns true
- // upon success.
- bool extractImageData(ImageData*,
- unsigned int format,
- unsigned int type,
- bool flipY,
- bool premultiplyAlpha,
- Vector<uint8_t>& data);
-
- // Helper function which extracts the user-supplied texture
- // data, applying the flipY and premultiplyAlpha parameters.
- // If the data is not tightly packed according to the passed
- // unpackAlignment, the output data will be tightly packed.
- // Returns true if successful, false if any error occurred.
- bool extractTextureData(unsigned int width, unsigned int height,
- unsigned int format, unsigned int type,
- unsigned int unpackAlignment,
- bool flipY, bool premultiplyAlpha,
- ArrayBufferView* pixels,
- Vector<uint8_t>& data);
-
- // Flips the given image data vertically, in-place.
- void flipVertically(void* imageData,
- unsigned int width,
- unsigned int height,
- unsigned int bytesPerPixel,
- unsigned int unpackAlignment);
-
- // Attempt to enumerate all possible native image formats to
- // reduce the amount of temporary allocations during texture
- // uploading. This enum must be public because it is accessed
- // by non-member functions.
- enum SourceDataFormat {
- kSourceFormatRGBA8,
- kSourceFormatRGB8,
- kSourceFormatBGRA8,
- kSourceFormatRGBA5551,
- kSourceFormatRGBA4444,
- kSourceFormatRGB565,
- kSourceFormatR8,
- kSourceFormatRA8,
- kSourceFormatA8
- };
-
- //----------------------------------------------------------------------
- // Entry points for WebGL.
- //
-
- void activeTexture(unsigned long texture);
- void attachShader(WebGLProgram* program, WebGLShader* shader);
- void bindAttribLocation(WebGLProgram*, unsigned long index, const String& name);
- void bindBuffer(unsigned long target, WebGLBuffer*);
- void bindFramebuffer(unsigned long target, WebGLFramebuffer*);
- void bindRenderbuffer(unsigned long target, WebGLRenderbuffer*);
- void bindTexture(unsigned long target, WebGLTexture* texture);
- void blendColor(double red, double green, double blue, double alpha);
- void blendEquation(unsigned long mode);
- void blendEquationSeparate(unsigned long modeRGB, unsigned long modeAlpha);
- void blendFunc(unsigned long sfactor, unsigned long dfactor);
- void blendFuncSeparate(unsigned long srcRGB, unsigned long dstRGB, unsigned long srcAlpha, unsigned long dstAlpha);
-
- void bufferData(unsigned long target, int size, unsigned long usage);
- void bufferData(unsigned long target, ArrayBuffer* data, unsigned long usage);
- void bufferData(unsigned long target, ArrayBufferView* data, unsigned long usage);
- void bufferSubData(unsigned long target, long offset, ArrayBuffer* data);
- void bufferSubData(unsigned long target, long offset, ArrayBufferView* data);
-
- unsigned long checkFramebufferStatus(unsigned long target);
- void clear(unsigned long mask);
- void clearColor(double red, double green, double blue, double alpha);
- void clearDepth(double depth);
- void clearStencil(long s);
- void colorMask(bool red, bool green, bool blue, bool alpha);
- void compileShader(WebGLShader*);
-
- //void compressedTexImage2D(unsigned long target, long level, unsigned long internalformat, unsigned long width, unsigned long height, long border, unsigned long imageSize, const void* data);
- //void compressedTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, unsigned long width, unsigned long height, unsigned long format, unsigned long imageSize, const void* data);
-
- void copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, unsigned long width, unsigned long height, long border);
- void copyTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, long x, long y, unsigned long width, unsigned long height);
- void cullFace(unsigned long mode);
- void depthFunc(unsigned long func);
- void depthMask(bool flag);
- void depthRange(double zNear, double zFar);
- void detachShader(WebGLProgram*, WebGLShader*);
- void disable(unsigned long cap);
- void disableVertexAttribArray(unsigned long index);
- void drawArrays(unsigned long mode, long first, long count);
- void drawElements(unsigned long mode, unsigned long count, unsigned long type, long offset);
-
- void enable(unsigned long cap);
- void enableVertexAttribArray(unsigned long index);
- void finish();
- void flush();
- void framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, WebGLRenderbuffer*);
- void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, WebGLTexture*, long level);
- void frontFace(unsigned long mode);
- void generateMipmap(unsigned long target);
-
- bool getActiveAttrib(WebGLProgram* program, unsigned long index, ActiveInfo&);
- bool getActiveUniform(WebGLProgram* program, unsigned long index, ActiveInfo&);
-
- void getAttachedShaders(WebGLProgram* program, int maxCount, int* count, unsigned int* shaders);
-
- int getAttribLocation(WebGLProgram*, const String& name);
-
- void getBooleanv(unsigned long pname, unsigned char* value);
-
- void getBufferParameteriv(unsigned long target, unsigned long pname, int* value);
-
- Attributes getContextAttributes();
-
- unsigned long getError();
-
- void getFloatv(unsigned long pname, float* value);
-
- void getFramebufferAttachmentParameteriv(unsigned long target, unsigned long attachment, unsigned long pname, int* value);
-
- void getIntegerv(unsigned long pname, int* value);
-
- void getProgramiv(WebGLProgram* program, unsigned long pname, int* value);
-
- String getProgramInfoLog(WebGLProgram*);
-
- void getRenderbufferParameteriv(unsigned long target, unsigned long pname, int* value);
-
- void getShaderiv(WebGLShader*, unsigned long pname, int* value);
-
- String getShaderInfoLog(WebGLShader*);
-
- // TBD
- // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-
- String getShaderSource(WebGLShader*);
- String getString(unsigned long name);
-
- void getTexParameterfv(unsigned long target, unsigned long pname, float* value);
- void getTexParameteriv(unsigned long target, unsigned long pname, int* value);
-
- void getUniformfv(WebGLProgram* program, long location, float* value);
- void getUniformiv(WebGLProgram* program, long location, int* value);
-
- long getUniformLocation(WebGLProgram*, const String& name);
-
- void getVertexAttribfv(unsigned long index, unsigned long pname, float* value);
- void getVertexAttribiv(unsigned long index, unsigned long pname, int* value);
-
- long getVertexAttribOffset(unsigned long index, unsigned long pname);
-
- void hint(unsigned long target, unsigned long mode);
- bool isBuffer(WebGLBuffer*);
- bool isEnabled(unsigned long cap);
- bool isFramebuffer(WebGLFramebuffer*);
- bool isProgram(WebGLProgram*);
- bool isRenderbuffer(WebGLRenderbuffer*);
- bool isShader(WebGLShader*);
- bool isTexture(WebGLTexture*);
- void lineWidth(double);
- void linkProgram(WebGLProgram*);
- void pixelStorei(unsigned long pname, long param);
- void polygonOffset(double factor, double units);
-
- void readPixels(long x, long y, unsigned long width, unsigned long height, unsigned long format, unsigned long type, void* data);
-
- void releaseShaderCompiler();
- void renderbufferStorage(unsigned long target, unsigned long internalformat, unsigned long width, unsigned long height);
- void sampleCoverage(double value, bool invert);
- void scissor(long x, long y, unsigned long width, unsigned long height);
- void shaderSource(WebGLShader*, const String& string);
- void stencilFunc(unsigned long func, long ref, unsigned long mask);
- void stencilFuncSeparate(unsigned long face, unsigned long func, long ref, unsigned long mask);
- void stencilMask(unsigned long mask);
- void stencilMaskSeparate(unsigned long face, unsigned long mask);
- void stencilOp(unsigned long fail, unsigned long zfail, unsigned long zpass);
- void stencilOpSeparate(unsigned long face, unsigned long fail, unsigned long zfail, unsigned long zpass);
-
- int texImage2D(unsigned target, unsigned level, unsigned internalformat, unsigned width, unsigned height, unsigned border, unsigned format, unsigned type, void* pixels);
-
- void texParameterf(unsigned target, unsigned pname, float param);
- void texParameteri(unsigned target, unsigned pname, int param);
-
- int texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, unsigned width, unsigned height, unsigned format, unsigned type, void* pixels);
-
- void uniform1f(long location, float x);
- void uniform1fv(long location, float* v, int size);
- void uniform1i(long location, int x);
- void uniform1iv(long location, int* v, int size);
- void uniform2f(long location, float x, float y);
- void uniform2fv(long location, float* v, int size);
- void uniform2i(long location, int x, int y);
- void uniform2iv(long location, int* v, int size);
- void uniform3f(long location, float x, float y, float z);
- void uniform3fv(long location, float* v, int size);
- void uniform3i(long location, int x, int y, int z);
- void uniform3iv(long location, int* v, int size);
- void uniform4f(long location, float x, float y, float z, float w);
- void uniform4fv(long location, float* v, int size);
- void uniform4i(long location, int x, int y, int z, int w);
- void uniform4iv(long location, int* v, int size);
- void uniformMatrix2fv(long location, bool transpose, float* value, int size);
- void uniformMatrix3fv(long location, bool transpose, float* value, int size);
- void uniformMatrix4fv(long location, bool transpose, float* value, int size);
+ // Helper to return the size in bytes of OpenGL data types
+ // like GL_FLOAT, GL_INT, etc.
+ int sizeInBytes(int type);
+
+ bool isGLES2Compliant() const;
+
+ //----------------------------------------------------------------------
+ // Helpers for texture uploading and pixel readback.
+ //
+
+ // Computes the components per pixel and bytes per component
+ // for the given format and type combination. Returns false if
+ // either was an invalid enum.
+ bool computeFormatAndTypeParameters(unsigned int format,
+ unsigned int type,
+ unsigned long* componentsPerPixel,
+ unsigned long* bytesPerComponent);
+
+ // Extracts the contents of the given Image into the passed Vector,
+ // packing the pixel data according to the given format and type,
+ // and obeying the flipY and premultiplyAlpha flags. Returns true
+ // upon success.
+ bool extractImageData(Image* image,
+ unsigned int format,
+ unsigned int type,
+ bool flipY,
+ bool premultiplyAlpha,
+ Vector<uint8_t>& data);
+
+ // Extracts the contents of the given ImageData into the passed Vector,
+ // packing the pixel data according to the given format and type,
+ // and obeying the flipY and premultiplyAlpha flags. Returns true
+ // upon success.
+ bool extractImageData(ImageData*,
+ unsigned int format,
+ unsigned int type,
+ bool flipY,
+ bool premultiplyAlpha,
+ Vector<uint8_t>& data);
+
+ // Helper function which extracts the user-supplied texture
+ // data, applying the flipY and premultiplyAlpha parameters.
+ // If the data is not tightly packed according to the passed
+ // unpackAlignment, the output data will be tightly packed.
+ // Returns true if successful, false if any error occurred.
+ bool extractTextureData(unsigned int width, unsigned int height,
+ unsigned int format, unsigned int type,
+ unsigned int unpackAlignment,
+ bool flipY, bool premultiplyAlpha,
+ ArrayBufferView* pixels,
+ Vector<uint8_t>& data);
+
+ // Flips the given image data vertically, in-place.
+ void flipVertically(void* imageData,
+ unsigned int width,
+ unsigned int height,
+ unsigned int bytesPerPixel,
+ unsigned int unpackAlignment);
+
+ // Attempt to enumerate all possible native image formats to
+ // reduce the amount of temporary allocations during texture
+ // uploading. This enum must be public because it is accessed
+ // by non-member functions.
+ enum SourceDataFormat {
+ kSourceFormatRGBA8,
+ kSourceFormatRGB8,
+ kSourceFormatBGRA8,
+ kSourceFormatRGBA5551,
+ kSourceFormatRGBA4444,
+ kSourceFormatRGB565,
+ kSourceFormatR8,
+ kSourceFormatRA8,
+ kSourceFormatA8
+ };
+
+ //----------------------------------------------------------------------
+ // Entry points for WebGL.
+ //
+
+ void activeTexture(unsigned long texture);
+ void attachShader(Platform3DObject program, Platform3DObject shader);
+ void bindAttribLocation(Platform3DObject, unsigned long index, const String& name);
+ void bindBuffer(unsigned long target, Platform3DObject);
+ void bindFramebuffer(unsigned long target, Platform3DObject);
+ void bindRenderbuffer(unsigned long target, Platform3DObject);
+ void bindTexture(unsigned long target, Platform3DObject texture);
+ void blendColor(double red, double green, double blue, double alpha);
+ void blendEquation(unsigned long mode);
+ void blendEquationSeparate(unsigned long modeRGB, unsigned long modeAlpha);
+ void blendFunc(unsigned long sfactor, unsigned long dfactor);
+ void blendFuncSeparate(unsigned long srcRGB, unsigned long dstRGB, unsigned long srcAlpha, unsigned long dstAlpha);
+
+ void bufferData(unsigned long target, int size, unsigned long usage);
+ void bufferData(unsigned long target, ArrayBuffer* data, unsigned long usage);
+ void bufferData(unsigned long target, ArrayBufferView* data, unsigned long usage);
+ void bufferSubData(unsigned long target, long offset, ArrayBuffer* data);
+ void bufferSubData(unsigned long target, long offset, ArrayBufferView* data);
+
+ unsigned long checkFramebufferStatus(unsigned long target);
+ void clear(unsigned long mask);
+ void clearColor(double red, double green, double blue, double alpha);
+ void clearDepth(double depth);
+ void clearStencil(long s);
+ void colorMask(bool red, bool green, bool blue, bool alpha);
+ void compileShader(Platform3DObject);
+
+ // void compressedTexImage2D(unsigned long target, long level, unsigned long internalformat, unsigned long width, unsigned long height, long border, unsigned long imageSize, const void* data);
+ // void compressedTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, unsigned long width, unsigned long height, unsigned long format, unsigned long imageSize, const void* data);
+
+ void copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, unsigned long width, unsigned long height, long border);
+ void copyTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, long x, long y, unsigned long width, unsigned long height);
+ void cullFace(unsigned long mode);
+ void depthFunc(unsigned long func);
+ void depthMask(bool flag);
+ void depthRange(double zNear, double zFar);
+ void detachShader(Platform3DObject, Platform3DObject);
+ void disable(unsigned long cap);
+ void disableVertexAttribArray(unsigned long index);
+ void drawArrays(unsigned long mode, long first, long count);
+ void drawElements(unsigned long mode, unsigned long count, unsigned long type, long offset);
- void useProgram(WebGLProgram*);
- void validateProgram(WebGLProgram*);
+ void enable(unsigned long cap);
+ void enableVertexAttribArray(unsigned long index);
+ void finish();
+ void flush();
+ void framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, Platform3DObject);
+ void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, Platform3DObject, long level);
+ void frontFace(unsigned long mode);
+ void generateMipmap(unsigned long target);
+
+ bool getActiveAttrib(Platform3DObject program, unsigned long index, ActiveInfo&);
+ bool getActiveUniform(Platform3DObject program, unsigned long index, ActiveInfo&);
+
+ void getAttachedShaders(Platform3DObject program, int maxCount, int* count, unsigned int* shaders);
+
+ int getAttribLocation(Platform3DObject, const String& name);
+
+ void getBooleanv(unsigned long pname, unsigned char* value);
+
+ void getBufferParameteriv(unsigned long target, unsigned long pname, int* value);
+
+ Attributes getContextAttributes();
+
+ unsigned long getError();
+
+ void getFloatv(unsigned long pname, float* value);
+
+ void getFramebufferAttachmentParameteriv(unsigned long target, unsigned long attachment, unsigned long pname, int* value);
+
+ void getIntegerv(unsigned long pname, int* value);
+
+ void getProgramiv(Platform3DObject program, unsigned long pname, int* value);
+
+ String getProgramInfoLog(Platform3DObject);
+
+ void getRenderbufferParameteriv(unsigned long target, unsigned long pname, int* value);
+
+ void getShaderiv(Platform3DObject, unsigned long pname, int* value);
+
+ String getShaderInfoLog(Platform3DObject);
+
+ // TBD
+ // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+
+ String getShaderSource(Platform3DObject);
+ String getString(unsigned long name);
+
+ void getTexParameterfv(unsigned long target, unsigned long pname, float* value);
+ void getTexParameteriv(unsigned long target, unsigned long pname, int* value);
+
+ void getUniformfv(Platform3DObject program, long location, float* value);
+ void getUniformiv(Platform3DObject program, long location, int* value);
+
+ long getUniformLocation(Platform3DObject, const String& name);
+
+ void getVertexAttribfv(unsigned long index, unsigned long pname, float* value);
+ void getVertexAttribiv(unsigned long index, unsigned long pname, int* value);
+
+ long getVertexAttribOffset(unsigned long index, unsigned long pname);
+
+ void hint(unsigned long target, unsigned long mode);
+ bool isBuffer(Platform3DObject);
+ bool isEnabled(unsigned long cap);
+ bool isFramebuffer(Platform3DObject);
+ bool isProgram(Platform3DObject);
+ bool isRenderbuffer(Platform3DObject);
+ bool isShader(Platform3DObject);
+ bool isTexture(Platform3DObject);
+ void lineWidth(double);
+ void linkProgram(Platform3DObject);
+ void pixelStorei(unsigned long pname, long param);
+ void polygonOffset(double factor, double units);
+
+ void readPixels(long x, long y, unsigned long width, unsigned long height, unsigned long format, unsigned long type, void* data);
+
+ void releaseShaderCompiler();
+ void renderbufferStorage(unsigned long target, unsigned long internalformat, unsigned long width, unsigned long height);
+ void sampleCoverage(double value, bool invert);
+ void scissor(long x, long y, unsigned long width, unsigned long height);
+ void shaderSource(Platform3DObject, const String& string);
+ void stencilFunc(unsigned long func, long ref, unsigned long mask);
+ void stencilFuncSeparate(unsigned long face, unsigned long func, long ref, unsigned long mask);
+ void stencilMask(unsigned long mask);
+ void stencilMaskSeparate(unsigned long face, unsigned long mask);
+ void stencilOp(unsigned long fail, unsigned long zfail, unsigned long zpass);
+ void stencilOpSeparate(unsigned long face, unsigned long fail, unsigned long zfail, unsigned long zpass);
- void vertexAttrib1f(unsigned long indx, float x);
- void vertexAttrib1fv(unsigned long indx, float* values);
- void vertexAttrib2f(unsigned long indx, float x, float y);
- void vertexAttrib2fv(unsigned long indx, float* values);
- void vertexAttrib3f(unsigned long indx, float x, float y, float z);
- void vertexAttrib3fv(unsigned long indx, float* values);
- void vertexAttrib4f(unsigned long indx, float x, float y, float z, float w);
- void vertexAttrib4fv(unsigned long indx, float* values);
- void vertexAttribPointer(unsigned long indx, int size, int type, bool normalized,
- unsigned long stride, unsigned long offset);
-
- void viewport(long x, long y, unsigned long width, unsigned long height);
-
- void reshape(int width, int height);
+ int texImage2D(unsigned target, unsigned level, unsigned internalformat, unsigned width, unsigned height, unsigned border, unsigned format, unsigned type, void* pixels);
+
+ void texParameterf(unsigned target, unsigned pname, float param);
+ void texParameteri(unsigned target, unsigned pname, int param);
+
+ int texSubImage2D(unsigned target, unsigned level, unsigned xoffset, unsigned yoffset, unsigned width, unsigned height, unsigned format, unsigned type, void* pixels);
+
+ void uniform1f(long location, float x);
+ void uniform1fv(long location, float* v, int size);
+ void uniform1i(long location, int x);
+ void uniform1iv(long location, int* v, int size);
+ void uniform2f(long location, float x, float y);
+ void uniform2fv(long location, float* v, int size);
+ void uniform2i(long location, int x, int y);
+ void uniform2iv(long location, int* v, int size);
+ void uniform3f(long location, float x, float y, float z);
+ void uniform3fv(long location, float* v, int size);
+ void uniform3i(long location, int x, int y, int z);
+ void uniform3iv(long location, int* v, int size);
+ void uniform4f(long location, float x, float y, float z, float w);
+ void uniform4fv(long location, float* v, int size);
+ void uniform4i(long location, int x, int y, int z, int w);
+ void uniform4iv(long location, int* v, int size);
+ void uniformMatrix2fv(long location, bool transpose, float* value, int size);
+ void uniformMatrix3fv(long location, bool transpose, float* value, int size);
+ void uniformMatrix4fv(long location, bool transpose, float* value, int size);
+
+ void useProgram(Platform3DObject);
+ void validateProgram(Platform3DObject);
+
+ void vertexAttrib1f(unsigned long indx, float x);
+ void vertexAttrib1fv(unsigned long indx, float* values);
+ void vertexAttrib2f(unsigned long indx, float x, float y);
+ void vertexAttrib2fv(unsigned long indx, float* values);
+ void vertexAttrib3f(unsigned long indx, float x, float y, float z);
+ void vertexAttrib3fv(unsigned long indx, float* values);
+ void vertexAttrib4f(unsigned long indx, float x, float y, float z, float w);
+ void vertexAttrib4fv(unsigned long indx, float* values);
+ void vertexAttribPointer(unsigned long indx, int size, int type, bool normalized,
+ unsigned long stride, unsigned long offset);
+
+ void viewport(long x, long y, unsigned long width, unsigned long height);
+
+ void reshape(int width, int height);
#if PLATFORM(CG)
- void paintToCanvas(const unsigned char* imagePixels, int imageWidth, int imageHeight,
- int canvasWidth, int canvasHeight, CGContextRef context);
+ void paintToCanvas(const unsigned char* imagePixels, int imageWidth, int imageHeight,
+ int canvasWidth, int canvasHeight, CGContextRef context);
#endif
- void paintRenderingResultsToCanvas(WebGLRenderingContext* context);
+ void paintRenderingResultsToCanvas(CanvasRenderingContext* context);
- // Helpers for notification about paint events
- void beginPaint(WebGLRenderingContext* context);
- void endPaint();
+ // Helpers for notification about paint events
+ void beginPaint(CanvasRenderingContext* context);
+ void endPaint();
#if PLATFORM(QT)
- void paint(QPainter* painter, const QRect& rect) const;
+ void paint(QPainter* painter, const QRect& rect) const;
#endif
- // Support for buffer creation and deletion
- unsigned createBuffer();
- unsigned createFramebuffer();
- unsigned createProgram();
- unsigned createRenderbuffer();
- unsigned createShader(unsigned long);
- unsigned createTexture();
-
- void deleteBuffer(unsigned);
- void deleteFramebuffer(unsigned);
- void deleteProgram(unsigned);
- void deleteRenderbuffer(unsigned);
- void deleteShader(unsigned);
- void deleteTexture(unsigned);
-
- // Synthesizes an OpenGL error which will be returned from a
- // later call to getError. This is used to emulate OpenGL ES
- // 2.0 behavior on the desktop and to enforce additional error
- // checking mandated by WebGL.
- //
- // Per the behavior of glGetError, this stores at most one
- // instance of any given error, and returns them from calls to
- // getError in the order they were added.
- void synthesizeGLError(unsigned long error);
-
- private:
- GraphicsContext3D(Attributes attrs, HostWindow* hostWindow);
-
- // Each platform must provide an implementation of this method.
- //
- // Gets the data for the given Image into outputVector in the
- // format specified by the (OpenGL-style) format and type
- // arguments. Despite the fact that the outputVector contains
- // uint8_t, if the format and type specify packed pixels, then
- // it will essentially contain uint16_t after the extraction
- // process.
- //
- // If premultiplyAlpha is true, the alpha channel, if any,
- // will be multiplied into the color channels during the
- // extraction process. This premultiplication occurs before
- // any packing of pixel data.
- //
- // No vertical flip of the image data is performed by this
- // method.
- bool getImageData(Image* image,
- unsigned int format,
- unsigned int type,
- bool premultiplyAlpha,
- Vector<uint8_t>& outputVector);
-
- // Possible alpha operations that may need to occur during
- // pixel packing. FIXME: kAlphaDoUnmultiply is lossy and must
- // be removed.
- enum AlphaOp {
- kAlphaDoNothing = 0,
- kAlphaDoPremultiply = 1,
- kAlphaDoUnmultiply = 2
- };
-
- // Helper for getImageData which implements packing of pixel
- // data into the specified OpenGL destination format and type.
- // A sourceUnpackAlignment of zero indicates that the source
- // data is tightly packed. Non-zero values may take a slow path.
- // Destination data will have no gaps between rows.
- bool packPixels(const uint8_t* sourceData,
- SourceDataFormat sourceDataFormat,
- unsigned int width,
- unsigned int height,
- unsigned int sourceUnpackAlignment,
- unsigned int destinationFormat,
- unsigned int destinationType,
- AlphaOp alphaOp,
- void* destinationData);
+ // Support for buffer creation and deletion
+ unsigned createBuffer();
+ unsigned createFramebuffer();
+ unsigned createProgram();
+ unsigned createRenderbuffer();
+ unsigned createShader(unsigned long);
+ unsigned createTexture();
+
+ void deleteBuffer(unsigned);
+ void deleteFramebuffer(unsigned);
+ void deleteProgram(unsigned);
+ void deleteRenderbuffer(unsigned);
+ void deleteShader(unsigned);
+ void deleteTexture(unsigned);
+
+ // Synthesizes an OpenGL error which will be returned from a
+ // later call to getError. This is used to emulate OpenGL ES
+ // 2.0 behavior on the desktop and to enforce additional error
+ // checking mandated by WebGL.
+ //
+ // Per the behavior of glGetError, this stores at most one
+ // instance of any given error, and returns them from calls to
+ // getError in the order they were added.
+ void synthesizeGLError(unsigned long error);
+
+ private:
+ GraphicsContext3D(Attributes attrs, HostWindow* hostWindow);
+
+ // Each platform must provide an implementation of this method.
+ //
+ // Gets the data for the given Image into outputVector in the
+ // format specified by the (OpenGL-style) format and type
+ // arguments. Despite the fact that the outputVector contains
+ // uint8_t, if the format and type specify packed pixels, then
+ // it will essentially contain uint16_t after the extraction
+ // process.
+ //
+ // If premultiplyAlpha is true, the alpha channel, if any,
+ // will be multiplied into the color channels during the
+ // extraction process. This premultiplication occurs before
+ // any packing of pixel data.
+ //
+ // No vertical flip of the image data is performed by this
+ // method.
+ bool getImageData(Image* image,
+ unsigned int format,
+ unsigned int type,
+ bool premultiplyAlpha,
+ Vector<uint8_t>& outputVector);
+
+ // Possible alpha operations that may need to occur during
+ // pixel packing. FIXME: kAlphaDoUnmultiply is lossy and must
+ // be removed.
+ enum AlphaOp {
+ kAlphaDoNothing = 0,
+ kAlphaDoPremultiply = 1,
+ kAlphaDoUnmultiply = 2
+ };
+
+ // Helper for getImageData which implements packing of pixel
+ // data into the specified OpenGL destination format and type.
+ // A sourceUnpackAlignment of zero indicates that the source
+ // data is tightly packed. Non-zero values may take a slow path.
+ // Destination data will have no gaps between rows.
+ bool packPixels(const uint8_t* sourceData,
+ SourceDataFormat sourceDataFormat,
+ unsigned int width,
+ unsigned int height,
+ unsigned int sourceUnpackAlignment,
+ unsigned int destinationFormat,
+ unsigned int destinationType,
+ AlphaOp alphaOp,
+ void* destinationData);
#if PLATFORM(MAC)
- // Take into account the user's requested context creation attributes,
- // in particular stencil and antialias, and determine which could or
- // could not be honored based on the capabilities of the OpenGL
- // implementation.
- void validateAttributes();
+ // Take into account the user's requested context creation attributes,
+ // in particular stencil and antialias, and determine which could or
+ // could not be honored based on the capabilities of the OpenGL
+ // implementation.
+ void validateAttributes();
#endif
- int m_currentWidth, m_currentHeight;
-
+ int m_currentWidth, m_currentHeight;
+
#if PLATFORM(MAC)
- Attributes m_attrs;
- Vector<Vector<float> > m_vertexArray;
-
- CGLContextObj m_contextObj;
- RetainPtr<WebGLLayer> m_webGLLayer;
- GLuint m_texture;
- GLuint m_fbo;
- GLuint m_depthStencilBuffer;
-
- // For tracking which FBO is bound
- GLuint m_boundFBO;
-
- // For multisampling
- GLuint m_multisampleFBO;
- GLuint m_multisampleDepthStencilBuffer;
- GLuint m_multisampleColorBuffer;
-
- // Errors raised by synthesizeGLError().
- ListHashSet<unsigned long> m_syntheticErrors;
-#endif
-
- // FIXME: ideally this would be used on all platforms.
+ Attributes m_attrs;
+ Vector<Vector<float> > m_vertexArray;
+
+ CGLContextObj m_contextObj;
+ RetainPtr<WebGLLayer> m_webGLLayer;
+ GLuint m_texture;
+ GLuint m_fbo;
+ GLuint m_depthStencilBuffer;
+
+ // For tracking which FBO is bound
+ GLuint m_boundFBO;
+
+ // For multisampling
+ GLuint m_multisampleFBO;
+ GLuint m_multisampleDepthStencilBuffer;
+ GLuint m_multisampleColorBuffer;
+
+ // Errors raised by synthesizeGLError().
+ ListHashSet<unsigned long> m_syntheticErrors;
+#endif
+
+ // FIXME: ideally this would be used on all platforms.
#if PLATFORM(CHROMIUM) || PLATFORM(QT)
- friend class GraphicsContext3DInternal;
- OwnPtr<GraphicsContext3DInternal> m_internal;
+ friend class GraphicsContext3DInternal;
+ OwnPtr<GraphicsContext3DInternal> m_internal;
#endif
- };
+};
} // namespace WebCore
diff --git a/WebCore/platform/graphics/GraphicsLayer.cpp b/WebCore/platform/graphics/GraphicsLayer.cpp
index c1e2ed6..5003907 100644
--- a/WebCore/platform/graphics/GraphicsLayer.cpp
+++ b/WebCore/platform/graphics/GraphicsLayer.cpp
@@ -526,7 +526,7 @@ void showGraphicsLayerTree(const WebCore::GraphicsLayer* layer)
if (!layer)
return;
- WebCore::String output = layer->layerTreeAsText(LayerTreeAsTextDebug);
+ WTF::String output = layer->layerTreeAsText(LayerTreeAsTextDebug);
fprintf(stderr, "%s\n", output.utf8().data());
}
#endif
diff --git a/WebCore/platform/graphics/GraphicsLayer.h b/WebCore/platform/graphics/GraphicsLayer.h
index a5819f4..0f74cd5 100644
--- a/WebCore/platform/graphics/GraphicsLayer.h
+++ b/WebCore/platform/graphics/GraphicsLayer.h
@@ -298,9 +298,7 @@ public:
virtual void setContentsToImage(Image*) { }
virtual void setContentsToMedia(PlatformLayer*) { } // video or plug-in
virtual void setContentsBackgroundColor(const Color&) { }
-#if ENABLE(3D_CANVAS)
- virtual void setContentsToWebGL(PlatformLayer*) { }
-#endif
+ virtual void setContentsToCanvas(PlatformLayer*) { }
virtual bool hasContentsLayer() const { return false; }
// Callback from the underlying graphics system to draw layer contents.
diff --git a/WebCore/platform/graphics/GraphicsTypes.h b/WebCore/platform/graphics/GraphicsTypes.h
index 769207a..1e73f25 100644
--- a/WebCore/platform/graphics/GraphicsTypes.h
+++ b/WebCore/platform/graphics/GraphicsTypes.h
@@ -26,9 +26,9 @@
#ifndef GraphicsTypes_h
#define GraphicsTypes_h
-namespace WebCore {
+#include <wtf/Forward.h>
- class String;
+namespace WebCore {
// Note: These constants exactly match the NSCompositeOperator constants of
// AppKit on Mac OS X Tiger. If these ever change, we'll need to change the
diff --git a/WebCore/platform/graphics/Icon.h b/WebCore/platform/graphics/Icon.h
index 3390679..c83685f 100644
--- a/WebCore/platform/graphics/Icon.h
+++ b/WebCore/platform/graphics/Icon.h
@@ -49,7 +49,6 @@ namespace WebCore {
class GraphicsContext;
class IntRect;
-class String;
class Icon : public RefCounted<Icon> {
public:
diff --git a/WebCore/platform/graphics/Image.h b/WebCore/platform/graphics/Image.h
index 3230df5..7c00b71 100644
--- a/WebCore/platform/graphics/Image.h
+++ b/WebCore/platform/graphics/Image.h
@@ -55,10 +55,6 @@ typedef SIZE* LPSIZE;
typedef struct HBITMAP__ *HBITMAP;
#endif
-#if PLATFORM(SKIA)
-class NativeImageSkia;
-#endif
-
#if PLATFORM(QT)
#include <QPixmap>
#endif
diff --git a/WebCore/platform/graphics/ImageBuffer.h b/WebCore/platform/graphics/ImageBuffer.h
index cb5d63f..a54c721 100644
--- a/WebCore/platform/graphics/ImageBuffer.h
+++ b/WebCore/platform/graphics/ImageBuffer.h
@@ -32,6 +32,7 @@
#include "Image.h"
#include "IntSize.h"
#include "ImageBufferData.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
@@ -42,7 +43,6 @@ namespace WebCore {
class ImageData;
class IntPoint;
class IntRect;
- class String;
enum ImageColorSpace {
Unknown,
diff --git a/WebCore/platform/graphics/ImageSource.h b/WebCore/platform/graphics/ImageSource.h
index 6913e4d..3226b41 100644
--- a/WebCore/platform/graphics/ImageSource.h
+++ b/WebCore/platform/graphics/ImageSource.h
@@ -27,6 +27,7 @@
#ifndef ImageSource_h
#define ImageSource_h
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/Vector.h>
@@ -46,6 +47,7 @@ QT_END_NAMESPACE
struct _cairo_surface;
typedef struct _cairo_surface cairo_surface_t;
#elif PLATFORM(SKIA)
+<<<<<<< HEAD
#if PLATFORM(ANDROID)
#include "SkString.h"
class SkBitmapRef;
@@ -53,6 +55,11 @@ class PrivateAndroidImageSourceRec;
#else
class NativeImageSkia;
#endif
+=======
+namespace WebCore {
+class NativeImageSkia;
+}
+>>>>>>> webkit.org at r65072
#elif PLATFORM(HAIKU)
class BBitmap;
#elif OS(WINCE)
@@ -64,7 +71,6 @@ namespace WebCore {
class IntPoint;
class IntSize;
class SharedBuffer;
-class String;
#if PLATFORM(CG)
typedef CGImageSourceRef NativeImageSourcePtr;
@@ -109,6 +115,11 @@ typedef wxBitmap* NativeImagePtr;
#endif
#elif PLATFORM(CAIRO)
typedef cairo_surface_t* NativeImagePtr;
+<<<<<<< HEAD
+=======
+#elif PLATFORM(SKIA)
+typedef WebCore::NativeImageSkia* NativeImagePtr;
+>>>>>>> webkit.org at r65072
#elif PLATFORM(HAIKU)
typedef BBitmap* NativeImagePtr;
#elif OS(WINCE)
diff --git a/WebCore/platform/graphics/MediaPlayer.cpp b/WebCore/platform/graphics/MediaPlayer.cpp
index 9290dfe..b8b742d 100644
--- a/WebCore/platform/graphics/MediaPlayer.cpp
+++ b/WebCore/platform/graphics/MediaPlayer.cpp
@@ -297,6 +297,11 @@ bool MediaPlayer::hasAvailableVideoFrame() const
return m_private->hasAvailableVideoFrame();
}
+void MediaPlayer::prepareForRendering()
+{
+ return m_private->prepareForRendering();
+}
+
bool MediaPlayer::canLoadPoster() const
{
return m_private->canLoadPoster();
diff --git a/WebCore/platform/graphics/MediaPlayer.h b/WebCore/platform/graphics/MediaPlayer.h
index dea5100..4da697a 100644
--- a/WebCore/platform/graphics/MediaPlayer.h
+++ b/WebCore/platform/graphics/MediaPlayer.h
@@ -35,6 +35,7 @@
#include "Document.h"
#include "IntRect.h"
#include "StringHash.h"
+#include <wtf/Forward.h>
#include <wtf/HashSet.h>
#include <wtf/OwnPtr.h>
#include <wtf/Noncopyable.h>
@@ -88,7 +89,6 @@ class GraphicsContext;
class IntRect;
class IntSize;
class MediaPlayer;
-class String;
class TimeRanges;
class MediaPlayerClient {
@@ -251,6 +251,7 @@ public:
MediaPlayerClient* mediaPlayerClient() const { return m_mediaPlayerClient; }
bool hasAvailableVideoFrame() const;
+ void prepareForRendering();
bool canLoadPoster() const;
void setPoster(const String&);
diff --git a/WebCore/platform/graphics/MediaPlayerPrivate.h b/WebCore/platform/graphics/MediaPlayerPrivate.h
index 40aeacb..a8d9b86 100644
--- a/WebCore/platform/graphics/MediaPlayerPrivate.h
+++ b/WebCore/platform/graphics/MediaPlayerPrivate.h
@@ -29,12 +29,12 @@
#if ENABLE(VIDEO)
#include "MediaPlayer.h"
+#include <wtf/Forward.h>
namespace WebCore {
class IntRect;
class IntSize;
-class String;
class MediaPlayerPrivateInterface : public Noncopyable {
public:
@@ -123,6 +123,8 @@ public:
virtual MediaPlayer::MovieLoadType movieLoadType() const { return MediaPlayer::Unknown; }
+ virtual void prepareForRendering() { }
+
};
}
diff --git a/WebCore/platform/graphics/Path.h b/WebCore/platform/graphics/Path.h
index 86b77f8..43ba889 100644
--- a/WebCore/platform/graphics/Path.h
+++ b/WebCore/platform/graphics/Path.h
@@ -30,6 +30,7 @@
#include <algorithm>
#include <wtf/FastAllocBase.h>
+#include <wtf/Forward.h>
#if PLATFORM(CG)
typedef struct CGPath PlatformPath;
@@ -78,7 +79,6 @@ namespace WebCore {
class FloatRect;
class FloatSize;
class GraphicsContext;
- class String;
class StrokeStyleApplier;
enum WindRule {
diff --git a/WebCore/platform/graphics/SimpleFontData.cpp b/WebCore/platform/graphics/SimpleFontData.cpp
index 1cc3b4c..7980643 100644
--- a/WebCore/platform/graphics/SimpleFontData.cpp
+++ b/WebCore/platform/graphics/SimpleFontData.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2008 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2005, 2008, 2010 Apple Inc. All rights reserved.
* Copyright (C) 2006 Alexey Proskuryakov
*
* Redistribution and use in source and binary forms, with or without
@@ -47,64 +47,66 @@ using namespace std;
namespace WebCore {
-SimpleFontData::SimpleFontData(const FontPlatformData& f, bool customFont, bool loading, SVGFontData* svgFontData)
+SimpleFontData::SimpleFontData(const FontPlatformData& platformData, bool isCustomFont, bool isLoading)
: m_maxCharWidth(-1)
, m_avgCharWidth(-1)
, m_unitsPerEm(defaultUnitsPerEm)
- , m_platformData(f)
+ , m_platformData(platformData)
, m_treatAsFixedPitch(false)
+ , m_isCustomFont(isCustomFont)
+ , m_isLoading(isLoading)
+ , m_smallCapsFontData(0)
+{
+ platformInit();
+ platformGlyphInit();
+ platformCharWidthInit();
+}
+
#if ENABLE(SVG_FONTS)
+SimpleFontData::SimpleFontData(PassOwnPtr<SVGFontData> svgFontData, int size, bool syntheticBold, bool syntheticItalic)
+ : m_platformData(FontPlatformData(size, syntheticBold, syntheticItalic))
+ , m_treatAsFixedPitch(false)
, m_svgFontData(svgFontData)
-#endif
- , m_isCustomFont(customFont)
- , m_isLoading(loading)
+ , m_isCustomFont(true)
+ , m_isLoading(false)
, m_smallCapsFontData(0)
{
-#if !ENABLE(SVG_FONTS)
- UNUSED_PARAM(svgFontData);
-#else
- if (SVGFontFaceElement* svgFontFaceElement = svgFontData ? svgFontData->svgFontFaceElement() : 0) {
- m_unitsPerEm = svgFontFaceElement->unitsPerEm();
+ SVGFontFaceElement* svgFontFaceElement = m_svgFontData->svgFontFaceElement();
+ m_unitsPerEm = svgFontFaceElement->unitsPerEm();
- double scale = f.size();
- if (m_unitsPerEm)
- scale /= m_unitsPerEm;
+ double scale = size;
+ if (m_unitsPerEm)
+ scale /= m_unitsPerEm;
- m_ascent = static_cast<int>(svgFontFaceElement->ascent() * scale);
- m_descent = static_cast<int>(svgFontFaceElement->descent() * scale);
- m_xHeight = static_cast<int>(svgFontFaceElement->xHeight() * scale);
- m_lineGap = 0.1f * f.size();
- m_lineSpacing = m_ascent + m_descent + m_lineGap;
+ m_ascent = static_cast<int>(svgFontFaceElement->ascent() * scale);
+ m_descent = static_cast<int>(svgFontFaceElement->descent() * scale);
+ m_xHeight = static_cast<int>(svgFontFaceElement->xHeight() * scale);
+ m_lineGap = 0.1f * size;
+ m_lineSpacing = m_ascent + m_descent + m_lineGap;
- SVGFontElement* associatedFontElement = svgFontFaceElement->associatedFontElement();
+ SVGFontElement* associatedFontElement = svgFontFaceElement->associatedFontElement();
- Vector<SVGGlyphIdentifier> spaceGlyphs;
- associatedFontElement->getGlyphIdentifiersForString(String(" ", 1), spaceGlyphs);
- m_spaceWidth = spaceGlyphs.isEmpty() ? m_xHeight : static_cast<float>(spaceGlyphs.first().horizontalAdvanceX * scale);
+ Vector<SVGGlyphIdentifier> spaceGlyphs;
+ associatedFontElement->getGlyphIdentifiersForString(String(" ", 1), spaceGlyphs);
+ m_spaceWidth = spaceGlyphs.isEmpty() ? m_xHeight : static_cast<float>(spaceGlyphs.first().horizontalAdvanceX * scale);
- Vector<SVGGlyphIdentifier> numeralZeroGlyphs;
- associatedFontElement->getGlyphIdentifiersForString(String("0", 1), numeralZeroGlyphs);
- m_avgCharWidth = numeralZeroGlyphs.isEmpty() ? m_spaceWidth : static_cast<float>(numeralZeroGlyphs.first().horizontalAdvanceX * scale);
+ Vector<SVGGlyphIdentifier> numeralZeroGlyphs;
+ associatedFontElement->getGlyphIdentifiersForString(String("0", 1), numeralZeroGlyphs);
+ m_avgCharWidth = numeralZeroGlyphs.isEmpty() ? m_spaceWidth : static_cast<float>(numeralZeroGlyphs.first().horizontalAdvanceX * scale);
- Vector<SVGGlyphIdentifier> letterWGlyphs;
- associatedFontElement->getGlyphIdentifiersForString(String("W", 1), letterWGlyphs);
- m_maxCharWidth = letterWGlyphs.isEmpty() ? m_ascent : static_cast<float>(letterWGlyphs.first().horizontalAdvanceX * scale);
+ Vector<SVGGlyphIdentifier> letterWGlyphs;
+ associatedFontElement->getGlyphIdentifiersForString(String("W", 1), letterWGlyphs);
+ m_maxCharWidth = letterWGlyphs.isEmpty() ? m_ascent : static_cast<float>(letterWGlyphs.first().horizontalAdvanceX * scale);
- // FIXME: is there a way we can get the space glyph from the SVGGlyphIdentifier above?
- m_spaceGlyph = 0;
- m_zeroWidthSpaceGlyph = 0;
- determinePitch();
- m_adjustedSpaceWidth = roundf(m_spaceWidth);
- m_missingGlyphData.fontData = this;
- m_missingGlyphData.glyph = 0;
- return;
- }
-#endif
-
- platformInit();
- platformGlyphInit();
- platformCharWidthInit();
+ // FIXME: is there a way we can get the space glyph from the SVGGlyphIdentifier above?
+ m_spaceGlyph = 0;
+ m_zeroWidthSpaceGlyph = 0;
+ determinePitch();
+ m_adjustedSpaceWidth = roundf(m_spaceWidth);
+ m_missingGlyphData.fontData = this;
+ m_missingGlyphData.glyph = 0;
}
+#endif
#if !PLATFORM(QT)
// Estimates of avgCharWidth and maxCharWidth for platforms that don't support accessing these values from the font.
diff --git a/WebCore/platform/graphics/SimpleFontData.h b/WebCore/platform/graphics/SimpleFontData.h
index ba959e4..535554f 100644
--- a/WebCore/platform/graphics/SimpleFontData.h
+++ b/WebCore/platform/graphics/SimpleFontData.h
@@ -1,7 +1,7 @@
/*
* This file is part of the internal font implementation.
*
- * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2008, 2010 Apple Inc. All rights reserved.
* Copyright (C) 2007-2008 Torch Mobile, Inc.
*
* This library is free software; you can redistribute it and/or
@@ -38,7 +38,6 @@ typedef struct OpaqueATSUStyle* ATSUStyle;
#endif
#if USE(CORE_TEXT)
-#include <ApplicationServices/ApplicationServices.h>
#include <wtf/RetainPtr.h>
#endif
@@ -62,7 +61,6 @@ typedef struct OpaqueATSUStyle* ATSUStyle;
namespace WebCore {
class FontDescription;
-class FontPlatformData;
class SharedBuffer;
class SVGFontData;
@@ -70,10 +68,12 @@ enum Pitch { UnknownPitch, FixedPitch, VariablePitch };
class SimpleFontData : public FontData {
public:
- SimpleFontData(const FontPlatformData&, bool customFont = false, bool loading = false, SVGFontData* data = 0);
+ SimpleFontData(const FontPlatformData&, bool isCustomFont = false, bool isLoading = false);
+#if ENABLE(SVG_FONTS)
+ SimpleFontData(PassOwnPtr<SVGFontData>, int size, bool syntheticBold, bool syntheticItalic);
+#endif
virtual ~SimpleFontData();
-public:
const FontPlatformData& platformData() const { return m_platformData; }
SimpleFontData* smallCapsFontData(const FontDescription& fontDescription) const;
@@ -131,7 +131,6 @@ public:
#endif
#if USE(CORE_TEXT)
- CTFontRef getCTFont() const;
CFDictionaryRef getCFStringAttributes(TypesettingFeatures) const;
#endif
@@ -236,7 +235,6 @@ private:
#endif
#if USE(CORE_TEXT)
- mutable RetainPtr<CTFontRef> m_CTFont;
mutable HashMap<unsigned, RetainPtr<CFDictionaryRef> > m_CFStringAttributes;
#endif
diff --git a/WebCore/platform/graphics/StringTruncator.h b/WebCore/platform/graphics/StringTruncator.h
index 0a8532b..6791d38 100644
--- a/WebCore/platform/graphics/StringTruncator.h
+++ b/WebCore/platform/graphics/StringTruncator.h
@@ -29,10 +29,11 @@
#ifndef StringTruncator_h
#define StringTruncator_h
+#include <wtf/Forward.h>
+
namespace WebCore {
class Font;
- class String;
class StringTruncator {
public:
diff --git a/WebCore/platform/graphics/WOFFFileFormat.cpp b/WebCore/platform/graphics/WOFFFileFormat.cpp
index dc73603..908e288 100644
--- a/WebCore/platform/graphics/WOFFFileFormat.cpp
+++ b/WebCore/platform/graphics/WOFFFileFormat.cpp
@@ -32,6 +32,13 @@
#if !PLATFORM(WIN)
#include <zlib.h>
+#if PLATFORM(BREWMP)
+#include <AEEStdLib.h>
+#define htonl(x) HTONL(x)
+#define htons(x) HTONS(x)
+#define ntohl(x) NTOHL(x)
+#define ntohs(x) NTOHS(x)
+#endif
#else
#include "SoftLinking.h"
diff --git a/WebCore/platform/graphics/cairo/FontCustomPlatformData.h b/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
index 2816427..a72a6a4 100644
--- a/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
@@ -22,6 +22,7 @@
#define FontCustomPlatformData_h
#include "FontRenderingMode.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
typedef struct _cairo_font_face cairo_font_face_t;
@@ -30,7 +31,6 @@ namespace WebCore {
class FontPlatformData;
class SharedBuffer;
-class String;
struct FontCustomPlatformData : Noncopyable {
FontCustomPlatformData(cairo_font_face_t* fontFace)
diff --git a/WebCore/platform/graphics/cairo/FontPlatformData.h b/WebCore/platform/graphics/cairo/FontPlatformData.h
index d271f5b..fc6b9f1 100644
--- a/WebCore/platform/graphics/cairo/FontPlatformData.h
+++ b/WebCore/platform/graphics/cairo/FontPlatformData.h
@@ -28,6 +28,7 @@
#ifndef FontPlatformData_h
#define FontPlatformData_h
+#include <wtf/Forward.h>
#include <cairo.h>
#include "FontDescription.h"
#include "GlyphBuffer.h"
@@ -50,8 +51,6 @@ typedef struct HFONT__* HFONT;
#endif
namespace WebCore {
-class String;
-
class FontPlatformData {
public:
FontPlatformData(WTF::HashTableDeletedValueType)
diff --git a/WebCore/platform/graphics/cg/ColorCG.cpp b/WebCore/platform/graphics/cg/ColorCG.cpp
index 9257642..6f05c38 100644
--- a/WebCore/platform/graphics/cg/ColorCG.cpp
+++ b/WebCore/platform/graphics/cg/ColorCG.cpp
@@ -66,6 +66,7 @@ Color::Color(CGColorRef color)
}
m_color = makeRGBA(r * 255, g * 255, b * 255, a * 255);
+ m_valid = true;
}
#if OS(WINDOWS)
diff --git a/WebCore/platform/graphics/cg/FontPlatformData.h b/WebCore/platform/graphics/cg/FontPlatformData.h
index 1da8916..b261f87 100644
--- a/WebCore/platform/graphics/cg/FontPlatformData.h
+++ b/WebCore/platform/graphics/cg/FontPlatformData.h
@@ -26,6 +26,7 @@
#include "RefCountedGDIHandle.h"
#include "StringImpl.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RetainPtr.h>
@@ -36,7 +37,6 @@ typedef struct CGFont* CGFontRef;
namespace WebCore {
class FontDescription;
-class String;
class FontPlatformData {
public:
diff --git a/WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp b/WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp
index 8af3d0e..df14f9d 100644
--- a/WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp
+++ b/WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp
@@ -111,34 +111,20 @@ void GraphicsContext3D::paintToCanvas(const unsigned char* imagePixels, int imag
if (!imagePixels || imageWidth <= 0 || imageHeight <= 0 || canvasWidth <= 0 || canvasHeight <= 0 || !context)
return;
int rowBytes = imageWidth * 4;
- RetainPtr<CGDataProviderRef> dataProvider = CGDataProviderCreateWithData(0, imagePixels, rowBytes * imageHeight, 0);
- RetainPtr<CGColorSpaceRef> colorSpace = CGColorSpaceCreateDeviceRGB();
- RetainPtr<CGImageRef> cgImage = CGImageCreate(imageWidth,
- imageHeight,
- 8,
- 32,
- rowBytes,
- colorSpace.get(),
- kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host,
- dataProvider.get(),
- 0,
- false,
- kCGRenderingIntentDefault);
+ RetainPtr<CGDataProviderRef> dataProvider(AdoptCF, CGDataProviderCreateWithData(0, imagePixels, rowBytes * imageHeight, 0));
+ RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGColorSpaceCreateDeviceRGB());
+ RetainPtr<CGImageRef> cgImage(AdoptCF, CGImageCreate(imageWidth, imageHeight, 8, 32, rowBytes, colorSpace.get(), kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host,
+ dataProvider.get(), 0, false, kCGRenderingIntentDefault));
// CSS styling may cause the canvas's content to be resized on
// the page. Go back to the Canvas to figure out the correct
// width and height to draw.
- CGRect rect = CGRectMake(0, 0,
- canvasWidth,
- canvasHeight);
+ CGRect rect = CGRectMake(0, 0, canvasWidth, canvasHeight);
// We want to completely overwrite the previous frame's
// rendering results.
CGContextSaveGState(context);
- CGContextSetBlendMode(context,
- kCGBlendModeCopy);
- CGContextSetInterpolationQuality(context,
- kCGInterpolationNone);
- CGContextDrawImage(context,
- rect, cgImage.get());
+ CGContextSetBlendMode(context, kCGBlendModeCopy);
+ CGContextSetInterpolationQuality(context, kCGInterpolationNone);
+ CGContextDrawImage(context, rect, cgImage.get());
CGContextRestoreGState(context);
}
diff --git a/WebCore/platform/graphics/cg/ImageSourceCG.h b/WebCore/platform/graphics/cg/ImageSourceCG.h
index 76b4160..bff8162 100644
--- a/WebCore/platform/graphics/cg/ImageSourceCG.h
+++ b/WebCore/platform/graphics/cg/ImageSourceCG.h
@@ -27,11 +27,10 @@
#define ImageSourceCG_h
#include "ImageSource.h"
+#include <wtf/Forward.h>
namespace WebCore {
-class String;
-
String preferredExtensionForImageSourceType(const String& type);
String MIMETypeForImageSourceType(const String& type);
diff --git a/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp b/WebCore/platform/graphics/chromium/CanvasLayerChromium.cpp
index ebd9ebe..7e732d1 100644
--- a/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp
+++ b/WebCore/platform/graphics/chromium/CanvasLayerChromium.cpp
@@ -32,21 +32,21 @@
#if USE(ACCELERATED_COMPOSITING)
-#include "WebGLLayerChromium.h"
+#include "CanvasLayerChromium.h"
#include "GraphicsContext3D.h"
#include <GLES2/gl2.h>
namespace WebCore {
-unsigned WebGLLayerChromium::m_shaderProgramId = 0;
+unsigned CanvasLayerChromium::m_shaderProgramId = 0;
-PassRefPtr<WebGLLayerChromium> WebGLLayerChromium::create(GraphicsLayerChromium* owner)
+PassRefPtr<CanvasLayerChromium> CanvasLayerChromium::create(GraphicsLayerChromium* owner)
{
- return adoptRef(new WebGLLayerChromium(owner));
+ return adoptRef(new CanvasLayerChromium(owner));
}
-WebGLLayerChromium::WebGLLayerChromium(GraphicsLayerChromium* owner)
+CanvasLayerChromium::CanvasLayerChromium(GraphicsLayerChromium* owner)
: LayerChromium(owner)
, m_context(0)
, m_textureId(0)
@@ -54,12 +54,12 @@ WebGLLayerChromium::WebGLLayerChromium(GraphicsLayerChromium* owner)
{
}
-unsigned WebGLLayerChromium::textureId()
+unsigned CanvasLayerChromium::textureId()
{
return m_textureId;
}
-void WebGLLayerChromium::updateTextureContents(unsigned textureId)
+void CanvasLayerChromium::updateTextureContents(unsigned textureId)
{
ASSERT(textureId == m_textureId);
ASSERT(m_context);
@@ -75,12 +75,14 @@ void WebGLLayerChromium::updateTextureContents(unsigned textureId)
}
// Update the contents of the texture used by the compositor.
if (m_contentsDirty) {
+ if (m_prepareTextureCallback)
+ m_prepareTextureCallback->willPrepareTexture();
m_context->prepareTexture();
m_contentsDirty = false;
}
}
-void WebGLLayerChromium::setContext(const GraphicsContext3D* context)
+void CanvasLayerChromium::setContext(const GraphicsContext3D* context)
{
m_context = const_cast<GraphicsContext3D*>(context);
diff --git a/WebCore/platform/graphics/chromium/WebGLLayerChromium.h b/WebCore/platform/graphics/chromium/CanvasLayerChromium.h
index abd0c93..98be270 100644
--- a/WebCore/platform/graphics/chromium/WebGLLayerChromium.h
+++ b/WebCore/platform/graphics/chromium/CanvasLayerChromium.h
@@ -29,8 +29,8 @@
*/
-#ifndef WebGLLayerChromium_h
-#define WebGLLayerChromium_h
+#ifndef CanvasLayerChromium_h
+#define CanvasLayerChromium_h
#if USE(ACCELERATED_COMPOSITING)
@@ -40,10 +40,10 @@ namespace WebCore {
class GraphicsContext3D;
-// A Layer that contains a WebGL element.
-class WebGLLayerChromium : public LayerChromium {
+// A Layer containing a WebGL or accelerated 2d canvas
+class CanvasLayerChromium : public LayerChromium {
public:
- static PassRefPtr<WebGLLayerChromium> create(GraphicsLayerChromium* owner = 0);
+ static PassRefPtr<CanvasLayerChromium> create(GraphicsLayerChromium* owner = 0);
virtual bool drawsContent() { return m_context; }
virtual bool ownsTexture() { return true; }
virtual void updateTextureContents(unsigned);
@@ -54,11 +54,18 @@ public:
static void setShaderProgramId(unsigned shaderProgramId) { m_shaderProgramId = shaderProgramId; }
+ class PrepareTextureCallback : public Noncopyable {
+ public:
+ virtual void willPrepareTexture() = 0;
+ };
+ void setPrepareTextureCallback(PassOwnPtr<PrepareTextureCallback> callback) { m_prepareTextureCallback = callback; }
+
private:
- WebGLLayerChromium(GraphicsLayerChromium* owner);
+ explicit CanvasLayerChromium(GraphicsLayerChromium* owner);
GraphicsContext3D* m_context;
unsigned m_textureId;
bool m_textureChanged;
+ OwnPtr<PrepareTextureCallback> m_prepareTextureCallback;
static unsigned m_shaderProgramId;
};
diff --git a/WebCore/platform/graphics/chromium/FontCacheChromiumWin.cpp b/WebCore/platform/graphics/chromium/FontCacheChromiumWin.cpp
index 6f46f7e..8ba37c6 100644
--- a/WebCore/platform/graphics/chromium/FontCacheChromiumWin.cpp
+++ b/WebCore/platform/graphics/chromium/FontCacheChromiumWin.cpp
@@ -58,7 +58,7 @@ void FontCache::platformInit()
// FIXME: consider adding to WebKit String class
static bool charactersAreAllASCII(const String& s)
{
- return charactersAreAllASCII(s.characters(), s.length());
+ return WTF::charactersAreAllASCII(s.characters(), s.length());
}
// When asked for a CJK font with a native name under a non-CJK locale or
diff --git a/WebCore/platform/graphics/chromium/FontCustomPlatformData.h b/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
index 03e1b8c..d451c9c 100644
--- a/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
@@ -33,6 +33,7 @@
#define FontCustomPlatformData_h
#include "FontRenderingMode.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#if OS(WINDOWS)
@@ -46,7 +47,6 @@ namespace WebCore {
class FontPlatformData;
class SharedBuffer;
-class String;
struct FontCustomPlatformData : Noncopyable {
#if OS(WINDOWS)
diff --git a/WebCore/platform/graphics/chromium/FontPlatformDataChromiumMac.mm b/WebCore/platform/graphics/chromium/FontPlatformDataChromiumMac.mm
index 41f684e..ad7ebba 100644
--- a/WebCore/platform/graphics/chromium/FontPlatformDataChromiumMac.mm
+++ b/WebCore/platform/graphics/chromium/FontPlatformDataChromiumMac.mm
@@ -436,6 +436,17 @@ bool FontPlatformData::allowsLigatures() const
return ![[m_font coveredCharacterSet] characterIsMember:'a'];
}
+#if USE(CORE_TEXT)
+CTFontRef FontPlatformData::ctFont() const
+{
+ if (m_font)
+ return toCTFontRef(m_font);
+ if (!m_CTFont)
+ m_CTFont.adoptCF(CTFontCreateWithGraphicsFont(m_cgFont.get(), m_size, 0, 0));
+ return m_CTFont.get();
+}
+#endif // USE(CORE_TEXT)
+
#ifndef NDEBUG
String FontPlatformData::description() const
{
diff --git a/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h b/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h
index 40e7bcf..1d6cc8e 100644
--- a/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h
+++ b/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h
@@ -35,6 +35,7 @@
#include "config.h"
#include "StringImpl.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -45,7 +46,6 @@ typedef struct HFONT__ *HFONT;
namespace WebCore {
class FontDescription;
-class String;
class FontPlatformData {
public:
diff --git a/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h b/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h
index e2abe2e..de12832 100644
--- a/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h
+++ b/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h
@@ -33,6 +33,7 @@
#include "FontRenderStyle.h"
#include "StringImpl.h"
+#include <wtf/Forward.h>
#include <wtf/RefPtr.h>
#include <wtf/text/CString.h>
#include <SkPaint.h>
@@ -45,7 +46,6 @@ struct HB_FaceRec_;
namespace WebCore {
class FontDescription;
-class String;
// -----------------------------------------------------------------------------
// FontPlatformData is the handle which WebKit has on a specific face. A face
diff --git a/WebCore/platform/graphics/chromium/GLES2Canvas.cpp b/WebCore/platform/graphics/chromium/GLES2Canvas.cpp
index 9fc8917..8a9bde1 100644
--- a/WebCore/platform/graphics/chromium/GLES2Canvas.cpp
+++ b/WebCore/platform/graphics/chromium/GLES2Canvas.cpp
@@ -34,20 +34,22 @@
#include "GLES2Canvas.h"
+#include "Float32Array.h"
#include "FloatRect.h"
-#include "GLES2Context.h"
#include "GLES2Texture.h"
-
-#include <GLES2/gl2.h>
+#include "GraphicsContext3D.h"
+#include "PlatformString.h"
+#include "Uint16Array.h"
#define _USE_MATH_DEFINES
#include <math.h>
+#include <wtf/text/CString.h>
#include <wtf/OwnArrayPtr.h>
namespace WebCore {
-static inline void affineTo3x3(const AffineTransform& transform, GLfloat mat[9])
+static inline void affineTo3x3(const AffineTransform& transform, float mat[9])
{
mat[0] = transform.a();
mat[1] = transform.b();
@@ -73,8 +75,8 @@ struct GLES2Canvas::State {
AffineTransform m_ctm;
};
-GLES2Canvas::GLES2Canvas(GLES2Context* context, const IntSize& size)
- : m_gles2Context(context)
+GLES2Canvas::GLES2Canvas(GraphicsContext3D* context, const IntSize& size)
+ : m_context(context)
, m_quadVertices(0)
, m_quadIndices(0)
, m_simpleProgram(0)
@@ -92,10 +94,8 @@ GLES2Canvas::GLES2Canvas(GLES2Context* context, const IntSize& size)
m_flipMatrix.translate(-1.0f, 1.0f);
m_flipMatrix.scale(2.0f / size.width(), -2.0f / size.height());
- m_gles2Context->makeCurrent();
- m_gles2Context->resizeOffscreenContent(size);
- m_gles2Context->swapBuffers();
- glViewport(0, 0, size.width(), size.height());
+ m_context->reshape(size.width(), size.height());
+ m_context->viewport(0, 0, size.width(), size.height());
m_stateStack.append(State());
m_state = &m_stateStack.last();
@@ -107,69 +107,58 @@ GLES2Canvas::GLES2Canvas(GLES2Context* context, const IntSize& size)
GLES2Canvas::~GLES2Canvas()
{
- m_gles2Context->makeCurrent();
- if (m_simpleProgram)
- glDeleteProgram(m_simpleProgram);
- if (m_texProgram)
- glDeleteProgram(m_texProgram);
- if (m_quadVertices)
- glDeleteBuffers(1, &m_quadVertices);
- if (m_quadIndices)
- glDeleteBuffers(1, &m_quadVertices);
+ m_context->deleteProgram(m_simpleProgram);
+ m_context->deleteProgram(m_texProgram);
+ m_context->deleteBuffer(m_quadVertices);
+ m_context->deleteBuffer(m_quadIndices);
}
void GLES2Canvas::clearRect(const FloatRect& rect)
{
- m_gles2Context->makeCurrent();
-
- glScissor(rect.x(), rect.y(), rect.width(), rect.height());
- glEnable(GL_SCISSOR_TEST);
- glClear(GL_COLOR_BUFFER_BIT);
- glDisable(GL_SCISSOR_TEST);
+ m_context->scissor(rect.x(), rect.y(), rect.width(), rect.height());
+ m_context->enable(GraphicsContext3D::SCISSOR_TEST);
+ m_context->clear(GraphicsContext3D::COLOR_BUFFER_BIT);
+ m_context->disable(GraphicsContext3D::SCISSOR_TEST);
}
void GLES2Canvas::fillRect(const FloatRect& rect, const Color& color, ColorSpace colorSpace)
{
- m_gles2Context->makeCurrent();
-
- glBindBuffer(GL_ARRAY_BUFFER, getQuadVertices());
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, getQuadIndices());
+ m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, getQuadVertices());
+ m_context->bindBuffer(GraphicsContext3D::ELEMENT_ARRAY_BUFFER, getQuadIndices());
float rgba[4];
color.getRGBA(rgba[0], rgba[1], rgba[2], rgba[3]);
- glUniform4f(m_simpleColorLocation, rgba[0] * rgba[3], rgba[1] * rgba[3], rgba[2] * rgba[3], rgba[3]);
+ m_context->uniform4f(m_simpleColorLocation, rgba[0] * rgba[3], rgba[1] * rgba[3], rgba[2] * rgba[3], rgba[3]);
- glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
+ m_context->drawElements(GraphicsContext3D::TRIANGLES, 6, GraphicsContext3D::UNSIGNED_SHORT, 0);
}
void GLES2Canvas::fillRect(const FloatRect& rect)
{
- m_gles2Context->makeCurrent();
-
applyCompositeOperator(m_state->m_compositeOp);
- glBindBuffer(GL_ARRAY_BUFFER, getQuadVertices());
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, getQuadIndices());
+ m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, getQuadVertices());
+ m_context->bindBuffer(GraphicsContext3D::ELEMENT_ARRAY_BUFFER, getQuadIndices());
- glUseProgram(getSimpleProgram());
+ m_context->useProgram(getSimpleProgram());
float rgba[4];
m_state->m_fillColor.getRGBA(rgba[0], rgba[1], rgba[2], rgba[3]);
- glUniform4f(m_simpleColorLocation, rgba[0] * rgba[3], rgba[1] * rgba[3], rgba[2] * rgba[3], rgba[3]);
+ m_context->uniform4f(m_simpleColorLocation, rgba[0] * rgba[3], rgba[1] * rgba[3], rgba[2] * rgba[3], rgba[3]);
AffineTransform matrix(m_flipMatrix);
matrix.multLeft(m_state->m_ctm);
matrix.translate(rect.x(), rect.y());
matrix.scale(rect.width(), rect.height());
- GLfloat mat[9];
+ float mat[9];
affineTo3x3(matrix, mat);
- glUniformMatrix3fv(m_simpleMatrixLocation, 1, GL_FALSE, mat);
+ m_context->uniformMatrix3fv(m_simpleMatrixLocation, false /*transpose*/, mat, 1 /*count*/);
- glVertexAttribPointer(m_simplePositionLocation, 3, GL_FLOAT, GL_FALSE, 0, (GLvoid*)(0));
+ m_context->vertexAttribPointer(m_simplePositionLocation, 3, GraphicsContext3D::FLOAT, false, 0, 0);
- glEnableVertexAttribArray(m_simplePositionLocation);
+ m_context->enableVertexAttribArray(m_simplePositionLocation);
- glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
+ m_context->drawElements(GraphicsContext3D::TRIANGLES, 6, GraphicsContext3D::UNSIGNED_SHORT, 0);
}
void GLES2Canvas::setFillColor(const Color& color, ColorSpace colorSpace)
@@ -222,49 +211,47 @@ void GLES2Canvas::drawTexturedRect(GLES2Texture* texture, const FloatRect& srcRe
void GLES2Canvas::drawTexturedRect(GLES2Texture* texture, const FloatRect& srcRect, const FloatRect& dstRect, const AffineTransform& transform, float alpha, ColorSpace colorSpace, CompositeOperator compositeOp)
{
- m_gles2Context->makeCurrent();
-
applyCompositeOperator(compositeOp);
- glBindBuffer(GL_ARRAY_BUFFER, getQuadVertices());
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, getQuadIndices());
+ m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, getQuadVertices());
+ m_context->bindBuffer(GraphicsContext3D::ELEMENT_ARRAY_BUFFER, getQuadIndices());
checkGLError("glBindBuffer");
- glUseProgram(getTexProgram());
+ m_context->useProgram(getTexProgram());
checkGLError("glUseProgram");
- glActiveTexture(GL_TEXTURE0);
+ m_context->activeTexture(GraphicsContext3D::TEXTURE0);
texture->bind();
- glUniform1i(m_texSamplerLocation, 0);
+ m_context->uniform1i(m_texSamplerLocation, 0);
checkGLError("glUniform1i");
- glUniform1f(m_texAlphaLocation, alpha);
+ m_context->uniform1f(m_texAlphaLocation, alpha);
checkGLError("glUniform1f for alpha");
AffineTransform matrix(m_flipMatrix);
matrix.multLeft(transform);
matrix.translate(dstRect.x(), dstRect.y());
matrix.scale(dstRect.width(), dstRect.height());
- GLfloat mat[9];
+ float mat[9];
affineTo3x3(matrix, mat);
- glUniformMatrix3fv(m_texMatrixLocation, 1, GL_FALSE, mat);
+ m_context->uniformMatrix3fv(m_texMatrixLocation, false /*transpose*/, mat, 1 /*count*/);
checkGLError("glUniformMatrix3fv");
AffineTransform texMatrix;
texMatrix.scale(1.0f / texture->width(), 1.0f / texture->height());
texMatrix.translate(srcRect.x(), srcRect.y());
texMatrix.scale(srcRect.width(), srcRect.height());
- GLfloat texMat[9];
+ float texMat[9];
affineTo3x3(texMatrix, texMat);
- glUniformMatrix3fv(m_texTexMatrixLocation, 1, GL_FALSE, texMat);
+ m_context->uniformMatrix3fv(m_texTexMatrixLocation, false /*transpose*/, texMat, 1 /*count*/);
checkGLError("glUniformMatrix3fv");
- glVertexAttribPointer(m_texPositionLocation, 3, GL_FLOAT, GL_FALSE, 0, (GLvoid*)(0));
+ m_context->vertexAttribPointer(m_texPositionLocation, 3, GraphicsContext3D::FLOAT, false, 0, 0);
- glEnableVertexAttribArray(m_texPositionLocation);
+ m_context->enableVertexAttribArray(m_texPositionLocation);
- glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
+ m_context->drawElements(GraphicsContext3D::TRIANGLES, 6, GraphicsContext3D::UNSIGNED_SHORT, 0);
checkGLError("glDrawElements");
}
@@ -280,56 +267,56 @@ void GLES2Canvas::applyCompositeOperator(CompositeOperator op)
switch (op) {
case CompositeClear:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ZERO, GL_ZERO);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ZERO, GraphicsContext3D::ZERO);
break;
case CompositeCopy:
- glDisable(GL_BLEND);
+ m_context->disable(GraphicsContext3D::BLEND);
break;
case CompositeSourceOver:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ONE, GraphicsContext3D::ONE_MINUS_SRC_ALPHA);
break;
case CompositeSourceIn:
- glEnable(GL_BLEND);
- glBlendFunc(GL_DST_ALPHA, GL_ZERO);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::DST_ALPHA, GraphicsContext3D::ZERO);
break;
case CompositeSourceOut:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_ZERO);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ONE_MINUS_DST_ALPHA, GraphicsContext3D::ZERO);
break;
case CompositeSourceAtop:
- glEnable(GL_BLEND);
- glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::DST_ALPHA, GraphicsContext3D::ONE_MINUS_SRC_ALPHA);
break;
case CompositeDestinationOver:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_ONE);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ONE_MINUS_DST_ALPHA, GraphicsContext3D::ONE);
break;
case CompositeDestinationIn:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ZERO, GL_SRC_ALPHA);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ZERO, GraphicsContext3D::SRC_ALPHA);
break;
case CompositeDestinationOut:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ZERO, GraphicsContext3D::ONE_MINUS_SRC_ALPHA);
break;
case CompositeDestinationAtop:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_SRC_ALPHA);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ONE_MINUS_DST_ALPHA, GraphicsContext3D::SRC_ALPHA);
break;
case CompositeXOR:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ONE_MINUS_DST_ALPHA, GraphicsContext3D::ONE_MINUS_SRC_ALPHA);
break;
case CompositePlusDarker:
case CompositeHighlight:
// unsupported
- glDisable(GL_BLEND);
+ m_context->disable(GraphicsContext3D::BLEND);
break;
case CompositePlusLighter:
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE, GL_ONE);
+ m_context->enable(GraphicsContext3D::BLEND);
+ m_context->blendFunc(GraphicsContext3D::ONE, GraphicsContext3D::ONE);
break;
}
m_lastCompositeOp = op;
@@ -338,13 +325,14 @@ void GLES2Canvas::applyCompositeOperator(CompositeOperator op)
unsigned GLES2Canvas::getQuadVertices()
{
if (!m_quadVertices) {
- GLfloat vertices[] = { 0.0f, 0.0f, 1.0f,
- 1.0f, 0.0f, 1.0f,
- 1.0f, 1.0f, 1.0f,
- 0.0f, 1.0f, 1.0f };
- glGenBuffers(1, &m_quadVertices);
- glBindBuffer(GL_ARRAY_BUFFER, m_quadVertices);
- glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
+ float vertices[] = { 0.0f, 0.0f, 1.0f,
+ 1.0f, 0.0f, 1.0f,
+ 1.0f, 1.0f, 1.0f,
+ 0.0f, 1.0f, 1.0f };
+ m_quadVertices = m_context->createBuffer();
+ RefPtr<Float32Array> vertexArray = Float32Array::create(vertices, sizeof(vertices) / sizeof(float));
+ m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, m_quadVertices);
+ m_context->bufferData(GraphicsContext3D::ARRAY_BUFFER, vertexArray.get(), GraphicsContext3D::STATIC_DRAW);
}
return m_quadVertices;
}
@@ -353,32 +341,31 @@ unsigned GLES2Canvas::getQuadVertices()
unsigned GLES2Canvas::getQuadIndices()
{
if (!m_quadIndices) {
- GLushort indices[] = { 0, 1, 2, 0, 2, 3};
+ unsigned short indices[] = { 0, 1, 2, 0, 2, 3};
- glGenBuffers(1, &m_quadIndices);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_quadIndices);
- glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
+ m_quadIndices = m_context->createBuffer();
+ RefPtr<Uint16Array> indexArray = Uint16Array::create(indices, sizeof(indices) / sizeof(unsigned short));
+ m_context->bindBuffer(GraphicsContext3D::ELEMENT_ARRAY_BUFFER, m_quadIndices);
+ m_context->bufferData(GraphicsContext3D::ELEMENT_ARRAY_BUFFER, indexArray.get(), GraphicsContext3D::STATIC_DRAW);
}
return m_quadIndices;
}
-static GLuint loadShader(GLenum type, const char* shaderSource)
+static unsigned loadShader(GraphicsContext3D* context, unsigned type, const char* shaderSource)
{
- GLuint shader = glCreateShader(type);
+ unsigned shader = context->createShader(type);
if (!shader)
return 0;
- glShaderSource(shader, 1, &shaderSource, 0);
- glCompileShader(shader);
- GLint compileStatus;
- glGetShaderiv(shader, GL_COMPILE_STATUS, &compileStatus);
+ String shaderSourceStr(shaderSource);
+ context->shaderSource(shader, shaderSourceStr);
+ context->compileShader(shader);
+ int compileStatus;
+ context->getShaderiv(shader, GraphicsContext3D::COMPILE_STATUS, &compileStatus);
if (!compileStatus) {
- int length;
- glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length);
- OwnArrayPtr<char> log(new char[length]);
- glGetShaderInfoLog(shader, length, 0, log.get());
- LOG_ERROR(log.get());
- glDeleteShader(shader);
+ String infoLog = context->getShaderInfoLog(shader);
+ LOG_ERROR(infoLog.utf8().data());
+ context->deleteShader(shader);
return 0;
}
return shader;
@@ -387,7 +374,7 @@ static GLuint loadShader(GLenum type, const char* shaderSource)
unsigned GLES2Canvas::getSimpleProgram()
{
if (!m_simpleProgram) {
- GLuint vertexShader = loadShader(GL_VERTEX_SHADER,
+ unsigned vertexShader = loadShader(m_context, GraphicsContext3D::VERTEX_SHADER,
"uniform mat3 matrix;\n"
"uniform vec4 color;\n"
"attribute vec3 position;\n"
@@ -396,7 +383,7 @@ unsigned GLES2Canvas::getSimpleProgram()
"}\n");
if (!vertexShader)
return 0;
- GLuint fragmentShader = loadShader(GL_FRAGMENT_SHADER,
+ unsigned fragmentShader = loadShader(m_context, GraphicsContext3D::FRAGMENT_SHADER,
"precision mediump float;\n"
"uniform mat3 matrix;\n"
"uniform vec4 color;\n"
@@ -405,23 +392,23 @@ unsigned GLES2Canvas::getSimpleProgram()
"}\n");
if (!fragmentShader)
return 0;
- m_simpleProgram = glCreateProgram();
+ m_simpleProgram = m_context->createProgram();
if (!m_simpleProgram)
return 0;
- glAttachShader(m_simpleProgram, vertexShader);
- glAttachShader(m_simpleProgram, fragmentShader);
- glLinkProgram(m_simpleProgram);
- GLint linkStatus;
- glGetProgramiv(m_simpleProgram, GL_LINK_STATUS, &linkStatus);
+ m_context->attachShader(m_simpleProgram, vertexShader);
+ m_context->attachShader(m_simpleProgram, fragmentShader);
+ m_context->linkProgram(m_simpleProgram);
+ int linkStatus;
+ m_context->getProgramiv(m_simpleProgram, GraphicsContext3D::LINK_STATUS, &linkStatus);
if (!linkStatus) {
- glDeleteProgram(m_simpleProgram);
+ m_context->deleteProgram(m_simpleProgram);
m_simpleProgram = 0;
}
- glDeleteShader(vertexShader);
- glDeleteShader(fragmentShader);
- m_simplePositionLocation = glGetAttribLocation(m_simpleProgram, "position");
- m_simpleMatrixLocation = glGetUniformLocation(m_simpleProgram, "matrix");
- m_simpleColorLocation = glGetUniformLocation(m_simpleProgram, "color");
+ m_context->deleteShader(vertexShader);
+ m_context->deleteShader(fragmentShader);
+ m_simplePositionLocation = m_context->getAttribLocation(m_simpleProgram, "position");
+ m_simpleMatrixLocation = m_context->getUniformLocation(m_simpleProgram, "matrix");
+ m_simpleColorLocation = m_context->getUniformLocation(m_simpleProgram, "color");
}
return m_simpleProgram;
}
@@ -429,7 +416,7 @@ unsigned GLES2Canvas::getSimpleProgram()
unsigned GLES2Canvas::getTexProgram()
{
if (!m_texProgram) {
- GLuint vertexShader = loadShader(GL_VERTEX_SHADER,
+ unsigned vertexShader = loadShader(m_context, GraphicsContext3D::VERTEX_SHADER,
"uniform mat3 matrix;\n"
"uniform mat3 texMatrix;\n"
"attribute vec3 position;\n"
@@ -440,7 +427,7 @@ unsigned GLES2Canvas::getTexProgram()
"}\n");
if (!vertexShader)
return 0;
- GLuint fragmentShader = loadShader(GL_FRAGMENT_SHADER,
+ unsigned fragmentShader = loadShader(m_context, GraphicsContext3D::FRAGMENT_SHADER,
"precision mediump float;\n"
"uniform sampler2D sampler;\n"
"uniform float alpha;\n"
@@ -450,25 +437,25 @@ unsigned GLES2Canvas::getTexProgram()
"}\n");
if (!fragmentShader)
return 0;
- m_texProgram = glCreateProgram();
+ m_texProgram = m_context->createProgram();
if (!m_texProgram)
return 0;
- glAttachShader(m_texProgram, vertexShader);
- glAttachShader(m_texProgram, fragmentShader);
- glLinkProgram(m_texProgram);
- GLint linkStatus;
- glGetProgramiv(m_texProgram, GL_LINK_STATUS, &linkStatus);
+ m_context->attachShader(m_texProgram, vertexShader);
+ m_context->attachShader(m_texProgram, fragmentShader);
+ m_context->linkProgram(m_texProgram);
+ int linkStatus;
+ m_context->getProgramiv(m_texProgram, GraphicsContext3D::LINK_STATUS, &linkStatus);
if (!linkStatus) {
- glDeleteProgram(m_texProgram);
+ m_context->deleteProgram(m_texProgram);
m_texProgram = 0;
}
- glDeleteShader(vertexShader);
- glDeleteShader(fragmentShader);
- m_texMatrixLocation = glGetUniformLocation(m_texProgram, "matrix");
- m_texSamplerLocation = glGetUniformLocation(m_texProgram, "sampler");
- m_texTexMatrixLocation = glGetUniformLocation(m_texProgram, "texMatrix");
- m_texPositionLocation = glGetAttribLocation(m_texProgram, "position");
- m_texAlphaLocation = glGetUniformLocation(m_texProgram, "alpha");
+ m_context->deleteShader(vertexShader);
+ m_context->deleteShader(fragmentShader);
+ m_texMatrixLocation = m_context->getUniformLocation(m_texProgram, "matrix");
+ m_texSamplerLocation = m_context->getUniformLocation(m_texProgram, "sampler");
+ m_texTexMatrixLocation = m_context->getUniformLocation(m_texProgram, "texMatrix");
+ m_texPositionLocation = m_context->getAttribLocation(m_texProgram, "position");
+ m_texAlphaLocation = m_context->getUniformLocation(m_texProgram, "alpha");
}
return m_texProgram;
}
@@ -479,7 +466,7 @@ GLES2Texture* GLES2Canvas::createTexture(NativeImagePtr ptr, GLES2Texture::Forma
if (texture)
return texture.get();
- texture = GLES2Texture::create(format, width, height);
+ texture = GLES2Texture::create(m_context, format, width, height);
GLES2Texture* t = texture.get();
m_textures.set(ptr, texture);
return t;
@@ -494,24 +481,24 @@ GLES2Texture* GLES2Canvas::getTexture(NativeImagePtr ptr)
void GLES2Canvas::checkGLError(const char* header)
{
#ifndef NDEBUG
- GLenum err;
- while ((err = glGetError()) != GL_NO_ERROR) {
+ unsigned err;
+ while ((err = m_context->getError()) != GraphicsContext3D::NO_ERROR) {
const char* errorStr = "*** UNKNOWN ERROR ***";
switch (err) {
- case GL_INVALID_ENUM:
- errorStr = "GL_INVALID_ENUM";
+ case GraphicsContext3D::INVALID_ENUM:
+ errorStr = "GraphicsContext3D::INVALID_ENUM";
break;
- case GL_INVALID_VALUE:
- errorStr = "GL_INVALID_VALUE";
+ case GraphicsContext3D::INVALID_VALUE:
+ errorStr = "GraphicsContext3D::INVALID_VALUE";
break;
- case GL_INVALID_OPERATION:
- errorStr = "GL_INVALID_OPERATION";
+ case GraphicsContext3D::INVALID_OPERATION:
+ errorStr = "GraphicsContext3D::INVALID_OPERATION";
break;
- case GL_INVALID_FRAMEBUFFER_OPERATION:
- errorStr = "GL_INVALID_FRAMEBUFFER_OPERATION";
+ case GraphicsContext3D::INVALID_FRAMEBUFFER_OPERATION:
+ errorStr = "GraphicsContext3D::INVALID_FRAMEBUFFER_OPERATION";
break;
- case GL_OUT_OF_MEMORY:
- errorStr = "GL_OUT_OF_MEMORY";
+ case GraphicsContext3D::OUT_OF_MEMORY:
+ errorStr = "GraphicsContext3D::OUT_OF_MEMORY";
break;
}
if (header)
diff --git a/WebCore/platform/graphics/chromium/GLES2Canvas.h b/WebCore/platform/graphics/chromium/GLES2Canvas.h
index 4e500be..cea90ae 100644
--- a/WebCore/platform/graphics/chromium/GLES2Canvas.h
+++ b/WebCore/platform/graphics/chromium/GLES2Canvas.h
@@ -46,15 +46,15 @@
namespace WebCore {
-class FloatRect;
class Color;
-class GLES2Context;
+class FloatRect;
+class GraphicsContext3D;
typedef HashMap<NativeImagePtr, RefPtr<GLES2Texture> > TextureHashMap;
class GLES2Canvas : public Noncopyable {
public:
- GLES2Canvas(GLES2Context*, const IntSize&);
+ GLES2Canvas(GraphicsContext3D*, const IntSize&);
~GLES2Canvas();
void fillRect(const FloatRect&, const Color&, ColorSpace);
@@ -76,7 +76,7 @@ public:
// down into a PlatformContextGLES2 at some point.
void drawTexturedRect(GLES2Texture*, const FloatRect& srcRect, const FloatRect& dstRect, const AffineTransform&, float alpha, ColorSpace, CompositeOperator);
void drawTexturedRect(GLES2Texture*, const FloatRect& srcRect, const FloatRect& dstRect, ColorSpace, CompositeOperator);
- GLES2Context* gles2Context() { return m_gles2Context; }
+ GraphicsContext3D* context() { return m_context; }
GLES2Texture* createTexture(NativeImagePtr, GLES2Texture::Format, int width, int height);
GLES2Texture* getTexture(NativeImagePtr);
@@ -88,7 +88,7 @@ private:
unsigned getSimpleProgram();
unsigned getTexProgram();
- GLES2Context* m_gles2Context;
+ GraphicsContext3D* m_context;
struct State;
WTF::Vector<State> m_stateStack;
State* m_state;
diff --git a/WebCore/platform/graphics/chromium/GLES2Texture.cpp b/WebCore/platform/graphics/chromium/GLES2Texture.cpp
index 26c8bf7..5e8a141 100644
--- a/WebCore/platform/graphics/chromium/GLES2Texture.cpp
+++ b/WebCore/platform/graphics/chromium/GLES2Texture.cpp
@@ -34,14 +34,15 @@
#include "GLES2Texture.h"
-#include <GLES2/gl2.h>
+#include "GraphicsContext3D.h"
#include <wtf/OwnArrayPtr.h>
namespace WebCore {
-GLES2Texture::GLES2Texture(unsigned int textureId, Format format, int width, int height)
- : m_textureId(textureId)
+GLES2Texture::GLES2Texture(GraphicsContext3D* context, unsigned textureId, Format format, int width, int height)
+ : m_context(context)
+ , m_textureId(textureId)
, m_format(format)
, m_width(width)
, m_height(height)
@@ -50,25 +51,26 @@ GLES2Texture::GLES2Texture(unsigned int textureId, Format format, int width, int
GLES2Texture::~GLES2Texture()
{
- glDeleteTextures(1, &m_textureId);
+ m_context->deleteTexture(m_textureId);
}
-PassRefPtr<GLES2Texture> GLES2Texture::create(Format format, int width, int height)
+PassRefPtr<GLES2Texture> GLES2Texture::create(GraphicsContext3D* context, Format format, int width, int height)
{
- GLuint textureId;
- glGenTextures(1, &textureId);
- if (!textureId)
+ int max;
+ context->getIntegerv(GraphicsContext3D::MAX_TEXTURE_SIZE, &max);
+ if (width > max || height > max) {
+ ASSERT(!"texture too big");
return 0;
+ }
- glBindTexture(GL_TEXTURE_2D, textureId);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+ unsigned textureId = context->createTexture();
+ if (!textureId)
+ return 0;
- int max;
- glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max);
- if (width > max || height > max)
- ASSERT(!"texture too big");
+ context->bindTexture(GraphicsContext3D::TEXTURE_2D, textureId);
+ context->texImage2D(GraphicsContext3D::TEXTURE_2D, 0, GraphicsContext3D::RGBA, width, height, 0, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE, 0);
- return adoptRef(new GLES2Texture(textureId, format, width, height));
+ return adoptRef(new GLES2Texture(context, textureId, format, width, height));
}
static void convertFormat(GLES2Texture::Format format, unsigned int* glFormat, unsigned int* glType, bool* swizzle)
@@ -76,14 +78,14 @@ static void convertFormat(GLES2Texture::Format format, unsigned int* glFormat, u
*swizzle = false;
switch (format) {
case GLES2Texture::RGBA8:
- *glFormat = GL_RGBA;
- *glType = GL_UNSIGNED_BYTE;
+ *glFormat = GraphicsContext3D::RGBA;
+ *glType = GraphicsContext3D::UNSIGNED_BYTE;
break;
case GLES2Texture::BGRA8:
// FIXME: Once we have support for extensions, we should check for EXT_texture_format_BGRA8888,
// and use that if present.
- *glFormat = GL_RGBA;
- *glType = GL_UNSIGNED_BYTE;
+ *glFormat = GraphicsContext3D::RGBA;
+ *glType = GraphicsContext3D::UNSIGNED_BYTE;
*swizzle = true;
break;
default:
@@ -97,9 +99,9 @@ void GLES2Texture::load(void* pixels)
unsigned int glFormat, glType;
bool swizzle;
convertFormat(m_format, &glFormat, &glType, &swizzle);
- glBindTexture(GL_TEXTURE_2D, m_textureId);
+ m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, m_textureId);
if (swizzle) {
- ASSERT(glFormat == GL_RGBA && glType == GL_UNSIGNED_BYTE);
+ ASSERT(glFormat == GraphicsContext3D::RGBA && glType == GraphicsContext3D::UNSIGNED_BYTE);
// FIXME: This could use PBO's to save doing an extra copy here.
int size = m_width * m_height;
unsigned* pixels32 = static_cast<unsigned*>(pixels);
@@ -109,18 +111,18 @@ void GLES2Texture::load(void* pixels)
unsigned pixel = pixels32[i];
bufptr[i] = pixel & 0xFF00FF00 | ((pixel & 0x00FF0000) >> 16) | ((pixel & 0x000000FF) << 16);
}
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_width, m_height, glFormat, glType, buf.get());
+ m_context->texSubImage2D(GraphicsContext3D::TEXTURE_2D, 0, 0, 0, m_width, m_height, glFormat, glType, buf.get());
} else
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_width, m_height, glFormat, glType, pixels);
+ m_context->texSubImage2D(GraphicsContext3D::TEXTURE_2D, 0, 0, 0, m_width, m_height, glFormat, glType, pixels);
}
void GLES2Texture::bind()
{
- glBindTexture(GL_TEXTURE_2D, m_textureId);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, m_textureId);
+ m_context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_MIN_FILTER, GraphicsContext3D::LINEAR);
+ m_context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_MAG_FILTER, GraphicsContext3D::LINEAR);
+ m_context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_WRAP_S, GraphicsContext3D::CLAMP_TO_EDGE);
+ m_context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_WRAP_T, GraphicsContext3D::CLAMP_TO_EDGE);
}
}
diff --git a/WebCore/platform/graphics/chromium/GLES2Texture.h b/WebCore/platform/graphics/chromium/GLES2Texture.h
index 346365a..4d351cd 100644
--- a/WebCore/platform/graphics/chromium/GLES2Texture.h
+++ b/WebCore/platform/graphics/chromium/GLES2Texture.h
@@ -37,20 +37,22 @@
#include "RefPtr.h"
namespace WebCore {
+class GraphicsContext3D;
class GLES2Texture : public RefCounted<GLES2Texture> {
public:
~GLES2Texture();
enum Format { RGBA8, BGRA8 };
- static PassRefPtr<GLES2Texture> create(Format, int width, int height);
+ static PassRefPtr<GLES2Texture> create(GraphicsContext3D*, Format, int width, int height);
void bind();
void load(void* pixels);
Format format() const { return m_format; }
int width() const { return m_width; }
int height() const { return m_height; }
private:
- GLES2Texture(unsigned int textureId, Format format, int width, int height);
- unsigned int m_textureId;
+ GLES2Texture(GraphicsContext3D*, unsigned textureId, Format, int width, int height);
+ GraphicsContext3D* m_context;
+ unsigned m_textureId;
Format m_format;
int m_width;
int m_height;
diff --git a/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp b/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
index a01a17f..1d67857 100644
--- a/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
+++ b/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
@@ -53,7 +53,7 @@
#include "PlatformString.h"
#include "SystemTime.h"
#include "TransformLayerChromium.h"
-#include "WebGLLayerChromium.h"
+
#include <wtf/CurrentTime.h>
#include <wtf/StringExtras.h>
#include <wtf/text/CString.h>
@@ -69,7 +69,7 @@ static void setLayerBorderColor(LayerChromium& layer, const Color& color)
static void clearBorderColor(LayerChromium& layer)
{
- layer.setBorderColor(0);
+ layer.setBorderColor(static_cast<RGBA32>(0));
}
static void setLayerBackgroundColor(LayerChromium& layer, const Color& color)
@@ -79,7 +79,7 @@ static void setLayerBackgroundColor(LayerChromium& layer, const Color& color)
static void clearLayerBackgroundColor(LayerChromium& layer)
{
- layer.setBackgroundColor(0);
+ layer.setBackgroundColor(static_cast<RGBA32>(0));
}
GraphicsLayer::CompositingCoordinatesOrientation GraphicsLayer::compositingCoordinatesOrientation()
@@ -285,6 +285,11 @@ void GraphicsLayerChromium::setOpacity(float opacity)
primaryLayer()->setOpacity(opacity);
}
+void GraphicsLayerChromium::setContentsNeedsDisplay()
+{
+ if (m_contentsLayer)
+ m_contentsLayer->setNeedsDisplay();
+}
void GraphicsLayerChromium::setNeedsDisplay()
{
if (drawsContent())
@@ -334,19 +339,17 @@ void GraphicsLayerChromium::setContentsToImage(Image* image)
updateSublayerList();
}
-#if ENABLE(3D_CANVAS)
-void GraphicsLayerChromium::setContentsToWebGL(PlatformLayer* platformLayer)
+void GraphicsLayerChromium::setContentsToCanvas(PlatformLayer* platformLayer)
{
bool childrenChanged = false;
if (platformLayer) {
- if (!m_contentsLayer.get() || m_contentsLayerPurpose != ContentsLayerForWebGL) {
- WebGLLayerChromium* webGLLayer = static_cast<WebGLLayerChromium*>(platformLayer);
- setupContentsLayer(webGLLayer);
- m_contentsLayer = webGLLayer;
- m_contentsLayerPurpose = ContentsLayerForWebGL;
+ platformLayer->setOwner(this);
+ if (!m_contentsLayer.get() || m_contentsLayerPurpose != ContentsLayerForCanvas) {
+ setupContentsLayer(platformLayer);
+ m_contentsLayer = platformLayer;
+ m_contentsLayerPurpose = ContentsLayerForCanvas;
childrenChanged = true;
}
- platformLayer->setOwner(this);
platformLayer->setNeedsDisplay();
updateContentsRect();
} else {
@@ -361,7 +364,6 @@ void GraphicsLayerChromium::setContentsToWebGL(PlatformLayer* platformLayer)
if (childrenChanged)
updateSublayerList();
}
-#endif
void GraphicsLayerChromium::setContentsToMedia(PlatformLayer* layer)
{
diff --git a/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h b/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h
index cd5e479..9dff66a 100644
--- a/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h
+++ b/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h
@@ -81,12 +81,13 @@ public:
virtual void setNeedsDisplay();
virtual void setNeedsDisplayInRect(const FloatRect&);
+ virtual void setContentsNeedsDisplay();
virtual void setContentsRect(const IntRect&);
virtual void setContentsToImage(Image*);
virtual void setContentsToMedia(PlatformLayer*);
- virtual void setContentsToWebGL(PlatformLayer*);
+ virtual void setContentsToCanvas(PlatformLayer*);
virtual PlatformLayer* platformLayer() const;
@@ -137,7 +138,7 @@ private:
NoContentsLayer = 0,
ContentsLayerForImage,
ContentsLayerForVideo,
- ContentsLayerForWebGL
+ ContentsLayerForCanvas
};
ContentsLayerPurpose m_contentsLayerPurpose;
diff --git a/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp b/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
index 7905601..9f6ee17 100644
--- a/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
+++ b/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
@@ -39,6 +39,13 @@
#include "PlatformContextSkia.h"
#endif
+#if PLATFORM(CG)
+#include <CoreGraphics/CGBitmapContext.h>
+#include <CoreGraphics/CGContext.h>
+#include <CoreGraphics/CGImage.h>
+#include <wtf/RetainPtr.h>
+#endif
+
namespace WebCore {
PassRefPtr<ImageLayerChromium> ImageLayerChromium::create(GraphicsLayerChromium* owner)
@@ -82,6 +89,43 @@ void ImageLayerChromium::updateTextureContents(unsigned textureId)
pixels = skiaBitmap->getPixels();
bitmapSize = IntSize(skiaBitmap->width(), skiaBitmap->height());
}
+#elif PLATFORM(CG)
+ // NativeImagePtr is a CGImageRef on Mac OS X.
+ CGImageRef cgImage = m_contents;
+ int width = CGImageGetWidth(cgImage);
+ int height = CGImageGetHeight(cgImage);
+ requiredTextureSize = IntSize(width, height);
+ bitmapSize = requiredTextureSize;
+ // FIXME: we should get rid of this temporary copy where possible.
+ int tempRowBytes = width * 4;
+ Vector<uint8_t> tempVector;
+ tempVector.resize(height * tempRowBytes);
+ // Note we do not zero this vector since we are going to
+ // completely overwrite its contents with the image below.
+ // Try to reuse the color space from the image to preserve its colors.
+ // Some images use a color space (such as indexed) unsupported by the bitmap context.
+ RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGImageGetColorSpace(cgImage));
+ CGColorSpaceModel colorSpaceModel = CGColorSpaceGetModel(colorSpace.get());
+ switch (colorSpaceModel) {
+ case kCGColorSpaceModelMonochrome:
+ case kCGColorSpaceModelRGB:
+ case kCGColorSpaceModelCMYK:
+ case kCGColorSpaceModelLab:
+ case kCGColorSpaceModelDeviceN:
+ break;
+ default:
+ colorSpace.adoptCF(CGColorSpaceCreateWithName(kCGColorSpaceGenericRGBLinear));
+ break;
+ }
+ RetainPtr<CGContextRef> tempContext(AdoptCF, CGBitmapContextCreate(tempVector.data(),
+ width, height, 8, tempRowBytes,
+ colorSpace.get(),
+ kCGImageAlphaPremultipliedLast));
+ CGContextSetBlendMode(tempContext.get(), kCGBlendModeCopy);
+ CGContextDrawImage(tempContext.get(),
+ CGRectMake(0, 0, static_cast<CGFloat>(width), static_cast<CGFloat>(height)),
+ cgImage);
+ pixels = tempVector.data();
#else
#error "Need to implement for your platform."
#endif
diff --git a/WebCore/platform/graphics/chromium/LayerChromium.cpp b/WebCore/platform/graphics/chromium/LayerChromium.cpp
index 3119dd6..bba65f4 100644
--- a/WebCore/platform/graphics/chromium/LayerChromium.cpp
+++ b/WebCore/platform/graphics/chromium/LayerChromium.cpp
@@ -56,26 +56,26 @@ PassRefPtr<LayerChromium> LayerChromium::create(GraphicsLayerChromium* owner)
}
LayerChromium::LayerChromium(GraphicsLayerChromium* owner)
- : m_needsDisplayOnBoundsChange(false)
- , m_owner(owner)
+ : m_owner(owner)
+ , m_contentsDirty(false)
, m_superlayer(0)
+ , m_anchorPoint(0.5, 0.5)
+ , m_backgroundColor(0, 0, 0, 0)
+ , m_borderColor(0, 0, 0, 0)
, m_layerRenderer(0)
+ , m_edgeAntialiasingMask(0)
+ , m_opacity(1.0)
+ , m_zPosition(0.0)
+ , m_anchorPointZ(0)
, m_borderWidth(0)
, m_allocatedTextureId(0)
- , m_borderColor(0, 0, 0, 0)
- , m_backgroundColor(0, 0, 0, 0)
- , m_anchorPoint(0.5, 0.5)
- , m_anchorPointZ(0)
, m_clearsContext(false)
, m_doubleSided(true)
- , m_edgeAntialiasingMask(0)
, m_hidden(false)
, m_masksToBounds(false)
- , m_opacity(1.0)
, m_opaque(true)
- , m_zPosition(0.0)
, m_geometryFlipped(false)
- , m_contentsDirty(false)
+ , m_needsDisplayOnBoundsChange(false)
{
}
@@ -162,6 +162,40 @@ void LayerChromium::updateTextureContents(unsigned textureId)
pixels = skiaBitmap->getPixels();
bitmapSize = IntSize(skiaBitmap->width(), skiaBitmap->height());
}
+#elif PLATFORM(CG)
+ requiredTextureSize = m_bounds;
+ IntRect boundsRect(IntPoint(0, 0), m_bounds);
+
+ // If the texture needs to be reallocated then we must redraw the entire
+ // contents of the layer.
+ if (requiredTextureSize != m_allocatedTextureSize)
+ dirtyRect = boundsRect;
+ else {
+ // Clip the dirtyRect to the size of the layer to avoid drawing outside
+ // the bounds of the backing texture.
+ dirtyRect.intersect(boundsRect);
+ }
+
+ Vector<uint8_t> tempVector;
+ int rowBytes = 4 * dirtyRect.width();
+ tempVector.resize(rowBytes * dirtyRect.height());
+ memset(tempVector.data(), 0, tempVector.size());
+ // FIXME: unsure whether this is the best color space choice.
+ RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGColorSpaceCreateWithName(kCGColorSpaceGenericRGBLinear));
+ RetainPtr<CGContextRef> contextCG(AdoptCF, CGBitmapContextCreate(tempVector.data(),
+ dirtyRect.width(), dirtyRect.height(), 8, rowBytes,
+ colorSpace.get(),
+ kCGImageAlphaPremultipliedLast));
+
+ GraphicsContext graphicsContext(contextCG.get());
+
+ // Translate the graphics contxt into the coordinate system of the dirty rect.
+ graphicsContext.translate(-dirtyRect.x(), -dirtyRect.y());
+
+ m_owner->paintGraphicsLayerContents(graphicsContext, dirtyRect);
+
+ pixels = tempVector.data();
+ bitmapSize = dirtyRect.size();
#else
#error "Need to implement for your platform."
#endif
@@ -187,7 +221,17 @@ void LayerChromium::updateTextureRect(void* pixels, const IntSize& bitmapSize, c
} else {
ASSERT(updateRect.width() <= m_allocatedTextureSize.width() && updateRect.height() <= m_allocatedTextureSize.height());
ASSERT(updateRect.width() == bitmapSize.width() && updateRect.height() == bitmapSize.height());
+#if PLATFORM(CG)
+ // The origin is at the lower left in Core Graphics' coordinate system. We need to correct for this here.
+ glTexSubImage2D(GL_TEXTURE_2D, 0,
+ updateRect.x(), m_allocatedTextureSize.height() - updateRect.height() - updateRect.y(),
+ updateRect.width(), updateRect.height(),
+ GL_RGBA, GL_UNSIGNED_BYTE, pixels);
+#elif PLATFORM(SKIA)
glTexSubImage2D(GL_TEXTURE_2D, 0, updateRect.x(), updateRect.y(), updateRect.width(), updateRect.height(), GL_RGBA, GL_UNSIGNED_BYTE, pixels);
+#else
+#error "Need to implement for your platform."
+#endif
}
m_dirtyRect.setSize(FloatSize());
diff --git a/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp b/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
index b071385..15acfa5 100644
--- a/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
+++ b/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
@@ -34,21 +34,25 @@
#if USE(ACCELERATED_COMPOSITING)
#include "LayerRendererChromium.h"
+#include "CanvasLayerChromium.h"
#include "GLES2Context.h"
#include "LayerChromium.h"
#include "NotImplemented.h"
#include "TransformLayerChromium.h"
-#include "WebGLLayerChromium.h"
#if PLATFORM(SKIA)
#include "NativeImageSkia.h"
#include "PlatformContextSkia.h"
+#elif PLATFORM(CG)
+#include <CoreGraphics/CGBitmapContext.h>
#endif
#include <GLES2/gl2.h>
namespace WebCore {
+#ifndef NDEBUG
static WTFLogChannel LogLayerRenderer = { 0x00000000, "LayerRenderer", WTFLogChannelOn };
+#endif
static void checkGLError()
{
@@ -195,12 +199,12 @@ PassOwnPtr<LayerRendererChromium> LayerRendererChromium::create(PassOwnPtr<GLES2
}
LayerRendererChromium::LayerRendererChromium(PassOwnPtr<GLES2Context> gles2Context)
- : m_rootLayer(0)
- , m_needsDisplay(false)
+ : m_rootLayerTextureWidth(0)
+ , m_rootLayerTextureHeight(0)
, m_positionLocation(0)
, m_texCoordLocation(1)
- , m_rootLayerTextureWidth(0)
- , m_rootLayerTextureHeight(0)
+ , m_rootLayer(0)
+ , m_needsDisplay(false)
, m_scrollPosition(IntPoint(-1, -1))
, m_currentShaderProgramType(NumShaderProgramTypes)
, m_gles2Context(gles2Context)
@@ -245,6 +249,19 @@ void LayerRendererChromium::setRootLayerCanvasSize(const IntSize& size)
m_rootLayerSkiaContext->setDrawingToImageBuffer(true);
#endif
m_rootLayerGraphicsContext = new GraphicsContext(reinterpret_cast<PlatformGraphicsContext*>(m_rootLayerSkiaContext.get()));
+#elif PLATFORM(CG)
+ // Release the previous CGBitmapContext before reallocating the backing store as a precaution.
+ m_rootLayerCGContext.adoptCF(0);
+ int rowBytes = 4 * size.width();
+ m_rootLayerBackingStore.resize(rowBytes * size.height());
+ memset(m_rootLayerBackingStore.data(), 0, m_rootLayerBackingStore.size());
+ // FIXME: unsure whether this is the best color space choice.
+ RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGColorSpaceCreateWithName(kCGColorSpaceGenericRGBLinear));
+ m_rootLayerCGContext.adoptCF(CGBitmapContextCreate(m_rootLayerBackingStore.data(),
+ size.width(), size.height(), 8, rowBytes,
+ colorSpace.get(),
+ kCGImageAlphaPremultipliedLast));
+ m_rootLayerGraphicsContext = new GraphicsContext(m_rootLayerCGContext.get());
#else
#error "Need to implement for your platform."
#endif
@@ -304,34 +321,51 @@ void LayerRendererChromium::drawLayers(const IntRect& updateRect, const IntRect&
// and viewport.
makeContextCurrent();
+ checkGLError();
+
glBindTexture(GL_TEXTURE_2D, m_rootLayerTextureId);
- unsigned visibleRectWidth = visibleRect.width();
- unsigned visibleRectHeight = visibleRect.height();
+ checkGLError();
+
+ int visibleRectWidth = visibleRect.width();
+ int visibleRectHeight = visibleRect.height();
if (visibleRectWidth != m_rootLayerTextureWidth || visibleRectHeight != m_rootLayerTextureHeight) {
m_rootLayerTextureWidth = visibleRect.width();
m_rootLayerTextureHeight = visibleRect.height();
- m_projectionMatrix = orthoMatrix(0, visibleRectWidth + 0.5, visibleRectHeight + 0.5, 0, -1000, 1000);
+ m_projectionMatrix = orthoMatrix(0, visibleRectWidth, visibleRectHeight, 0, -1000, 1000);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_rootLayerTextureWidth, m_rootLayerTextureHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+
+ checkGLError();
}
// The GL viewport covers the entire visible area, including the scrollbars.
glViewport(0, 0, visibleRectWidth, visibleRectHeight);
+ checkGLError();
+
// The layer, scroll and debug border shaders all use the same vertex attributes
// so we can bind them only once.
glBindBuffer(GL_ARRAY_BUFFER, m_quadVboIds[Vertices]);
+ checkGLError();
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_quadVboIds[LayerElements]);
+ checkGLError();
GLuint offset = 0;
glVertexAttribPointer(m_positionLocation, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)(offset));
+ checkGLError();
offset += 3 * sizeof(GLfloat);
glVertexAttribPointer(m_texCoordLocation, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (GLvoid*)(offset));
+ checkGLError();
glEnableVertexAttribArray(m_positionLocation);
+ checkGLError();
glEnableVertexAttribArray(m_texCoordLocation);
+ checkGLError();
glActiveTexture(GL_TEXTURE0);
+ checkGLError();
glDisable(GL_DEPTH_TEST);
+ checkGLError();
glDisable(GL_CULL_FACE);
+ checkGLError();
if (m_scrollPosition == IntPoint(-1, -1))
m_scrollPosition = scrollPosition;
@@ -346,15 +380,28 @@ void LayerRendererChromium::drawLayers(const IntRect& updateRect, const IntRect&
// root layer texture. The newly exposed area is subesquently filled as usual with
// the contents of the updateRect.
TransformationMatrix scrolledLayerMatrix;
- scrolledLayerMatrix.translate3d((int)floorf(0.5 * visibleRect.width() + 0.5) - scrollDelta.x(),
- (int)floorf(0.5 * visibleRect.height() + 0.5) + scrollDelta.y(), 0);
+#if PLATFORM(SKIA)
+ float scaleFactor = 1.0f;
+#elif PLATFORM(CG)
+ // Because the contents of the OpenGL texture are inverted
+ // vertically compared to the Skia backend, we need to move
+ // the backing store in the opposite direction.
+ float scaleFactor = -1.0f;
+#else
+#error "Need to implement for your platform."
+#endif
+
+ scrolledLayerMatrix.translate3d((int)floorf(0.5 * visibleRect.width()) - scrollDelta.x(),
+ (int)floorf(0.5 * visibleRect.height()) + scaleFactor * scrollDelta.y(), 0);
scrolledLayerMatrix.scale3d(1, -1, 1);
// Switch shaders to avoid RGB swizzling.
useShaderProgram(ScrollLayerProgram);
glUniform1i(m_shaderPrograms[ScrollLayerProgram].m_samplerLocation, 0);
+ checkGLError();
drawTexturedQuad(scrolledLayerMatrix, visibleRect.width(), visibleRect.height(), 1);
+ checkGLError();
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, contentRect.width(), contentRect.height());
@@ -381,31 +428,52 @@ void LayerRendererChromium::drawLayers(const IntRect& updateRect, const IntRect&
// Copy the contents of the updated rect to the root layer texture.
glTexSubImage2D(GL_TEXTURE_2D, 0, updateRect.x(), updateRect.y(), updateRect.width(), updateRect.height(), GL_RGBA, GL_UNSIGNED_BYTE, pixels);
checkGLError();
+#elif PLATFORM(CG)
+ // Get the contents of the updated rect.
+ ASSERT(static_cast<int>(CGBitmapContextGetWidth(m_rootLayerCGContext.get())) == updateRect.width() && static_cast<int>(CGBitmapContextGetHeight(m_rootLayerCGContext.get())) == updateRect.height());
+ void* pixels = m_rootLayerBackingStore.data();
+
+ checkGLError();
+ // Copy the contents of the updated rect to the root layer texture.
+ // The origin is at the lower left in Core Graphics' coordinate system. We need to correct for this here.
+ glTexSubImage2D(GL_TEXTURE_2D, 0,
+ updateRect.x(), m_rootLayerTextureHeight - updateRect.y() - updateRect.height(),
+ updateRect.width(), updateRect.height(),
+ GL_RGBA, GL_UNSIGNED_BYTE, pixels);
+ checkGLError();
#else
-#error Must port to your platform
+#error "Need to implement for your platform."
#endif
}
glClearColor(0, 0, 1, 1);
+ checkGLError();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ checkGLError();
// Render the root layer using a quad that takes up the entire visible area of the window.
useShaderProgram(ContentLayerProgram);
+ checkGLError();
glUniform1i(m_samplerLocation, 0);
+ checkGLError();
TransformationMatrix layerMatrix;
- layerMatrix.translate3d(visibleRect.width() / 2, visibleRect.height() / 2, 0);
+ layerMatrix.translate3d(visibleRect.width() * 0.5f, visibleRect.height() * 0.5f, 0);
drawTexturedQuad(layerMatrix, visibleRect.width(), visibleRect.height(), 1);
+ checkGLError();
// If culling is enabled then we will cull the backface.
glCullFace(GL_BACK);
+ checkGLError();
// The orthographic projection is setup such that Y starts at zero and
// increases going down the page so we need to adjust the winding order of
// front facing triangles.
glFrontFace(GL_CW);
+ checkGLError();
// The shader used to render layers returns pre-multiplied alpha colors
// so we need to send the blending mode appropriately.
glEnable(GL_BLEND);
+ checkGLError();
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
checkGLError();
@@ -623,6 +691,7 @@ void LayerRendererChromium::drawLayer(LayerChromium* layer)
if (layer->contentsDirty()) {
// Update the backing texture contents for any dirty portion of the layer.
layer->updateTextureContents(textureId);
+ m_gles2Context->makeCurrent();
}
if (layer->doubleSided())
@@ -668,6 +737,9 @@ bool LayerRendererChromium::initializeSharedGLObjects()
" gl_Position = matrix * a_position; \n"
" v_texCoord = a_texCoord; \n"
"} \n";
+ // Note differences between Skia and Core Graphics versions:
+ // - Skia uses BGRA and origin is upper left
+ // - Core Graphics uses RGBA and origin is lower left
char fragmentShaderString[] =
"precision mediump float; \n"
"varying vec2 v_texCoord; \n"
@@ -675,8 +747,15 @@ bool LayerRendererChromium::initializeSharedGLObjects()
"uniform float alpha; \n"
"void main() \n"
"{ \n"
+#if PLATFORM(SKIA)
" vec4 texColor = texture2D(s_texture, v_texCoord); \n"
" gl_FragColor = vec4(texColor.z, texColor.y, texColor.x, texColor.w) * alpha; \n"
+#elif PLATFORM(CG)
+ " vec4 texColor = texture2D(s_texture, vec2(v_texCoord.x, 1.0 - v_texCoord.y)); \n"
+ " gl_FragColor = vec4(texColor.x, texColor.y, texColor.z, texColor.w) * alpha; \n"
+#else
+#error "Need to implement for your platform."
+#endif
"} \n";
// Fragment shader used for rendering the scrolled root layer quad. It differs
@@ -692,9 +771,9 @@ bool LayerRendererChromium::initializeSharedGLObjects()
" gl_FragColor = vec4(texColor.x, texColor.y, texColor.z, texColor.w); \n"
"} \n";
- // WebGL layers need to be flipped vertically and their colors shouldn't be
+ // Canvas layers need to be flipped vertically and their colors shouldn't be
// swizzled.
- char webGLFragmentShaderString[] =
+ char canvasFragmentShaderString[] =
"precision mediump float; \n"
"varying vec2 v_texCoord; \n"
"uniform sampler2D s_texture; \n"
@@ -741,11 +820,11 @@ bool LayerRendererChromium::initializeSharedGLObjects()
}
LayerChromium::setShaderProgramId(ContentLayerProgram);
- if (!createLayerShader(WebGLLayerProgram, vertexShaderString, webGLFragmentShaderString)) {
- LOG_ERROR("Failed to create shader program for WebGL layers");
+ if (!createLayerShader(CanvasLayerProgram, vertexShaderString, canvasFragmentShaderString)) {
+ LOG_ERROR("Failed to create shader program for Canvas layers");
return false;
}
- WebGLLayerChromium::setShaderProgramId(WebGLLayerProgram);
+ CanvasLayerChromium::setShaderProgramId(CanvasLayerProgram);
if (!createLayerShader(ScrollLayerProgram, vertexShaderString, scrollFragmentShaderString)) {
LOG_ERROR("Failed to create shader program for scrolling layer");
@@ -760,7 +839,7 @@ bool LayerRendererChromium::initializeSharedGLObjects()
// Specify the attrib location for the position and texCoord and make it the same for all programs to
// avoid binding re-binding the vertex attributes.
bindCommonAttribLocations(ContentLayerProgram);
- bindCommonAttribLocations(WebGLLayerProgram);
+ bindCommonAttribLocations(CanvasLayerProgram);
bindCommonAttribLocations(DebugBorderProgram);
bindCommonAttribLocations(ScrollLayerProgram);
@@ -775,7 +854,7 @@ bool LayerRendererChromium::initializeSharedGLObjects()
// Create a texture object to hold the contents of the root layer.
m_rootLayerTextureId = createLayerTexture();
- if (m_rootLayerTextureId == -1) {
+ if (!m_rootLayerTextureId) {
LOG_ERROR("Failed to create texture for root layer");
return false;
}
diff --git a/WebCore/platform/graphics/chromium/LayerRendererChromium.h b/WebCore/platform/graphics/chromium/LayerRendererChromium.h
index 3b89dc6..e4474b5 100644
--- a/WebCore/platform/graphics/chromium/LayerRendererChromium.h
+++ b/WebCore/platform/graphics/chromium/LayerRendererChromium.h
@@ -42,6 +42,11 @@
#include <wtf/PassOwnPtr.h>
#include <wtf/Vector.h>
+#if PLATFORM(CG)
+#include <CoreGraphics/CGContext.h>
+#include <wtf/RetainPtr.h>
+#endif
+
namespace WebCore {
class GLES2Context;
@@ -83,7 +88,7 @@ public:
GraphicsContext* rootLayerGraphicsContext() const { return m_rootLayerGraphicsContext.get(); }
private:
- enum ShaderProgramType { DebugBorderProgram, ScrollLayerProgram, ContentLayerProgram, WebGLLayerProgram, NumShaderProgramTypes };
+ enum ShaderProgramType { DebugBorderProgram, ScrollLayerProgram, ContentLayerProgram, CanvasLayerProgram, NumShaderProgramTypes };
void updateLayersRecursive(LayerChromium* layer, const TransformationMatrix& parentMatrix, float opacity, const IntRect& visibleRect);
@@ -145,7 +150,12 @@ private:
OwnPtr<skia::PlatformCanvas> m_rootLayerCanvas;
OwnPtr<PlatformContextSkia> m_rootLayerSkiaContext;
OwnPtr<GraphicsContext> m_rootLayerGraphicsContext;
+#elif PLATFORM(CG)
+ Vector<uint8_t> m_rootLayerBackingStore;
+ RetainPtr<CGContextRef> m_rootLayerCGContext;
+ OwnPtr<GraphicsContext> m_rootLayerGraphicsContext;
#endif
+
IntSize m_rootLayerCanvasSize;
OwnPtr<GLES2Context> m_gles2Context;
diff --git a/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp b/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp
index 5ac0e57..89b6ec1 100644
--- a/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp
+++ b/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp
@@ -31,9 +31,21 @@
#include "config.h"
#if USE(ACCELERATED_COMPOSITING)
-
#include "VideoLayerChromium.h"
+#include "LayerRendererChromium.h"
+#include "RenderLayerBacking.h"
+#include "skia/ext/platform_canvas.h"
+
+#include <GLES2/gl2.h>
+#define GL_GLEXT_PROTOTYPES
+#include <GLES2/gl2ext.h>
+
+#if PLATFORM(SKIA)
+#include "NativeImageSkia.h"
+#include "PlatformContextSkia.h"
+#endif
+
namespace WebCore {
PassRefPtr<VideoLayerChromium> VideoLayerChromium::create(GraphicsLayerChromium* owner)
@@ -43,7 +55,136 @@ PassRefPtr<VideoLayerChromium> VideoLayerChromium::create(GraphicsLayerChromium*
VideoLayerChromium::VideoLayerChromium(GraphicsLayerChromium* owner)
: LayerChromium(owner)
+ , m_allocatedTextureId(0)
+#if PLATFORM(SKIA)
+ , m_canvas(0)
+ , m_skiaContext(0)
+#endif
+ , m_graphicsContext(0)
+{
+}
+
+void VideoLayerChromium::updateTextureContents(unsigned textureId)
+{
+ RenderLayerBacking* backing = static_cast<RenderLayerBacking*>(m_owner->client());
+ if (!backing || backing->paintingGoesToWindow())
+ return;
+
+ ASSERT(drawsContent());
+
+ IntRect dirtyRect(m_dirtyRect);
+ IntSize requiredTextureSize;
+
+#if PLATFORM(SKIA)
+ requiredTextureSize = m_bounds;
+ IntRect boundsRect(IntPoint(0, 0), m_bounds);
+
+ // If the texture needs to be reallocated, then we must redraw the entire
+ // contents of the layer.
+ if (requiredTextureSize != m_allocatedTextureSize)
+ dirtyRect = boundsRect;
+ else {
+ // Clip the dirtyRect to the size of the layer to avoid drawing outside
+ // the bounds of the backing texture.
+ dirtyRect.intersect(boundsRect);
+ }
+
+ if (!m_canvas.get()
+ || dirtyRect.width() != m_canvas->getDevice()->width()
+ || dirtyRect.height() != m_canvas->getDevice()->height()) {
+ m_canvas = new skia::PlatformCanvas(dirtyRect.width(), dirtyRect.height(), true);
+ m_skiaContext = new PlatformContextSkia(m_canvas.get());
+
+#if OS(WINDOWS)
+ // This is needed to get text to show up correctly. Without it,
+ // GDI renders with zero alpha and the text becomes invisible.
+ // Unfortunately, setting this to true disables cleartype.
+ // FIXME: Does this take us down a very slow text rendering path?
+ // FIXME: Why is this is a windows-only call?
+ m_skiaContext->setDrawingToImageBuffer(true);
+#endif
+ m_graphicsContext = new GraphicsContext(reinterpret_cast<PlatformGraphicsContext*>(m_skiaContext.get()));
+ }
+
+ // Bring the canvas into the coordinate system of the paint rect.
+ m_canvas->translate(static_cast<SkScalar>(-dirtyRect.x()), static_cast<SkScalar>(-dirtyRect.y()));
+
+ // If the texture id or size changed since last time, then we need to tell GL
+ // to re-allocate a texture.
+ if (m_allocatedTextureId != textureId || requiredTextureSize != m_allocatedTextureSize)
+ createTextureRect(requiredTextureSize, dirtyRect, textureId);
+ else
+ updateTextureRect(dirtyRect, textureId);
+#else
+ // FIXME: Implement non-skia path
+ notImplemented();
+#endif
+}
+
+void VideoLayerChromium::createTextureRect(const IntSize& requiredTextureSize, const IntRect& updateRect, unsigned textureId)
+{
+ // Paint into graphics context and get bitmap.
+ m_owner->paintGraphicsLayerContents(*m_graphicsContext, updateRect);
+ void* pixels = 0;
+ IntSize bitmapSize = IntSize();
+#if PLATFORM(SKIA)
+ const SkBitmap& bitmap = m_canvas->getDevice()->accessBitmap(false);
+ const SkBitmap* skiaBitmap = &bitmap;
+ ASSERT(skiaBitmap);
+
+ SkAutoLockPixels lock(*skiaBitmap);
+ SkBitmap::Config skiaConfig = skiaBitmap->config();
+ // FIXME: Do we need to support more image configurations?
+ if (skiaConfig == SkBitmap::kARGB_8888_Config) {
+ pixels = skiaBitmap->getPixels();
+ bitmapSize = IntSize(skiaBitmap->width(), skiaBitmap->height());
+ }
+#else
+ // FIXME: Implement non-skia path
+ notImplemented();
+#endif
+ if (!pixels)
+ return;
+
+ glBindTexture(GL_TEXTURE_2D, textureId);
+ ASSERT(bitmapSize == requiredTextureSize);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, requiredTextureSize.width(), requiredTextureSize.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
+
+ m_allocatedTextureId = textureId;
+ m_allocatedTextureSize = requiredTextureSize;
+
+ updateCompleted();
+}
+
+void VideoLayerChromium::updateTextureRect(const IntRect& updateRect, unsigned textureId)
+{
+#if PLATFORM(SKIA)
+ const SkBitmap& bitmap = m_canvas->getDevice()->accessBitmap(true);
+ SkBitmap* skiaBitmap = const_cast<SkBitmap*>(&bitmap);
+ ASSERT(skiaBitmap);
+
+ SkAutoLockPixels lock(*skiaBitmap);
+ SkBitmap::Config skiaConfig = skiaBitmap->config();
+
+ if (skiaConfig == SkBitmap::kARGB_8888_Config) {
+ glBindTexture(GL_TEXTURE_2D, textureId);
+ void* mem = glMapTexSubImage2D(GL_TEXTURE_2D, 0, updateRect.x(), updateRect.y(), updateRect.width(), updateRect.height(), GL_RGBA, GL_UNSIGNED_BYTE, GL_WRITE_ONLY);
+ skiaBitmap->setPixels(mem);
+ m_owner->paintGraphicsLayerContents(*m_graphicsContext, updateRect);
+ glUnmapTexSubImage2D(mem);
+ }
+
+ updateCompleted();
+#else
+ // FIXME: Implement non-skia path
+ notImplemented();
+#endif
+}
+
+void VideoLayerChromium::updateCompleted()
{
+ m_dirtyRect.setSize(FloatSize());
+ m_contentsDirty = false;
}
}
diff --git a/WebCore/platform/graphics/chromium/VideoLayerChromium.h b/WebCore/platform/graphics/chromium/VideoLayerChromium.h
index 1fa8009..746299f 100644
--- a/WebCore/platform/graphics/chromium/VideoLayerChromium.h
+++ b/WebCore/platform/graphics/chromium/VideoLayerChromium.h
@@ -43,9 +43,21 @@ class VideoLayerChromium : public LayerChromium {
public:
static PassRefPtr<VideoLayerChromium> create(GraphicsLayerChromium* owner = 0);
virtual bool drawsContent() { return true; }
+ virtual void updateTextureContents(unsigned textureId);
private:
VideoLayerChromium(GraphicsLayerChromium* owner);
+ void createTextureRect(const IntSize& requiredTextureSize, const IntRect& updateRect, unsigned textureId);
+ void updateTextureRect(const IntRect& updateRect, unsigned textureId);
+ void updateCompleted();
+
+ unsigned m_allocatedTextureId;
+ IntSize m_allocatedTextureSize;
+#if PLATFORM(SKIA)
+ OwnPtr<skia::PlatformCanvas> m_canvas;
+ OwnPtr<PlatformContextSkia> m_skiaContext;
+#endif
+ OwnPtr<GraphicsContext> m_graphicsContext;
};
}
diff --git a/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h b/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
index d65bdbc..f2f684b 100644
--- a/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
+++ b/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
@@ -25,6 +25,7 @@
#if ENABLE(VIDEO)
+#include <wtf/Forward.h>
#include "MediaPlayerPrivate.h"
#include "Timer.h"
@@ -42,7 +43,6 @@ namespace WebCore {
class GraphicsContext;
class IntSize;
class IntRect;
-class String;
class GStreamerGWorld;
gboolean mediaPlayerPrivateMessageCallback(GstBus* bus, GstMessage* message, gpointer data);
diff --git a/WebCore/platform/graphics/haiku/FontCustomPlatformData.h b/WebCore/platform/graphics/haiku/FontCustomPlatformData.h
index 9db6cc6..a7dfe37 100644
--- a/WebCore/platform/graphics/haiku/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/haiku/FontCustomPlatformData.h
@@ -22,13 +22,13 @@
#define FontCustomPlatformData_h
#include "FontRenderingMode.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
namespace WebCore {
class FontPlatformData;
class SharedBuffer;
- class String;
struct FontCustomPlatformData : Noncopyable {
public:
diff --git a/WebCore/platform/graphics/mac/ComplexTextController.h b/WebCore/platform/graphics/mac/ComplexTextController.h
index b520d33..85407c7 100644
--- a/WebCore/platform/graphics/mac/ComplexTextController.h
+++ b/WebCore/platform/graphics/mac/ComplexTextController.h
@@ -127,7 +127,7 @@ private:
unsigned m_stringLocation;
size_t m_stringLength;
#if USE(CORE_TEXT)
- RetainPtr<CFMutableDataRef> m_coreTextIndicesData;
+ Vector<CFIndex, 64> m_coreTextIndicesVector;
const CFIndex* m_coreTextIndices;
#endif
#if USE(ATSUI)
diff --git a/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.cpp b/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.cpp
index fba3d4b..744e6d4 100644
--- a/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.cpp
+++ b/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.cpp
@@ -51,10 +51,9 @@ ComplexTextController::ComplexTextRun::ComplexTextRun(CTRunRef ctRun, const Simp
m_glyphCount = CTRunGetGlyphCount(m_coreTextRun.get());
m_coreTextIndices = CTRunGetStringIndicesPtr(m_coreTextRun.get());
if (!m_coreTextIndices) {
- m_coreTextIndicesData.adoptCF(CFDataCreateMutable(kCFAllocatorDefault, m_glyphCount * sizeof(CFIndex)));
- CFDataIncreaseLength(m_coreTextIndicesData.get(), m_glyphCount * sizeof(CFIndex));
- m_coreTextIndices = reinterpret_cast<const CFIndex*>(CFDataGetMutableBytePtr(m_coreTextIndicesData.get()));
- CTRunGetStringIndices(m_coreTextRun.get(), CFRangeMake(0, 0), const_cast<CFIndex*>(m_coreTextIndices));
+ m_coreTextIndicesVector.grow(m_glyphCount);
+ CTRunGetStringIndices(m_coreTextRun.get(), CFRangeMake(0, 0), m_coreTextIndicesVector.data());
+ m_coreTextIndices = m_coreTextIndicesVector.data();
}
m_glyphs = CTRunGetGlyphsPtr(m_coreTextRun.get());
@@ -70,17 +69,16 @@ ComplexTextController::ComplexTextRun::ComplexTextRun(CTRunRef ctRun, const Simp
CTRunGetAdvances(m_coreTextRun.get(), CFRangeMake(0, 0), m_advancesVector.data());
m_advances = m_advancesVector.data();
}
-
}
// Missing glyphs run constructor. Core Text will not generate a run of missing glyphs, instead falling back on
// glyphs from LastResort. We want to use the primary font's missing glyph in order to match the fast text code path.
void ComplexTextController::ComplexTextRun::createTextRunFromFontDataCoreText(bool ltr)
{
- Vector<CFIndex, 16> indices;
+ m_coreTextIndicesVector.reserveInitialCapacity(m_stringLength);
unsigned r = 0;
while (r < m_stringLength) {
- indices.append(r);
+ m_coreTextIndicesVector.uncheckedAppend(r);
if (U_IS_SURROGATE(m_characters[r])) {
ASSERT(r + 1 < m_stringLength);
ASSERT(U_IS_SURROGATE_LEAD(m_characters[r]));
@@ -89,14 +87,12 @@ void ComplexTextController::ComplexTextRun::createTextRunFromFontDataCoreText(bo
} else
r++;
}
- m_glyphCount = indices.size();
+ m_glyphCount = m_coreTextIndicesVector.size();
if (!ltr) {
for (unsigned r = 0, end = m_glyphCount - 1; r < m_glyphCount / 2; ++r, --end)
- std::swap(indices[r], indices[end]);
+ std::swap(m_coreTextIndicesVector[r], m_coreTextIndicesVector[end]);
}
- m_coreTextIndicesData.adoptCF(CFDataCreateMutable(kCFAllocatorDefault, m_glyphCount * sizeof(CFIndex)));
- CFDataAppendBytes(m_coreTextIndicesData.get(), reinterpret_cast<const UInt8*>(indices.data()), m_glyphCount * sizeof(CFIndex));
- m_coreTextIndices = reinterpret_cast<const CFIndex*>(CFDataGetBytePtr(m_coreTextIndicesData.get()));
+ m_coreTextIndices = m_coreTextIndicesVector.data();
// Synthesize a run of missing glyphs.
m_glyphsVector.fill(0, m_glyphCount);
@@ -120,7 +116,7 @@ void ComplexTextController::collectComplexTextRunsForCharactersCoreText(const UC
RetainPtr<CFAttributedStringRef> attributedString(AdoptCF, CFAttributedStringCreate(NULL, string.get(), fontData->getCFStringAttributes(m_font.typesettingFeatures())));
- RetainPtr<CTTypesetterRef> typesetter;
+ RetainPtr<CTLineRef> line;
if (!m_mayUseNaturalWritingDirection || m_run.directionalOverride()) {
static const void* optionKeys[] = { kCTTypesetterOptionForcedEmbeddingLevel };
@@ -130,11 +126,11 @@ void ComplexTextController::collectComplexTextRunsForCharactersCoreText(const UC
static const void* rtlOptionValues[] = { CFNumberCreate(kCFAllocatorDefault, kCFNumberShortType, &rtlForcedEmbeddingLevelValue) };
static CFDictionaryRef ltrTypesetterOptions = CFDictionaryCreate(kCFAllocatorDefault, optionKeys, ltrOptionValues, sizeof(optionKeys) / sizeof(*optionKeys), &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
static CFDictionaryRef rtlTypesetterOptions = CFDictionaryCreate(kCFAllocatorDefault, optionKeys, rtlOptionValues, sizeof(optionKeys) / sizeof(*optionKeys), &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
- typesetter.adoptCF(CTTypesetterCreateWithAttributedStringAndOptions(attributedString.get(), m_run.ltr() ? ltrTypesetterOptions : rtlTypesetterOptions));
- } else
- typesetter.adoptCF(CTTypesetterCreateWithAttributedString(attributedString.get()));
+ RetainPtr<CTTypesetterRef> typesetter(AdoptCF, CTTypesetterCreateWithAttributedStringAndOptions(attributedString.get(), m_run.ltr() ? ltrTypesetterOptions : rtlTypesetterOptions));
- RetainPtr<CTLineRef> line(AdoptCF, CTTypesetterCreateLine(typesetter.get(), CFRangeMake(0, 0)));
+ line.adoptCF(CTTypesetterCreateLine(typesetter.get(), CFRangeMake(0, 0)));
+ } else
+ line.adoptCF(CTLineCreateWithAttributedString(attributedString.get()));
CFArrayRef runArray = CTLineGetGlyphRuns(line.get());
diff --git a/WebCore/platform/graphics/mac/FontCustomPlatformData.h b/WebCore/platform/graphics/mac/FontCustomPlatformData.h
index f2cd2cc..90440d5 100644
--- a/WebCore/platform/graphics/mac/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/mac/FontCustomPlatformData.h
@@ -23,6 +23,7 @@
#include "FontRenderingMode.h"
#include <CoreFoundation/CFBase.h>
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
typedef struct CGFont* CGFontRef;
@@ -33,7 +34,6 @@ namespace WebCore {
class FontPlatformData;
class SharedBuffer;
-class String;
struct FontCustomPlatformData : Noncopyable {
FontCustomPlatformData(ATSFontContainerRef container, ATSFontRef atsFont, CGFontRef cgFont)
diff --git a/WebCore/platform/graphics/mac/FontMac.mm b/WebCore/platform/graphics/mac/FontMac.mm
index aeb0ab2..db77402 100644
--- a/WebCore/platform/graphics/mac/FontMac.mm
+++ b/WebCore/platform/graphics/mac/FontMac.mm
@@ -64,7 +64,7 @@ static void showGlyphsWithAdvances(const FontPlatformData& font, CGContextRef co
positions[i].x = positions[i - 1].x + advance.width;
positions[i].y = positions[i - 1].y + advance.height;
}
- CTFontDrawGlyphs(toCTFontRef(font.font()), glyphs, positions.data(), count, context);
+ CTFontDrawGlyphs(font.ctFont(), glyphs, positions.data(), count, context);
}
#endif
}
diff --git a/WebCore/platform/graphics/mac/FontPlatformData.h b/WebCore/platform/graphics/mac/FontPlatformData.h
index f4c92be..07ae4f8 100644
--- a/WebCore/platform/graphics/mac/FontPlatformData.h
+++ b/WebCore/platform/graphics/mac/FontPlatformData.h
@@ -2,7 +2,7 @@
* This file is part of the internal font implementation.
* It should not be included by source files outside of it.
*
- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -39,14 +39,13 @@ typedef const struct __CTFont* CTFontRef;
#include <CoreFoundation/CFBase.h>
#include <objc/objc-auto.h>
+#include <wtf/Forward.h>
#include <wtf/RetainPtr.h>
typedef UInt32 ATSUFontID;
namespace WebCore {
-class String;
-
#ifndef BUILDING_ON_TIGER
inline CTFontRef toCTFontRef(NSFont *nsFont) { return reinterpret_cast<CTFontRef>(nsFont); }
#endif
@@ -114,6 +113,10 @@ class FontPlatformData {
NSFont *font() const { return m_font; }
void setFont(NSFont *font);
+#if USE(CORE_TEXT)
+ CTFontRef ctFont() const;
+#endif
+
bool roundsGlyphAdvances() const;
bool allowsLigatures() const;
bool isColorBitmapFont() const { return m_isColorBitmapFont; }
@@ -132,12 +135,17 @@ private:
static NSFont *hashTableDeletedFontValue() { return reinterpret_cast<NSFont *>(-1); }
NSFont *m_font;
+
#ifndef BUILDING_ON_TIGER
RetainPtr<CGFontRef> m_cgFont;
#else
CGFontRef m_cgFont; // It is not necessary to refcount this, since either an NSFont owns it or some CachedFont has it referenced.
#endif
+#if USE(CORE_TEXT)
+ mutable RetainPtr<CTFontRef> m_CTFont;
+#endif
+
bool m_isColorBitmapFont;
};
diff --git a/WebCore/platform/graphics/mac/FontPlatformDataMac.mm b/WebCore/platform/graphics/mac/FontPlatformDataMac.mm
index aebd9f7..33de3c3 100644
--- a/WebCore/platform/graphics/mac/FontPlatformDataMac.mm
+++ b/WebCore/platform/graphics/mac/FontPlatformDataMac.mm
@@ -61,6 +61,9 @@ FontPlatformData::FontPlatformData(const FontPlatformData& f)
m_cgFont = f.m_cgFont;
m_atsuFontID = f.m_atsuFontID;
m_isColorBitmapFont = f.m_isColorBitmapFont;
+#if USE(CORE_TEXT)
+ m_CTFont = f.m_CTFont;
+#endif
}
FontPlatformData:: ~FontPlatformData()
@@ -84,6 +87,9 @@ const FontPlatformData& FontPlatformData::operator=(const FontPlatformData& f)
CFRelease(m_font);
m_font = f.m_font;
m_isColorBitmapFont = f.m_isColorBitmapFont;
+#if USE(CORE_TEXT)
+ m_CTFont = f.m_CTFont;
+#endif
return *this;
}
@@ -107,6 +113,9 @@ void FontPlatformData::setFont(NSFont *font)
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
m_isColorBitmapFont = CTFontGetSymbolicTraits(toCTFontRef(font)) & kCTFontColorGlyphsTrait;
#endif
+#if USE(CORE_TEXT)
+ m_CTFont = 0;
+#endif
}
bool FontPlatformData::roundsGlyphAdvances() const
@@ -119,6 +128,17 @@ bool FontPlatformData::allowsLigatures() const
return ![[m_font coveredCharacterSet] characterIsMember:'a'];
}
+#if USE(CORE_TEXT)
+CTFontRef FontPlatformData::ctFont() const
+{
+ if (m_font)
+ return toCTFontRef(m_font);
+ if (!m_CTFont)
+ m_CTFont.adoptCF(CTFontCreateWithGraphicsFont(m_cgFont.get(), m_size, 0, 0));
+ return m_CTFont.get();
+}
+#endif // USE(CORE_TEXT)
+
#ifndef NDEBUG
String FontPlatformData::description() const
{
diff --git a/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm b/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm
index 30c3b8e..fd503fc 100644
--- a/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm
+++ b/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm
@@ -30,25 +30,19 @@
#include "GraphicsContext3D.h"
#import "BlockExceptions.h"
-#include "CanvasObject.h"
-#include "ImageBuffer.h"
-#include "NotImplemented.h"
-#include "WebGLActiveInfo.h"
+
#include "ArrayBuffer.h"
#include "ArrayBufferView.h"
-#include "WebGLBuffer.h"
+#include "WebGLObject.h"
+#include "CanvasRenderingContext.h"
#include "Float32Array.h"
-#include "WebGLFramebuffer.h"
#include "GraphicsContext.h"
#include "HTMLCanvasElement.h"
+#include "ImageBuffer.h"
#include "Int32Array.h"
-#include "WebGLLayer.h"
-#include "WebGLProgram.h"
-#include "WebGLRenderbuffer.h"
-#include "WebGLRenderingContext.h"
-#include "WebGLShader.h"
-#include "WebGLTexture.h"
+#include "NotImplemented.h"
#include "Uint8Array.h"
+#include "WebGLLayer.h"
#include <CoreGraphics/CGBitmapContext.h>
#include <OpenGL/CGLRenderers.h>
#include <OpenGL/gl.h>
@@ -240,7 +234,7 @@ void GraphicsContext3D::makeContextCurrent()
CGLSetCurrentContext(m_contextObj);
}
-void GraphicsContext3D::paintRenderingResultsToCanvas(WebGLRenderingContext* context)
+void GraphicsContext3D::paintRenderingResultsToCanvas(CanvasRenderingContext* context)
{
HTMLCanvasElement* canvas = context->canvas();
ImageBuffer* imageBuffer = canvas->buffer();
@@ -288,7 +282,7 @@ void GraphicsContext3D::paintRenderingResultsToCanvas(WebGLRenderingContext* con
canvas->width(), canvas->height(), imageBuffer->context()->platformContext());
}
-void GraphicsContext3D::beginPaint(WebGLRenderingContext* context)
+void GraphicsContext3D::beginPaint(CanvasRenderingContext* context)
{
UNUSED_PARAM(context);
}
@@ -461,34 +455,34 @@ void GraphicsContext3D::activeTexture(unsigned long texture)
::glActiveTexture(texture);
}
-void GraphicsContext3D::attachShader(WebGLProgram* program, WebGLShader* shader)
+void GraphicsContext3D::attachShader(Platform3DObject program, Platform3DObject shader)
{
ASSERT(program);
ASSERT(shader);
ensureContext(m_contextObj);
- ::glAttachShader((GLuint) program->object(), (GLuint) shader->object());
+ ::glAttachShader((GLuint) program, (GLuint) shader);
}
-void GraphicsContext3D::bindAttribLocation(WebGLProgram* program, unsigned long index, const String& name)
+void GraphicsContext3D::bindAttribLocation(Platform3DObject program, unsigned long index, const String& name)
{
ASSERT(program);
ensureContext(m_contextObj);
- ::glBindAttribLocation((GLuint) program->object(), index, name.utf8().data());
+ ::glBindAttribLocation((GLuint) program, index, name.utf8().data());
}
-void GraphicsContext3D::bindBuffer(unsigned long target, WebGLBuffer* buffer)
+void GraphicsContext3D::bindBuffer(unsigned long target, Platform3DObject buffer)
{
ensureContext(m_contextObj);
- ::glBindBuffer(target, buffer ? (GLuint) buffer->object() : 0);
+ ::glBindBuffer(target, (GLuint) buffer);
}
-void GraphicsContext3D::bindFramebuffer(unsigned long target, WebGLFramebuffer* buffer)
+void GraphicsContext3D::bindFramebuffer(unsigned long target, Platform3DObject buffer)
{
ensureContext(m_contextObj);
GLuint fbo;
- if (buffer && buffer->object())
- fbo = (GLuint)buffer->object();
+ if (buffer)
+ fbo = (GLuint)buffer;
else
fbo = (m_attrs.antialias ? m_multisampleFBO : m_fbo);
if (fbo != m_boundFBO) {
@@ -497,17 +491,17 @@ void GraphicsContext3D::bindFramebuffer(unsigned long target, WebGLFramebuffer*
}
}
-void GraphicsContext3D::bindRenderbuffer(unsigned long target, WebGLRenderbuffer* renderbuffer)
+void GraphicsContext3D::bindRenderbuffer(unsigned long target, Platform3DObject renderbuffer)
{
ensureContext(m_contextObj);
- ::glBindRenderbufferEXT(target, renderbuffer ? (GLuint) renderbuffer->object() : 0);
+ ::glBindRenderbufferEXT(target, (GLuint) renderbuffer);
}
-void GraphicsContext3D::bindTexture(unsigned long target, WebGLTexture* texture)
+void GraphicsContext3D::bindTexture(unsigned long target, Platform3DObject texture)
{
ensureContext(m_contextObj);
- ::glBindTexture(target, texture ? (GLuint) texture->object() : 0);
+ ::glBindTexture(target, (GLuint) texture);
}
void GraphicsContext3D::blendColor(double red, double green, double blue, double alpha)
@@ -619,11 +613,11 @@ void GraphicsContext3D::colorMask(bool red, bool green, bool blue, bool alpha)
::glColorMask(red, green, blue, alpha);
}
-void GraphicsContext3D::compileShader(WebGLShader* shader)
+void GraphicsContext3D::compileShader(Platform3DObject shader)
{
ASSERT(shader);
ensureContext(m_contextObj);
- ::glCompileShader((GLuint) shader->object());
+ ::glCompileShader((GLuint) shader);
}
void GraphicsContext3D::copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, unsigned long width, unsigned long height, long border)
@@ -678,12 +672,12 @@ void GraphicsContext3D::depthRange(double zNear, double zFar)
::glDepthRange(zNear, zFar);
}
-void GraphicsContext3D::detachShader(WebGLProgram* program, WebGLShader* shader)
+void GraphicsContext3D::detachShader(Platform3DObject program, Platform3DObject shader)
{
ASSERT(program);
ASSERT(shader);
ensureContext(m_contextObj);
- ::glDetachShader((GLuint) program->object(), (GLuint) shader->object());
+ ::glDetachShader((GLuint) program, (GLuint) shader);
}
void GraphicsContext3D::disable(unsigned long cap)
@@ -734,10 +728,10 @@ void GraphicsContext3D::flush()
::glFlush();
}
-void GraphicsContext3D::framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, WebGLRenderbuffer* buffer)
+void GraphicsContext3D::framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, Platform3DObject buffer)
{
ensureContext(m_contextObj);
- GLuint renderbuffer = (buffer ? (GLuint) buffer->object() : 0);
+ GLuint renderbuffer = (GLuint) buffer;
if (attachment == DEPTH_STENCIL_ATTACHMENT) {
::glFramebufferRenderbufferEXT(target, DEPTH_ATTACHMENT, renderbuffertarget, renderbuffer);
::glFramebufferRenderbufferEXT(target, STENCIL_ATTACHMENT, renderbuffertarget, renderbuffer);
@@ -745,10 +739,10 @@ void GraphicsContext3D::framebufferRenderbuffer(unsigned long target, unsigned l
::glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer);
}
-void GraphicsContext3D::framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, WebGLTexture* texture, long level)
+void GraphicsContext3D::framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, Platform3DObject texture, long level)
{
ensureContext(m_contextObj);
- ::glFramebufferTexture2DEXT(target, attachment, textarget, texture ? (GLuint) texture->object() : 0, level);
+ ::glFramebufferTexture2DEXT(target, attachment, textarget, (GLuint) texture, level);
}
void GraphicsContext3D::frontFace(unsigned long mode)
@@ -763,20 +757,20 @@ void GraphicsContext3D::generateMipmap(unsigned long target)
::glGenerateMipmapEXT(target);
}
-bool GraphicsContext3D::getActiveAttrib(WebGLProgram* program, unsigned long index, ActiveInfo& info)
+bool GraphicsContext3D::getActiveAttrib(Platform3DObject program, unsigned long index, ActiveInfo& info)
{
- if (!program->object()) {
+ if (!program) {
synthesizeGLError(INVALID_VALUE);
return false;
}
ensureContext(m_contextObj);
GLint maxAttributeSize = 0;
- ::glGetProgramiv(static_cast<GLuint>(program->object()), GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &maxAttributeSize);
+ ::glGetProgramiv(static_cast<GLuint>(program), GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &maxAttributeSize);
GLchar name[maxAttributeSize]; // GL_ACTIVE_ATTRIBUTE_MAX_LENGTH includes null termination
GLsizei nameLength = 0;
GLint size = 0;
GLenum type = 0;
- ::glGetActiveAttrib(static_cast<GLuint>(program->object()), index, maxAttributeSize, &nameLength, &size, &type, name);
+ ::glGetActiveAttrib(static_cast<GLuint>(program), index, maxAttributeSize, &nameLength, &size, &type, name);
if (!nameLength)
return false;
info.name = String(name, nameLength);
@@ -785,20 +779,20 @@ bool GraphicsContext3D::getActiveAttrib(WebGLProgram* program, unsigned long ind
return true;
}
-bool GraphicsContext3D::getActiveUniform(WebGLProgram* program, unsigned long index, ActiveInfo& info)
+bool GraphicsContext3D::getActiveUniform(Platform3DObject program, unsigned long index, ActiveInfo& info)
{
- if (!program->object()) {
+ if (!program) {
synthesizeGLError(INVALID_VALUE);
return false;
}
ensureContext(m_contextObj);
GLint maxUniformSize = 0;
- ::glGetProgramiv(static_cast<GLuint>(program->object()), GL_ACTIVE_UNIFORM_MAX_LENGTH, &maxUniformSize);
+ ::glGetProgramiv(static_cast<GLuint>(program), GL_ACTIVE_UNIFORM_MAX_LENGTH, &maxUniformSize);
GLchar name[maxUniformSize]; // GL_ACTIVE_UNIFORM_MAX_LENGTH includes null termination
GLsizei nameLength = 0;
GLint size = 0;
GLenum type = 0;
- ::glGetActiveUniform(static_cast<GLuint>(program->object()), index, maxUniformSize, &nameLength, &size, &type, name);
+ ::glGetActiveUniform(static_cast<GLuint>(program), index, maxUniformSize, &nameLength, &size, &type, name);
if (!nameLength)
return false;
info.name = String(name, nameLength);
@@ -807,23 +801,23 @@ bool GraphicsContext3D::getActiveUniform(WebGLProgram* program, unsigned long in
return true;
}
-void GraphicsContext3D::getAttachedShaders(WebGLProgram* program, int maxCount, int* count, unsigned int* shaders)
+void GraphicsContext3D::getAttachedShaders(Platform3DObject program, int maxCount, int* count, unsigned int* shaders)
{
- if (!program || !program->object()) {
+ if (!program) {
synthesizeGLError(INVALID_VALUE);
return;
}
ensureContext(m_contextObj);
- ::glGetAttachedShaders(static_cast<GLuint>(program->object()), maxCount, count, shaders);
+ ::glGetAttachedShaders(static_cast<GLuint>(program), maxCount, count, shaders);
}
-int GraphicsContext3D::getAttribLocation(WebGLProgram* program, const String& name)
+int GraphicsContext3D::getAttribLocation(Platform3DObject program, const String& name)
{
if (!program)
return -1;
ensureContext(m_contextObj);
- return ::glGetAttribLocation((GLuint) program->object(), name.utf8().data());
+ return ::glGetAttribLocation((GLuint) program, name.utf8().data());
}
GraphicsContext3D::Attributes GraphicsContext3D::getContextAttributes()
@@ -856,13 +850,13 @@ void GraphicsContext3D::hint(unsigned long target, unsigned long mode)
::glHint(target, mode);
}
-bool GraphicsContext3D::isBuffer(WebGLBuffer* buffer)
+bool GraphicsContext3D::isBuffer(Platform3DObject buffer)
{
if (!buffer)
return false;
ensureContext(m_contextObj);
- return ::glIsBuffer((GLuint) buffer->object());
+ return ::glIsBuffer((GLuint) buffer);
}
bool GraphicsContext3D::isEnabled(unsigned long cap)
@@ -871,49 +865,49 @@ bool GraphicsContext3D::isEnabled(unsigned long cap)
return ::glIsEnabled(cap);
}
-bool GraphicsContext3D::isFramebuffer(WebGLFramebuffer* framebuffer)
+bool GraphicsContext3D::isFramebuffer(Platform3DObject framebuffer)
{
if (!framebuffer)
return false;
ensureContext(m_contextObj);
- return ::glIsFramebufferEXT((GLuint) framebuffer->object());
+ return ::glIsFramebufferEXT((GLuint) framebuffer);
}
-bool GraphicsContext3D::isProgram(WebGLProgram* program)
+bool GraphicsContext3D::isProgram(Platform3DObject program)
{
if (!program)
return false;
ensureContext(m_contextObj);
- return ::glIsProgram((GLuint) program->object());
+ return ::glIsProgram((GLuint) program);
}
-bool GraphicsContext3D::isRenderbuffer(WebGLRenderbuffer* renderbuffer)
+bool GraphicsContext3D::isRenderbuffer(Platform3DObject renderbuffer)
{
if (!renderbuffer)
return false;
ensureContext(m_contextObj);
- return ::glIsRenderbufferEXT((GLuint) renderbuffer->object());
+ return ::glIsRenderbufferEXT((GLuint) renderbuffer);
}
-bool GraphicsContext3D::isShader(WebGLShader* shader)
+bool GraphicsContext3D::isShader(Platform3DObject shader)
{
if (!shader)
return false;
ensureContext(m_contextObj);
- return ::glIsShader((GLuint) shader->object());
+ return ::glIsShader((GLuint) shader);
}
-bool GraphicsContext3D::isTexture(WebGLTexture* texture)
+bool GraphicsContext3D::isTexture(Platform3DObject texture)
{
if (!texture)
return false;
ensureContext(m_contextObj);
- return ::glIsTexture((GLuint) texture->object());
+ return ::glIsTexture((GLuint) texture);
}
void GraphicsContext3D::lineWidth(double width)
@@ -922,11 +916,11 @@ void GraphicsContext3D::lineWidth(double width)
::glLineWidth(static_cast<float>(width));
}
-void GraphicsContext3D::linkProgram(WebGLProgram* program)
+void GraphicsContext3D::linkProgram(Platform3DObject program)
{
ASSERT(program);
ensureContext(m_contextObj);
- ::glLinkProgram((GLuint) program->object());
+ ::glLinkProgram((GLuint) program);
}
void GraphicsContext3D::pixelStorei(unsigned long pname, long param)
@@ -999,7 +993,7 @@ void GraphicsContext3D::scissor(long x, long y, unsigned long width, unsigned lo
::glScissor(x, y, width, height);
}
-void GraphicsContext3D::shaderSource(WebGLShader* shader, const String& string)
+void GraphicsContext3D::shaderSource(Platform3DObject shader, const String& string)
{
ASSERT(shader);
@@ -1008,7 +1002,7 @@ void GraphicsContext3D::shaderSource(WebGLShader* shader, const String& string)
const char* s = cs.data();
int length = string.length();
- ::glShaderSource((GLuint) shader->object(), 1, &s, &length);
+ ::glShaderSource((GLuint) shader, 1, &s, &length);
}
void GraphicsContext3D::stencilFunc(unsigned long func, long ref, unsigned long mask)
@@ -1182,18 +1176,18 @@ void GraphicsContext3D::uniformMatrix4fv(long location, bool transpose, float* a
::glUniformMatrix4fv(location, size, transpose, array);
}
-void GraphicsContext3D::useProgram(WebGLProgram* program)
+void GraphicsContext3D::useProgram(Platform3DObject program)
{
ensureContext(m_contextObj);
- ::glUseProgram(program ? ((GLuint) program->object()) : 0);
+ ::glUseProgram((GLuint) program);
}
-void GraphicsContext3D::validateProgram(WebGLProgram* program)
+void GraphicsContext3D::validateProgram(Platform3DObject program)
{
ASSERT(program);
ensureContext(m_contextObj);
- ::glValidateProgram((GLuint) program->object());
+ ::glValidateProgram((GLuint) program);
}
void GraphicsContext3D::vertexAttrib1f(unsigned long indx, float v0)
@@ -1316,26 +1310,26 @@ void GraphicsContext3D::getIntegerv(unsigned long pname, int* value)
}
}
-void GraphicsContext3D::getProgramiv(WebGLProgram* program, unsigned long pname, int* value)
+void GraphicsContext3D::getProgramiv(Platform3DObject program, unsigned long pname, int* value)
{
ensureContext(m_contextObj);
- ::glGetProgramiv((GLuint) program->object(), pname, value);
+ ::glGetProgramiv((GLuint) program, pname, value);
}
-String GraphicsContext3D::getProgramInfoLog(WebGLProgram* program)
+String GraphicsContext3D::getProgramInfoLog(Platform3DObject program)
{
ASSERT(program);
ensureContext(m_contextObj);
GLint length;
- ::glGetProgramiv((GLuint) program->object(), GL_INFO_LOG_LENGTH, &length);
+ ::glGetProgramiv((GLuint) program, GL_INFO_LOG_LENGTH, &length);
GLsizei size;
GLchar* info = (GLchar*) fastMalloc(length);
if (!info)
return "";
- ::glGetProgramInfoLog((GLuint) program->object(), length, &size, info);
+ ::glGetProgramInfoLog((GLuint) program, length, &size, info);
String s(info);
fastFree(info);
return s;
@@ -1347,47 +1341,47 @@ void GraphicsContext3D::getRenderbufferParameteriv(unsigned long target, unsigne
::glGetRenderbufferParameterivEXT(target, pname, value);
}
-void GraphicsContext3D::getShaderiv(WebGLShader* shader, unsigned long pname, int* value)
+void GraphicsContext3D::getShaderiv(Platform3DObject shader, unsigned long pname, int* value)
{
ASSERT(shader);
ensureContext(m_contextObj);
- ::glGetShaderiv((GLuint) shader->object(), pname, value);
+ ::glGetShaderiv((GLuint) shader, pname, value);
}
-String GraphicsContext3D::getShaderInfoLog(WebGLShader* shader)
+String GraphicsContext3D::getShaderInfoLog(Platform3DObject shader)
{
ASSERT(shader);
ensureContext(m_contextObj);
GLint length;
- ::glGetShaderiv((GLuint) shader->object(), GL_INFO_LOG_LENGTH, &length);
+ ::glGetShaderiv((GLuint) shader, GL_INFO_LOG_LENGTH, &length);
GLsizei size;
GLchar* info = (GLchar*) fastMalloc(length);
if (!info)
return "";
- ::glGetShaderInfoLog((GLuint) shader->object(), length, &size, info);
+ ::glGetShaderInfoLog((GLuint) shader, length, &size, info);
String s(info);
fastFree(info);
return s;
}
-String GraphicsContext3D::getShaderSource(WebGLShader* shader)
+String GraphicsContext3D::getShaderSource(Platform3DObject shader)
{
ASSERT(shader);
ensureContext(m_contextObj);
GLint length;
- ::glGetShaderiv((GLuint) shader->object(), GL_SHADER_SOURCE_LENGTH, &length);
+ ::glGetShaderiv((GLuint) shader, GL_SHADER_SOURCE_LENGTH, &length);
GLsizei size;
GLchar* info = (GLchar*) fastMalloc(length);
if (!info)
return "";
- ::glGetShaderSource((GLuint) shader->object(), length, &size, info);
+ ::glGetShaderSource((GLuint) shader, length, &size, info);
String s(info);
fastFree(info);
return s;
@@ -1406,24 +1400,24 @@ void GraphicsContext3D::getTexParameteriv(unsigned long target, unsigned long pn
::glGetTexParameteriv(target, pname, value);
}
-void GraphicsContext3D::getUniformfv(WebGLProgram* program, long location, float* value)
+void GraphicsContext3D::getUniformfv(Platform3DObject program, long location, float* value)
{
ensureContext(m_contextObj);
- ::glGetUniformfv((GLuint) program->object(), location, value);
+ ::glGetUniformfv((GLuint) program, location, value);
}
-void GraphicsContext3D::getUniformiv(WebGLProgram* program, long location, int* value)
+void GraphicsContext3D::getUniformiv(Platform3DObject program, long location, int* value)
{
ensureContext(m_contextObj);
- ::glGetUniformiv((GLuint) program->object(), location, value);
+ ::glGetUniformiv((GLuint) program, location, value);
}
-long GraphicsContext3D::getUniformLocation(WebGLProgram* program, const String& name)
+long GraphicsContext3D::getUniformLocation(Platform3DObject program, const String& name)
{
ASSERT(program);
ensureContext(m_contextObj);
- return ::glGetUniformLocation((GLuint) program->object(), name.utf8().data());
+ return ::glGetUniformLocation((GLuint) program, name.utf8().data());
}
void GraphicsContext3D::getVertexAttribfv(unsigned long index, unsigned long pname, float* value)
diff --git a/WebCore/platform/graphics/mac/GraphicsLayerCA.h b/WebCore/platform/graphics/mac/GraphicsLayerCA.h
index 80c822c..ee70338 100644
--- a/WebCore/platform/graphics/mac/GraphicsLayerCA.h
+++ b/WebCore/platform/graphics/mac/GraphicsLayerCA.h
@@ -103,9 +103,8 @@ public:
virtual void setContentsToImage(Image*);
virtual void setContentsToMedia(PlatformLayer*);
-#if ENABLE(3D_CANVAS)
- virtual void setContentsToWebGL(PlatformLayer*);
-#endif
+ virtual void setContentsToCanvas(PlatformLayer*);
+
virtual bool hasContentsLayer() const { return m_contentsLayer; }
virtual PlatformLayer* platformLayer() const;
@@ -258,9 +257,7 @@ private:
void updateContentsImage();
void updateContentsMediaLayer();
-#if ENABLE(3D_CANVAS)
- void updateContentsWebGLLayer();
-#endif
+ void updateContentsCanvasLayer();
void updateContentsRect();
void updateGeometryOrientation();
void updateMaskLayer();
@@ -305,9 +302,7 @@ private:
DirtyRectsChanged = 1 << 16,
ContentsImageChanged = 1 << 17,
ContentsMediaLayerChanged = 1 << 18,
-#if ENABLE(3D_CANVAS)
- ContentsWebGLLayerChanged = 1 << 19,
-#endif
+ ContentsCanvasLayerChanged = 1 << 19,
ContentsRectChanged = 1 << 20,
GeometryOrientationChanged = 1 << 21,
MaskLayerChanged = 1 << 22,
@@ -332,10 +327,8 @@ private:
enum ContentsLayerPurpose {
NoContentsLayer = 0,
ContentsLayerForImage,
- ContentsLayerForMedia
-#if ENABLE(3D_CANVAS)
- , ContentsLayerForWebGL
-#endif
+ ContentsLayerForMedia,
+ ContentsLayerForCanvas
};
ContentsLayerPurpose m_contentsLayerPurpose;
diff --git a/WebCore/platform/graphics/mac/GraphicsLayerCA.mm b/WebCore/platform/graphics/mac/GraphicsLayerCA.mm
index 9f1ac83..cb4ca58 100644
--- a/WebCore/platform/graphics/mac/GraphicsLayerCA.mm
+++ b/WebCore/platform/graphics/mac/GraphicsLayerCA.mm
@@ -917,10 +917,8 @@ void GraphicsLayerCA::commitLayerChangesBeforeSublayers()
if (m_uncommittedChanges & ContentsMediaLayerChanged) // Needs to happen before ChildrenChanged
updateContentsMediaLayer();
-#if ENABLE(3D_CANVAS)
- if (m_uncommittedChanges & ContentsWebGLLayerChanged) // Needs to happen before ChildrenChanged
- updateContentsWebGLLayer();
-#endif
+ if (m_uncommittedChanges & ContentsCanvasLayerChanged) // Needs to happen before ChildrenChanged
+ updateContentsCanvasLayer();
if (m_uncommittedChanges & BackgroundColorChanged) // Needs to happen before ChildrenChanged, and after updating image or video
updateLayerBackgroundColor();
@@ -1396,18 +1394,16 @@ void GraphicsLayerCA::updateContentsMediaLayer()
}
}
-#if ENABLE(3D_CANVAS)
-void GraphicsLayerCA::updateContentsWebGLLayer()
+void GraphicsLayerCA::updateContentsCanvasLayer()
{
- // WebGLLayer was set as m_contentsLayer, and will get parented in updateSublayerList().
+ // CanvasLayer was set as m_contentsLayer, and will get parented in updateSublayerList().
if (m_contentsLayer) {
setupContentsLayer(m_contentsLayer.get());
[m_contentsLayer.get() setNeedsDisplay];
updateContentsRect();
}
}
-#endif
-
+
void GraphicsLayerCA::updateContentsRect()
{
if (!m_contentsLayer)
@@ -1722,22 +1718,20 @@ void GraphicsLayerCA::pauseAnimationOnLayer(AnimatedPropertyID property, const S
}
}
-#if ENABLE(3D_CANVAS)
-void GraphicsLayerCA::setContentsToWebGL(PlatformLayer* webglLayer)
+void GraphicsLayerCA::setContentsToCanvas(PlatformLayer* canvasLayer)
{
- if (webglLayer == m_contentsLayer)
+ if (canvasLayer == m_contentsLayer)
return;
- m_contentsLayer = webglLayer;
+ m_contentsLayer = canvasLayer;
if (m_contentsLayer && [m_contentsLayer.get() respondsToSelector:@selector(setLayerOwner:)])
[(id)m_contentsLayer.get() setLayerOwner:this];
- m_contentsLayerPurpose = webglLayer ? ContentsLayerForWebGL : NoContentsLayer;
+ m_contentsLayerPurpose = canvasLayer ? ContentsLayerForCanvas : NoContentsLayer;
noteSublayersChanged();
- noteLayerPropertyChanged(ContentsWebGLLayerChanged);
+ noteLayerPropertyChanged(ContentsCanvasLayerChanged);
}
-#endif
void GraphicsLayerCA::repaintLayerDirtyRects()
{
diff --git a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h
index 2636aeb..3895a00 100644
--- a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h
+++ b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h
@@ -59,7 +59,6 @@ class MediaPlayerPrivate : public MediaPlayerPrivateInterface {
public:
static void registerMediaEngine(MediaEngineRegistrar);
-
void repaint();
void loadStateChanged();
void rateChanged();
@@ -127,6 +126,8 @@ private:
void paint(GraphicsContext*, const IntRect&);
void paintCurrentFrameInContext(GraphicsContext*, const IntRect&);
+ virtual void prepareForRendering();
+
#if USE(ACCELERATED_COMPOSITING)
bool supportsAcceleratedRendering() const;
@@ -170,7 +171,7 @@ private:
void cacheMovieScale();
bool metaDataAvailable() const { return m_qtMovie && m_readyState >= MediaPlayer::HaveMetadata; }
- bool isReadyForRendering() const;
+ bool isReadyForVideoSetup() const;
MediaPlayer* m_player;
RetainPtr<QTMovie> m_qtMovie;
@@ -197,6 +198,7 @@ private:
bool m_hasUnsupportedTracks;
bool m_videoFrameHasDrawn;
bool m_delayingLoad;
+ bool m_isAllowedToRender;
#if DRAW_FRAME_RATE
int m_frameCountWhilePlaying;
double m_timeStartedPlaying;
diff --git a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
index 5c327f9..435e56e 100644
--- a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
+++ b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
@@ -217,6 +217,7 @@ MediaPlayerPrivate::MediaPlayerPrivate(MediaPlayer* player)
, m_visible(false)
, m_hasUnsupportedTracks(false)
, m_videoFrameHasDrawn(false)
+ , m_isAllowedToRender(false)
#if DRAW_FRAME_RATE
, m_frameCountWhilePlaying(0)
, m_timeStartedPlaying(0)
@@ -495,7 +496,7 @@ MediaPlayerPrivate::MediaRenderingMode MediaPlayerPrivate::preferredRenderingMod
void MediaPlayerPrivate::setUpVideoRendering()
{
- if (!isReadyForRendering())
+ if (!isReadyForVideoSetup())
return;
MediaRenderingMode currentMode = currentRenderingMode();
@@ -519,10 +520,9 @@ void MediaPlayerPrivate::setUpVideoRendering()
break;
}
-#if USE(ACCELERATED_COMPOSITING)
+ // If using a movie layer, inform the client so the compositing tree is updated.
if (currentMode == MediaRenderingMovieLayer || preferredMode == MediaRenderingMovieLayer)
m_player->mediaPlayerClient()->mediaPlayerRenderingModeChanged(m_player);
-#endif
}
void MediaPlayerPrivate::tearDownVideoRendering()
@@ -915,11 +915,26 @@ void MediaPlayerPrivate::cacheMovieScale()
m_scaleFactor.setHeight(initialSize.height / naturalSize.height);
}
-bool MediaPlayerPrivate::isReadyForRendering() const
+bool MediaPlayerPrivate::isReadyForVideoSetup() const
{
return m_readyState >= MediaPlayer::HaveMetadata && m_player->visible();
}
+void MediaPlayerPrivate::prepareForRendering()
+{
+ if (m_isAllowedToRender)
+ return;
+ m_isAllowedToRender = true;
+
+ if (!hasSetUpVideoRendering())
+ setUpVideoRendering();
+
+ // If using a movie layer, inform the client so the compositing tree is updated. This is crucial if the movie
+ // has a poster, as it will most likely not have a layer and we will now be rendering frames to the movie layer.
+ if (currentRenderingMode() == MediaRenderingMovieLayer || preferredRenderingMode() == MediaRenderingMovieLayer)
+ m_player->mediaPlayerClient()->mediaPlayerRenderingModeChanged(m_player);
+}
+
void MediaPlayerPrivate::updateStates()
{
MediaPlayer::NetworkState oldNetworkState = m_networkState;
@@ -1009,7 +1024,7 @@ void MediaPlayerPrivate::updateStates()
}
}
- if (!hasSetUpVideoRendering())
+ if (isReadyForVideoSetup() && !hasSetUpVideoRendering())
setUpVideoRendering();
if (seeking())
@@ -1443,8 +1458,9 @@ void MediaPlayerPrivate::sawUnsupportedTracks()
#if USE(ACCELERATED_COMPOSITING)
bool MediaPlayerPrivate::supportsAcceleratedRendering() const
{
- // When in the media document we render via QTMovieView, which is already accelerated.
- return isReadyForRendering() && getQTMovieLayerClass() != Nil && !m_player->inMediaDocument();
+ // Also don't claim to support accelerated rendering when in the media document, as we will then render
+ // via QTMovieView which is already accelerated.
+ return isReadyForVideoSetup() && getQTMovieLayerClass() != Nil && !m_player->inMediaDocument();
}
void MediaPlayerPrivate::acceleratedRenderingStateChanged()
diff --git a/WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp b/WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp
index fc67a19..4fb525f 100644
--- a/WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp
+++ b/WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp
@@ -41,15 +41,6 @@ using namespace std;
namespace WebCore {
-CTFontRef SimpleFontData::getCTFont() const
-{
- if (getNSFont())
- return toCTFontRef(getNSFont());
- if (!m_CTFont)
- m_CTFont.adoptCF(CTFontCreateWithGraphicsFont(m_platformData.cgFont(), m_platformData.size(), 0, 0));
- return m_CTFont.get();
-}
-
CFDictionaryRef SimpleFontData::getCFStringAttributes(TypesettingFeatures typesettingFeatures) const
{
unsigned key = typesettingFeatures + 1;
@@ -70,7 +61,7 @@ CFDictionaryRef SimpleFontData::getCFStringAttributes(TypesettingFeatures typese
static const float kerningAdjustmentValue = 0;
static CFNumberRef kerningAdjustment = CFNumberCreate(kCFAllocatorDefault, kCFNumberFloatType, &kerningAdjustmentValue);
static const void* keysWithKerningDisabled[] = { kCTFontAttributeName, kCTKernAttributeName, kCTLigatureAttributeName };
- const void* valuesWithKerningDisabled[] = { getCTFont(), kerningAdjustment, allowLigatures
+ const void* valuesWithKerningDisabled[] = { platformData().ctFont(), kerningAdjustment, allowLigatures
? ligaturesAllowed : ligaturesNotAllowed };
attributesDictionary.adoptCF(CFDictionaryCreate(0, keysWithKerningDisabled, valuesWithKerningDisabled,
sizeof(keysWithKerningDisabled) / sizeof(*keysWithKerningDisabled),
@@ -78,7 +69,7 @@ CFDictionaryRef SimpleFontData::getCFStringAttributes(TypesettingFeatures typese
} else {
// By omitting the kCTKernAttributeName attribute, we get Core Text's standard kerning.
static const void* keysWithKerningEnabled[] = { kCTFontAttributeName, kCTLigatureAttributeName };
- const void* valuesWithKerningEnabled[] = { getCTFont(), allowLigatures ? ligaturesAllowed : ligaturesNotAllowed };
+ const void* valuesWithKerningEnabled[] = { platformData().ctFont(), allowLigatures ? ligaturesAllowed : ligaturesNotAllowed };
attributesDictionary.adoptCF(CFDictionaryCreate(0, keysWithKerningEnabled, valuesWithKerningEnabled,
sizeof(keysWithKerningEnabled) / sizeof(*keysWithKerningEnabled),
&kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
diff --git a/WebCore/platform/graphics/qt/FontCustomPlatformData.h b/WebCore/platform/graphics/qt/FontCustomPlatformData.h
index 6837059..019a6bc 100644
--- a/WebCore/platform/graphics/qt/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/qt/FontCustomPlatformData.h
@@ -23,13 +23,13 @@
#define FontCustomPlatformData_h
#include "FontRenderingMode.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
namespace WebCore {
class FontPlatformData;
class SharedBuffer;
-class String;
struct FontCustomPlatformData : Noncopyable {
~FontCustomPlatformData();
diff --git a/WebCore/platform/graphics/qt/FontPlatformData.h b/WebCore/platform/graphics/qt/FontPlatformData.h
index 9355142..79daa6b 100644
--- a/WebCore/platform/graphics/qt/FontPlatformData.h
+++ b/WebCore/platform/graphics/qt/FontPlatformData.h
@@ -24,13 +24,13 @@
#ifndef FontPlatformData_h
#define FontPlatformData_h
+#include <wtf/Forward.h>
#include "FontDescription.h"
#include <QFont>
#include <QHash>
namespace WebCore {
-class String;
class FontPlatformDataPrivate : public Noncopyable {
public:
FontPlatformDataPrivate()
diff --git a/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp b/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
index 311d3a3..273e2dd 100644
--- a/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
+++ b/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp
@@ -20,24 +20,17 @@
#include "GraphicsContext3D.h"
-#include "CanvasObject.h"
+#include "ArrayBufferView.h"
+#include "WebGLObject.h"
+#include "CanvasRenderingContext.h"
+#include "Float32Array.h"
#include "GraphicsContext.h"
#include "HTMLCanvasElement.h"
#include "HostWindow.h"
#include "ImageBuffer.h"
+#include "Int32Array.h"
#include "NotImplemented.h"
#include "QWebPageClient.h"
-#include "WebGLActiveInfo.h"
-#include "ArrayBufferView.h"
-#include "WebGLBuffer.h"
-#include "Float32Array.h"
-#include "WebGLFramebuffer.h"
-#include "Int32Array.h"
-#include "WebGLProgram.h"
-#include "WebGLRenderbuffer.h"
-#include "WebGLRenderingContext.h"
-#include "WebGLShader.h"
-#include "WebGLTexture.h"
#include "Uint8Array.h"
#include <QAbstractScrollArea>
#include <QGLContext>
@@ -519,7 +512,7 @@ void GraphicsContext3D::makeContextCurrent()
m_internal->m_glWidget->makeCurrent();
}
-void GraphicsContext3D::beginPaint(WebGLRenderingContext* context)
+void GraphicsContext3D::beginPaint(CanvasRenderingContext* context)
{
paintRenderingResultsToCanvas();
}
@@ -528,7 +521,7 @@ void GraphicsContext3D::endPaint()
{
}
-void GraphicsContext3D::paintRenderingResultsToCanvas(WebGLRenderingContext* context)
+void GraphicsContext3D::paintRenderingResultsToCanvas(CanvasRenderingContext* context)
{
m_internal->m_glWidget->makeCurrent();
HTMLCanvasElement* canvas = context->canvas();
@@ -598,44 +591,44 @@ void GraphicsContext3D::activeTexture(unsigned long texture)
m_internal->activeTexture(texture);
}
-void GraphicsContext3D::attachShader(WebGLProgram* program, WebGLShader* shader)
+void GraphicsContext3D::attachShader(PlatformGLObject program, PlatformGLObject shader)
{
ASSERT(program);
ASSERT(shader);
m_internal->m_glWidget->makeCurrent();
- m_internal->attachShader((GLuint) program->object(), (GLuint) shader->object());
+ m_internal->attachShader((GLuint) program, (GLuint) shader);
}
-void GraphicsContext3D::bindAttribLocation(WebGLProgram* program, unsigned long index, const String& name)
+void GraphicsContext3D::bindAttribLocation(PlatformGLObject program, unsigned long index, const String& name)
{
ASSERT(program);
m_internal->m_glWidget->makeCurrent();
- m_internal->bindAttribLocation((GLuint) program->object(), index, name.utf8().data());
+ m_internal->bindAttribLocation((GLuint) program, index, name.utf8().data());
}
-void GraphicsContext3D::bindBuffer(unsigned long target, WebGLBuffer* buffer)
+void GraphicsContext3D::bindBuffer(unsigned long target, PlatformGLObject buffer)
{
m_internal->m_glWidget->makeCurrent();
- m_internal->bindBuffer(target, buffer ? (GLuint) buffer->object() : 0);
+ m_internal->bindBuffer(target, (GLuint) buffer->object());
}
-void GraphicsContext3D::bindFramebuffer(unsigned long target, WebGLFramebuffer* buffer)
+void GraphicsContext3D::bindFramebuffer(unsigned long target, PlatformGLObject buffer)
{
m_internal->m_glWidget->makeCurrent();
- m_internal->m_currentFbo = (buffer && buffer->object()) ? (GLuint) buffer->object() : m_internal->m_mainFbo;
+ m_internal->m_currentFbo = buffer ? (GLuint) buffer : m_internal->m_mainFbo;
m_internal->bindFramebuffer(target, m_internal->m_currentFbo);
}
-void GraphicsContext3D::bindRenderbuffer(unsigned long target, WebGLRenderbuffer* renderbuffer)
+void GraphicsContext3D::bindRenderbuffer(unsigned long target, PlatformGLObject renderbuffer)
{
m_internal->m_glWidget->makeCurrent();
- m_internal->bindRenderbuffer(target, renderbuffer ? (GLuint) renderbuffer->object() : 0);
+ m_internal->bindRenderbuffer(target, (GLuint) renderbuffer);
}
-void GraphicsContext3D::bindTexture(unsigned long target, WebGLTexture* texture)
+void GraphicsContext3D::bindTexture(unsigned long target, PlatformGLObject texture)
{
m_internal->m_glWidget->makeCurrent();
- glBindTexture(target, texture ? (GLuint) texture->object() : 0);
+ glBindTexture(target, (GLuint) texture);
}
void GraphicsContext3D::blendColor(double red, double green, double blue, double alpha)
@@ -732,11 +725,11 @@ void GraphicsContext3D::colorMask(bool red, bool green, bool blue, bool alpha)
glColorMask(red, green, blue, alpha);
}
-void GraphicsContext3D::compileShader(WebGLShader* shader)
+void GraphicsContext3D::compileShader(PlatformGLObject shader)
{
ASSERT(shader);
m_internal->m_glWidget->makeCurrent();
- m_internal->compileShader((GLuint) shader->object());
+ m_internal->compileShader((GLuint) shader);
}
void GraphicsContext3D::copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, unsigned long width, unsigned long height, long border)
@@ -779,12 +772,12 @@ void GraphicsContext3D::depthRange(double zNear, double zFar)
#endif
}
-void GraphicsContext3D::detachShader(WebGLProgram* program, WebGLShader* shader)
+void GraphicsContext3D::detachShader(PlatformGLObject program, PlatformGLObject shader)
{
ASSERT(program);
ASSERT(shader);
m_internal->m_glWidget->makeCurrent();
- m_internal->detachShader((GLuint) program->object(), (GLuint) shader->object());
+ m_internal->detachShader((GLuint) program, (GLuint) shader);
}
void GraphicsContext3D::disable(unsigned long cap)
@@ -835,16 +828,16 @@ void GraphicsContext3D::flush()
glFlush();
}
-void GraphicsContext3D::framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, WebGLRenderbuffer* buffer)
+void GraphicsContext3D::framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, PlatformGLObject buffer)
{
m_internal->m_glWidget->makeCurrent();
- m_internal->framebufferRenderbuffer(target, attachment, renderbuffertarget, buffer ? (GLuint) buffer->object() : 0);
+ m_internal->framebufferRenderbuffer(target, attachment, renderbuffertarget, (GLuint) buffer);
}
-void GraphicsContext3D::framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, WebGLTexture* texture, long level)
+void GraphicsContext3D::framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, PlatformGLObject texture, long level)
{
m_internal->m_glWidget->makeCurrent();
- m_internal->framebufferTexture2D(target, attachment, textarget, texture ? (GLuint) texture->object() : 0, level);
+ m_internal->framebufferTexture2D(target, attachment, textarget, (GLuint) texture, level);
}
void GraphicsContext3D::frontFace(unsigned long mode)
@@ -859,9 +852,9 @@ void GraphicsContext3D::generateMipmap(unsigned long target)
m_internal->generateMipmap(target);
}
-bool GraphicsContext3D::getActiveAttrib(WebGLProgram* program, unsigned long index, ActiveInfo& info)
+bool GraphicsContext3D::getActiveAttrib(PlatformGLObject program, unsigned long index, ActiveInfo& info)
{
- if (!program->object()) {
+ if (!program) {
synthesizeGLError(INVALID_VALUE);
return false;
}
@@ -869,14 +862,14 @@ bool GraphicsContext3D::getActiveAttrib(WebGLProgram* program, unsigned long ind
m_internal->m_glWidget->makeCurrent();
GLint maxLength;
- m_internal->getProgramiv(static_cast<GLuint>(program->object()), GraphicsContext3D::ACTIVE_ATTRIBUTE_MAX_LENGTH, &maxLength);
+ m_internal->getProgramiv(static_cast<GLuint>(program), GraphicsContext3D::ACTIVE_ATTRIBUTE_MAX_LENGTH, &maxLength);
GLchar* name = (GLchar*) fastMalloc(maxLength);
GLsizei nameLength;
GLint size;
GLenum type;
- m_internal->getActiveAttrib(static_cast<GLuint>(program->object()), index, maxLength, &nameLength, &size, &type, name);
+ m_internal->getActiveAttrib(static_cast<GLuint>(program), index, maxLength, &nameLength, &size, &type, name);
if (!nameLength) {
fastFree(name);
@@ -891,9 +884,9 @@ bool GraphicsContext3D::getActiveAttrib(WebGLProgram* program, unsigned long ind
return true;
}
-bool GraphicsContext3D::getActiveUniform(WebGLProgram* program, unsigned long index, ActiveInfo& info)
+bool GraphicsContext3D::getActiveUniform(PlatformGLObject program, unsigned long index, ActiveInfo& info)
{
- if (!program->object()) {
+ if (!program) {
synthesizeGLError(INVALID_VALUE);
return false;
}
@@ -901,14 +894,14 @@ bool GraphicsContext3D::getActiveUniform(WebGLProgram* program, unsigned long in
m_internal->m_glWidget->makeCurrent();
GLint maxLength;
- m_internal->getProgramiv(static_cast<GLuint>(program->object()), GraphicsContext3D::ACTIVE_UNIFORM_MAX_LENGTH, &maxLength);
+ m_internal->getProgramiv(static_cast<GLuint>(program), GraphicsContext3D::ACTIVE_UNIFORM_MAX_LENGTH, &maxLength);
GLchar* name = (GLchar*) fastMalloc(maxLength);
GLsizei nameLength;
GLint size;
GLenum type;
- m_internal->getActiveUniform(static_cast<GLuint>(program->object()), index, maxLength, &nameLength, &size, &type, name);
+ m_internal->getActiveUniform(static_cast<GLuint>(program), index, maxLength, &nameLength, &size, &type, name);
if (!nameLength) {
fastFree(name);
@@ -923,13 +916,13 @@ bool GraphicsContext3D::getActiveUniform(WebGLProgram* program, unsigned long in
return true;
}
-int GraphicsContext3D::getAttribLocation(WebGLProgram* program, const String& name)
+int GraphicsContext3D::getAttribLocation(PlatformGLObject program, const String& name)
{
if (!program)
return -1;
m_internal->m_glWidget->makeCurrent();
- return m_internal->getAttribLocation((GLuint) program->object(), name.utf8().data());
+ return m_internal->getAttribLocation((GLuint) program, name.utf8().data());
}
GraphicsContext3D::Attributes GraphicsContext3D::getContextAttributes()
@@ -962,13 +955,13 @@ void GraphicsContext3D::hint(unsigned long target, unsigned long mode)
glHint(target, mode);
}
-bool GraphicsContext3D::isBuffer(WebGLBuffer* buffer)
+bool GraphicsContext3D::isBuffer(PlatformGLObject buffer)
{
if (!buffer)
return false;
m_internal->m_glWidget->makeCurrent();
- return m_internal->isBuffer((GLuint) buffer->object());
+ return m_internal->isBuffer((GLuint) buffer);
}
bool GraphicsContext3D::isEnabled(unsigned long cap)
@@ -977,49 +970,49 @@ bool GraphicsContext3D::isEnabled(unsigned long cap)
return glIsEnabled(cap);
}
-bool GraphicsContext3D::isFramebuffer(WebGLFramebuffer* framebuffer)
+bool GraphicsContext3D::isFramebuffer(PlatformGLObject framebuffer)
{
if (!framebuffer)
return false;
m_internal->m_glWidget->makeCurrent();
- return m_internal->isFramebuffer((GLuint) framebuffer->object());
+ return m_internal->isFramebuffer((GLuint) framebuffer);
}
-bool GraphicsContext3D::isProgram(WebGLProgram* program)
+bool GraphicsContext3D::isProgram(PlatformGLObject program)
{
if (!program)
return false;
m_internal->m_glWidget->makeCurrent();
- return m_internal->isProgram((GLuint) program->object());
+ return m_internal->isProgram((GLuint) program);
}
-bool GraphicsContext3D::isRenderbuffer(WebGLRenderbuffer* renderbuffer)
+bool GraphicsContext3D::isRenderbuffer(PlatformGLObject renderbuffer)
{
if (!renderbuffer)
return false;
m_internal->m_glWidget->makeCurrent();
- return m_internal->isRenderbuffer((GLuint) renderbuffer->object());
+ return m_internal->isRenderbuffer((GLuint) renderbuffer);
}
-bool GraphicsContext3D::isShader(WebGLShader* shader)
+bool GraphicsContext3D::isShader(PlatformGLObject shader)
{
if (!shader)
return false;
m_internal->m_glWidget->makeCurrent();
- return m_internal->isShader((GLuint) shader->object());
+ return m_internal->isShader((GLuint) shader);
}
-bool GraphicsContext3D::isTexture(WebGLTexture* texture)
+bool GraphicsContext3D::isTexture(PlatformGLObject texture)
{
if (!texture)
return false;
m_internal->m_glWidget->makeCurrent();
- return glIsTexture((GLuint) texture->object());
+ return glIsTexture((GLuint) texture);
}
void GraphicsContext3D::lineWidth(double width)
@@ -1028,11 +1021,11 @@ void GraphicsContext3D::lineWidth(double width)
glLineWidth(static_cast<float>(width));
}
-void GraphicsContext3D::linkProgram(WebGLProgram* program)
+void GraphicsContext3D::linkProgram(PlatformGLObject program)
{
ASSERT(program);
m_internal->m_glWidget->makeCurrent();
- m_internal->linkProgram((GLuint) program->object());
+ m_internal->linkProgram((GLuint) program);
}
void GraphicsContext3D::pixelStorei(unsigned long paramName, long param)
@@ -1081,7 +1074,7 @@ void GraphicsContext3D::scissor(long x, long y, unsigned long width, unsigned lo
glScissor(x, y, width, height);
}
-void GraphicsContext3D::shaderSource(WebGLShader* shader, const String& source)
+void GraphicsContext3D::shaderSource(PlatformGLObject shader, const String& source)
{
ASSERT(shader);
@@ -1098,7 +1091,7 @@ void GraphicsContext3D::shaderSource(WebGLShader* shader, const String& source)
CString sourceCS = prefixedSource.utf8();
const char* data = sourceCS.data();
int length = prefixedSource.length();
- m_internal->shaderSource((GLuint) shader->object(), /* count */ 1, &data, &length);
+ m_internal->shaderSource((GLuint) shader, /* count */ 1, &data, &length);
}
void GraphicsContext3D::stencilFunc(unsigned long func, long ref, unsigned long mask)
@@ -1263,20 +1256,20 @@ void GraphicsContext3D::uniformMatrix4fv(long location, bool transpose, float* a
m_internal->uniformMatrix4fv(location, size, transpose, array);
}
-void GraphicsContext3D::useProgram(WebGLProgram* program)
+void GraphicsContext3D::useProgram(PlatformGLObject program)
{
ASSERT(program);
m_internal->m_glWidget->makeCurrent();
- m_internal->useProgram((GLuint) program->object());
+ m_internal->useProgram((GLuint) program);
}
-void GraphicsContext3D::validateProgram(WebGLProgram* program)
+void GraphicsContext3D::validateProgram(PlatformGLObject program)
{
ASSERT(program);
m_internal->m_glWidget->makeCurrent();
- m_internal->validateProgram((GLuint) program->object());
+ m_internal->validateProgram((GLuint) program);
}
void GraphicsContext3D::vertexAttrib1f(unsigned long indx, float v0)
@@ -1369,18 +1362,18 @@ void GraphicsContext3D::getIntegerv(unsigned long paramName, int* value)
glGetIntegerv(paramName, value);
}
-void GraphicsContext3D::getProgramiv(WebGLProgram* program, unsigned long paramName, int* value)
+void GraphicsContext3D::getProgramiv(PlatformGLObject program, unsigned long paramName, int* value)
{
m_internal->m_glWidget->makeCurrent();
- m_internal->getProgramiv((GLuint) program->object(), paramName, value);
+ m_internal->getProgramiv((GLuint) program, paramName, value);
}
-String GraphicsContext3D::getProgramInfoLog(WebGLProgram* program)
+String GraphicsContext3D::getProgramInfoLog(PlatformGLObject program)
{
m_internal->m_glWidget->makeCurrent();
GLint length;
- m_internal->getProgramiv((GLuint) program->object(), GraphicsContext3D::INFO_LOG_LENGTH, &length);
+ m_internal->getProgramiv((GLuint) program, GraphicsContext3D::INFO_LOG_LENGTH, &length);
GLsizei size;
@@ -1388,7 +1381,7 @@ String GraphicsContext3D::getProgramInfoLog(WebGLProgram* program)
if (!info)
return "";
- m_internal->getProgramInfoLog((GLuint) program->object(), length, &size, info);
+ m_internal->getProgramInfoLog((GLuint) program, length, &size, info);
String result(info);
fastFree(info);
@@ -1402,26 +1395,26 @@ void GraphicsContext3D::getRenderbufferParameteriv(unsigned long target, unsigne
m_internal->getRenderbufferParameteriv(target, paramName, value);
}
-void GraphicsContext3D::getShaderiv(WebGLShader* shader, unsigned long paramName, int* value)
+void GraphicsContext3D::getShaderiv(PlatformGLObject shader, unsigned long paramName, int* value)
{
ASSERT(shader);
m_internal->m_glWidget->makeCurrent();
- m_internal->getShaderiv((GLuint) shader->object(), paramName, value);
+ m_internal->getShaderiv((GLuint) shader, paramName, value);
}
-String GraphicsContext3D::getShaderInfoLog(WebGLShader* shader)
+String GraphicsContext3D::getShaderInfoLog(PlatformGLObject shader)
{
m_internal->m_glWidget->makeCurrent();
GLint length;
- m_internal->getShaderiv((GLuint) shader->object(), GraphicsContext3D::INFO_LOG_LENGTH, &length);
+ m_internal->getShaderiv((GLuint) shader, GraphicsContext3D::INFO_LOG_LENGTH, &length);
GLsizei size;
GLchar* info = (GLchar*) fastMalloc(length);
if (!info)
return "";
- m_internal->getShaderInfoLog((GLuint) shader->object(), length, &size, info);
+ m_internal->getShaderInfoLog((GLuint) shader, length, &size, info);
String result(info);
fastFree(info);
@@ -1429,19 +1422,19 @@ String GraphicsContext3D::getShaderInfoLog(WebGLShader* shader)
return result;
}
-String GraphicsContext3D::getShaderSource(WebGLShader* shader)
+String GraphicsContext3D::getShaderSource(PlatformGLObject shader)
{
m_internal->m_glWidget->makeCurrent();
GLint length;
- m_internal->getShaderiv((GLuint) shader->object(), GraphicsContext3D::SHADER_SOURCE_LENGTH, &length);
+ m_internal->getShaderiv((GLuint) shader, GraphicsContext3D::SHADER_SOURCE_LENGTH, &length);
GLsizei size;
GLchar* info = (GLchar*) fastMalloc(length);
if (!info)
return "";
- m_internal->getShaderSource((GLuint) shader->object(), length, &size, info);
+ m_internal->getShaderSource((GLuint) shader, length, &size, info);
String result(info);
fastFree(info);
@@ -1461,24 +1454,24 @@ void GraphicsContext3D::getTexParameteriv(unsigned long target, unsigned long pa
glGetTexParameteriv(target, paramName, value);
}
-void GraphicsContext3D::getUniformfv(WebGLProgram* program, long location, float* value)
+void GraphicsContext3D::getUniformfv(PlatformGLObject program, long location, float* value)
{
m_internal->m_glWidget->makeCurrent();
- m_internal->getUniformfv((GLuint) program->object(), location, value);
+ m_internal->getUniformfv((GLuint) program, location, value);
}
-void GraphicsContext3D::getUniformiv(WebGLProgram* program, long location, int* value)
+void GraphicsContext3D::getUniformiv(PlatformGLObject program, long location, int* value)
{
m_internal->m_glWidget->makeCurrent();
- m_internal->getUniformiv((GLuint) program->object(), location, value);
+ m_internal->getUniformiv((GLuint) program, location, value);
}
-long GraphicsContext3D::getUniformLocation(WebGLProgram* program, const String& name)
+long GraphicsContext3D::getUniformLocation(PlatformGLObject program, const String& name)
{
ASSERT(program);
m_internal->m_glWidget->makeCurrent();
- return m_internal->getUniformLocation((GLuint) program->object(), name.utf8().data());
+ return m_internal->getUniformLocation((GLuint) program, name.utf8().data());
}
void GraphicsContext3D::getVertexAttribfv(unsigned long index, unsigned long paramName, float* value)
diff --git a/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
index e560e15..d4a145f 100644
--- a/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
+++ b/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
@@ -536,8 +536,12 @@ void GraphicsContext::clipConvexPolygon(size_t numPoints, const FloatPoint* poin
if (numPoints <= 1)
return;
-
- // FIXME: IMPLEMENT!!
+
+ QPainterPath path(points[0]);
+ for (size_t i = 1; i < numPoints; ++i)
+ path.lineTo(points[i]);
+ path.setFillRule(Qt::WindingFill);
+ m_data->p()->setClipPath(path, Qt::IntersectClip);
}
QPen GraphicsContext::pen()
@@ -1192,7 +1196,7 @@ void GraphicsContext::clipOut(const IntRect& rect)
p->setClipPath(newClip, Qt::IntersectClip);
} else {
QRect clipOutRect(rect);
- QRect window(p->window());
+ QRect window = p->transform().inverted().mapRect(p->window());
clipOutRect &= window;
newClip.addRect(window);
newClip.addRect(clipOutRect);
diff --git a/WebCore/platform/graphics/qt/ImageBufferQt.cpp b/WebCore/platform/graphics/qt/ImageBufferQt.cpp
index bc25003..761a4fe 100644
--- a/WebCore/platform/graphics/qt/ImageBufferQt.cpp
+++ b/WebCore/platform/graphics/qt/ImageBufferQt.cpp
@@ -181,7 +181,7 @@ PassRefPtr<ImageData> getImageData(const IntRect& rect, const ImageBufferData& i
ASSERT(!image.isNull());
const int bytesPerLine = image.bytesPerLine();
-#if QT_VERSION >= 0x040700
+#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
const uchar* bits = image.constBits();
#else
const uchar* bits = image.bits();
diff --git a/WebCore/platform/graphics/qt/PathQt.cpp b/WebCore/platform/graphics/qt/PathQt.cpp
index a8adb31..de9de07 100644
--- a/WebCore/platform/graphics/qt/PathQt.cpp
+++ b/WebCore/platform/graphics/qt/PathQt.cpp
@@ -123,8 +123,10 @@ bool Path::contains(const FloatPoint& point, WindRule rule) const
static GraphicsContext* scratchContext()
{
- static ImageBuffer* scratch = ImageBuffer::create(IntSize(1, 1)).leakPtr();
- return scratch->context();
+ static QImage image(1, 1, QImage::Format_ARGB32_Premultiplied);
+ static QPainter painter(&image);
+ static GraphicsContext* context = new GraphicsContext(&painter);
+ return context;
}
bool Path::strokeContains(StrokeStyleApplier* applier, const FloatPoint& point) const
diff --git a/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp b/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
index 7994244..7bcd84b 100644
--- a/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
+++ b/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
@@ -786,8 +786,6 @@ void GraphicsContext::fillRect(const FloatRect& rect)
if (paintingDisabled())
return;
- platformContext()->save();
-
SkRect r = rect;
if (!isRectSkiaSafe(getCTM(), r)) {
// See the other version of fillRect below.
@@ -802,6 +800,8 @@ void GraphicsContext::fillRect(const FloatRect& rect)
}
#endif
+ platformContext()->save();
+
platformContext()->prepareForSoftwareDraw();
SkPaint paint;
@@ -1276,4 +1276,21 @@ void GraphicsContext::translate(float w, float h)
WebCoreFloatToSkScalar(h));
}
+void GraphicsContext::setGraphicsContext3D(GraphicsContext3D* context3D, const IntSize& size)
+{
+#if USE(GLES2_RENDERING)
+ platformContext()->setGraphicsContext3D(context3D, size);
+#else
+ UNUSED_PARAM(context3D);
+ UNUSED_PARAM(size);
+#endif
+}
+
+void GraphicsContext::syncSoftwareCanvas()
+{
+#if USE(GLES2_RENDERING)
+ platformContext()->syncSoftwareCanvas();
+#endif
+}
+
} // namespace WebCore
diff --git a/WebCore/platform/graphics/skia/ImageBufferSkia.cpp b/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
index 3eb033d..eaa91ec 100644
--- a/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
+++ b/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
@@ -131,7 +131,7 @@ PassRefPtr<ImageData> getImageData(const IntRect& rect, const SkBitmap& bitmap,
if (bitmap.config() == SkBitmap::kNo_Config) {
// This is an empty SkBitmap that could not be configured.
- ASSERT(size.width() == 0 || size.height() == 0);
+ ASSERT(!size.width() || !size.height());
return result;
}
diff --git a/WebCore/platform/graphics/skia/ImageSkia.cpp b/WebCore/platform/graphics/skia/ImageSkia.cpp
index a2485e6..024bf50 100644
--- a/WebCore/platform/graphics/skia/ImageSkia.cpp
+++ b/WebCore/platform/graphics/skia/ImageSkia.cpp
@@ -414,7 +414,6 @@ static void drawBitmapGLES2(GraphicsContext* ctxt, NativeImageSkia* bitmap, cons
{
ctxt->platformContext()->prepareForHardwareDraw();
GLES2Canvas* gpuCanvas = ctxt->platformContext()->gpuCanvas();
- gpuCanvas->gles2Context()->makeCurrent();
GLES2Texture* texture = gpuCanvas->getTexture(bitmap);
if (!texture) {
ASSERT(bitmap->config() == SkBitmap::kARGB_8888_Config);
diff --git a/WebCore/platform/graphics/skia/NativeImageSkia.cpp b/WebCore/platform/graphics/skia/NativeImageSkia.cpp
index 2411897..007a32c 100644
--- a/WebCore/platform/graphics/skia/NativeImageSkia.cpp
+++ b/WebCore/platform/graphics/skia/NativeImageSkia.cpp
@@ -37,6 +37,8 @@
#include "NativeImageSkia.h"
#include "SkiaUtils.h"
+namespace WebCore {
+
NativeImageSkia::NativeImageSkia()
: m_isDataComplete(false),
m_lastRequestSize(0, 0),
@@ -54,7 +56,7 @@ bool NativeImageSkia::hasResizedBitmap(int w, int h) const
if (m_lastRequestSize.width() == w && m_lastRequestSize.height() == h)
m_resizeRequests++;
else {
- m_lastRequestSize = WebCore::IntSize(w, h);
+ m_lastRequestSize = IntSize(w, h);
m_resizeRequests = 0;
}
@@ -101,7 +103,7 @@ bool NativeImageSkia::shouldCacheResampling(int destWidth,
} else {
// When a different size is being requested, count this as a query
// (hasResizedBitmap) and reset the counter.
- m_lastRequestSize = WebCore::IntSize(destWidth, destHeight);
+ m_lastRequestSize = IntSize(destWidth, destHeight);
m_resizeRequests = 0;
}
@@ -111,3 +113,5 @@ bool NativeImageSkia::shouldCacheResampling(int destWidth,
int destSubsetSize = destSubsetWidth * destSubsetHeight;
return destSize / 4 < destSubsetSize;
}
+
+} // namespace WebCore
diff --git a/WebCore/platform/graphics/skia/NativeImageSkia.h b/WebCore/platform/graphics/skia/NativeImageSkia.h
index 5947238..0718836 100644
--- a/WebCore/platform/graphics/skia/NativeImageSkia.h
+++ b/WebCore/platform/graphics/skia/NativeImageSkia.h
@@ -34,6 +34,8 @@
#include "SkBitmap.h"
#include "IntSize.h"
+namespace WebCore {
+
// This object is used as the "native image" in our port. When WebKit uses
// "NativeImagePtr", it is a pointer to this type. It is an SkBitmap, but also
// stores a cached resized image.
@@ -96,9 +98,10 @@ private:
// This allows us to see if many requests have been made for the same
// resized image, we know that we should probably cache it, even if all of
// those requests individually are small and would not otherwise be cached.
- mutable WebCore::IntSize m_lastRequestSize;
+ mutable IntSize m_lastRequestSize;
mutable int m_resizeRequests;
};
+}
#endif // NativeImageSkia_h
diff --git a/WebCore/platform/graphics/skia/PlatformContextSkia.cpp b/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
index 65c6e95..abf04f9 100644
--- a/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
+++ b/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
@@ -30,6 +30,10 @@
#include "config.h"
+#include "PlatformContextSkia.h"
+
+#include "AffineTransform.h"
+#include "CanvasLayerChromium.h"
#include "GraphicsContext.h"
#include "ImageBuffer.h"
#include "NativeImageSkia.h"
@@ -45,20 +49,18 @@
#include "SkDashPathEffect.h"
#if USE(GLES2_RENDERING)
+#include "GraphicsContext3D.h"
#include "GLES2Canvas.h"
-#include "GLES2Context.h"
#include "GLES2Texture.h"
-#include <GLES2/gl2.h>
#endif
#include <wtf/MathExtras.h>
#include <wtf/OwnArrayPtr.h>
#include <wtf/Vector.h>
-namespace WebCore
-{
+namespace WebCore {
+
extern bool isPathSkiaSafe(const SkMatrix& transform, const SkPath& path);
-}
// State -----------------------------------------------------------------------
@@ -80,7 +82,7 @@ struct PlatformContextSkia::State {
SkShader* m_fillShader;
// Stroke.
- WebCore::StrokeStyle m_strokeStyle;
+ StrokeStyle m_strokeStyle;
SkColor m_strokeColor;
SkShader* m_strokeShader;
float m_strokeThickness;
@@ -101,13 +103,13 @@ struct PlatformContextSkia::State {
// If non-empty, the current State is clipped to this image.
SkBitmap m_imageBufferClip;
// If m_imageBufferClip is non-empty, this is the region the image is clipped to.
- WebCore::FloatRect m_clip;
+ FloatRect m_clip;
#endif
// This is a list of clipping paths which are currently active, in the
// order in which they were pushed.
WTF::Vector<SkPath> m_antiAliasClipPaths;
- WebCore::InterpolationQuality m_interpolationQuality;
+ InterpolationQuality m_interpolationQuality;
PlatformContextSkia::State cloneInheritedProperties();
private:
@@ -123,8 +125,8 @@ PlatformContextSkia::State::State()
, m_looper(0)
, m_fillColor(0xFF000000)
, m_fillShader(0)
- , m_strokeStyle(WebCore::SolidStroke)
- , m_strokeColor(WebCore::Color::black)
+ , m_strokeStyle(SolidStroke)
+ , m_strokeColor(Color::black)
, m_strokeShader(0)
, m_strokeThickness(0)
, m_dashRatio(3)
@@ -132,8 +134,8 @@ PlatformContextSkia::State::State()
, m_lineCap(SkPaint::kDefault_Cap)
, m_lineJoin(SkPaint::kDefault_Join)
, m_dash(0)
- , m_textDrawingMode(WebCore::cTextFill)
- , m_interpolationQuality(WebCore::InterpolationHigh)
+ , m_textDrawingMode(cTextFill)
+ , m_interpolationQuality(InterpolationHigh)
{
}
@@ -219,6 +221,12 @@ PlatformContextSkia::PlatformContextSkia(skia::PlatformCanvas* canvas)
PlatformContextSkia::~PlatformContextSkia()
{
+#if USE(GLES2_RENDERING) && USE(ACCELERATED_COMPOSITING)
+ if (m_gpuCanvas) {
+ CanvasLayerChromium* layer = static_cast<CanvasLayerChromium*>(m_gpuCanvas->context()->platformLayer());
+ layer->setPrepareTextureCallback(0);
+ }
+#endif
}
void PlatformContextSkia::setCanvas(skia::PlatformCanvas* canvas)
@@ -256,8 +264,8 @@ void PlatformContextSkia::save()
}
#if OS(LINUX) || OS(WINDOWS)
-void PlatformContextSkia::beginLayerClippedToImage(const WebCore::FloatRect& rect,
- const WebCore::ImageBuffer* imageBuffer)
+void PlatformContextSkia::beginLayerClippedToImage(const FloatRect& rect,
+ const ImageBuffer* imageBuffer)
{
// Skia doesn't support clipping to an image, so we create a layer. The next
// time restore is invoked the layer and |imageBuffer| are combined to
@@ -329,8 +337,8 @@ void PlatformContextSkia::drawRect(SkRect rect)
canvas()->drawRect(rect, paint);
}
- if (m_state->m_strokeStyle != WebCore::NoStroke &&
- (m_state->m_strokeColor & 0xFF000000)) {
+ if (m_state->m_strokeStyle != NoStroke
+ && (m_state->m_strokeColor & 0xFF000000)) {
// We do a fill of four rects to simulate the stroke of a border.
SkColor oldFillColor = m_state->m_fillColor;
@@ -392,13 +400,13 @@ float PlatformContextSkia::setupPaintForStroking(SkPaint* paint, SkRect* rect, i
paint->setPathEffect(m_state->m_dash);
else {
switch (m_state->m_strokeStyle) {
- case WebCore::NoStroke:
- case WebCore::SolidStroke:
+ case NoStroke:
+ case SolidStroke:
break;
- case WebCore::DashedStroke:
+ case DashedStroke:
width = m_state->m_dashRatio * width;
// Fall through.
- case WebCore::DottedStroke:
+ case DottedStroke:
// Truncate the width, since we don't want fuzzy dots or dashes.
int dashLength = static_cast<int>(width);
// Subtract off the endcaps, since they're rendered separately.
@@ -467,12 +475,12 @@ SkDrawLooper* PlatformContextSkia::getDrawLooper() const
return m_state->m_looper;
}
-WebCore::StrokeStyle PlatformContextSkia::getStrokeStyle() const
+StrokeStyle PlatformContextSkia::getStrokeStyle() const
{
return m_state->m_strokeStyle;
}
-void PlatformContextSkia::setStrokeStyle(WebCore::StrokeStyle strokeStyle)
+void PlatformContextSkia::setStrokeStyle(StrokeStyle strokeStyle)
{
m_state->m_strokeStyle = strokeStyle;
}
@@ -514,10 +522,10 @@ float PlatformContextSkia::getAlpha() const
void PlatformContextSkia::setTextDrawingMode(int mode)
{
- // cTextClip is never used, so we assert that it isn't set:
- // https://bugs.webkit.org/show_bug.cgi?id=21898
- ASSERT((mode & WebCore::cTextClip) == 0);
- m_state->m_textDrawingMode = mode;
+ // cTextClip is never used, so we assert that it isn't set:
+ // https://bugs.webkit.org/show_bug.cgi?id=21898
+ ASSERT(!(mode & cTextClip));
+ m_state->m_textDrawingMode = mode;
}
void PlatformContextSkia::setUseAntialiasing(bool enable)
@@ -570,12 +578,12 @@ void PlatformContextSkia::setFillShader(SkShader* fillShader)
}
}
-WebCore::InterpolationQuality PlatformContextSkia::interpolationQuality() const
+InterpolationQuality PlatformContextSkia::interpolationQuality() const
{
return m_state->m_interpolationQuality;
}
-void PlatformContextSkia::setInterpolationQuality(WebCore::InterpolationQuality interpolationQuality)
+void PlatformContextSkia::setInterpolationQuality(InterpolationQuality interpolationQuality)
{
m_state->m_interpolationQuality = interpolationQuality;
}
@@ -604,13 +612,13 @@ bool PlatformContextSkia::isPrinting()
return m_canvas->getTopPlatformDevice().IsVectorial();
}
-void PlatformContextSkia::getImageResamplingHint(WebCore::IntSize* srcSize, WebCore::FloatSize* dstSize) const
+void PlatformContextSkia::getImageResamplingHint(IntSize* srcSize, FloatSize* dstSize) const
{
*srcSize = m_imageResamplingHintSrcSize;
*dstSize = m_imageResamplingHintDstSize;
}
-void PlatformContextSkia::setImageResamplingHint(const WebCore::IntSize& srcSize, const WebCore::FloatSize& dstSize)
+void PlatformContextSkia::setImageResamplingHint(const IntSize& srcSize, const FloatSize& dstSize)
{
m_imageResamplingHintSrcSize = srcSize;
m_imageResamplingHintDstSize = dstSize;
@@ -618,8 +626,8 @@ void PlatformContextSkia::setImageResamplingHint(const WebCore::IntSize& srcSize
void PlatformContextSkia::clearImageResamplingHint()
{
- m_imageResamplingHintSrcSize = WebCore::IntSize();
- m_imageResamplingHintDstSize = WebCore::FloatSize();
+ m_imageResamplingHintSrcSize = IntSize();
+ m_imageResamplingHintDstSize = FloatSize();
}
bool PlatformContextSkia::hasImageResamplingHint() const
@@ -628,7 +636,7 @@ bool PlatformContextSkia::hasImageResamplingHint() const
}
#if OS(LINUX) || OS(WINDOWS)
-void PlatformContextSkia::applyClipFromImage(const WebCore::FloatRect& rect, const SkBitmap& imageBuffer)
+void PlatformContextSkia::applyClipFromImage(const FloatRect& rect, const SkBitmap& imageBuffer)
{
// NOTE: this assumes the image mask contains opaque black for the portions that are to be shown, as such we
// only look at the alpha when compositing. I'm not 100% sure this is what WebKit expects for image clipping.
@@ -676,10 +684,32 @@ void PlatformContextSkia::applyAntiAliasedClipPaths(WTF::Vector<SkPath>& paths)
}
#if USE(GLES2_RENDERING)
-void PlatformContextSkia::setGLES2Context(WebCore::GLES2Context* context, const WebCore::IntSize& size)
+#if USE(ACCELERATED_COMPOSITING)
+class PrepareTextureCallbackImpl : public CanvasLayerChromium::PrepareTextureCallback {
+public:
+ static PassOwnPtr<PrepareTextureCallbackImpl> create(PlatformContextSkia* pcs)
+ {
+ return new PrepareTextureCallbackImpl(pcs);
+ }
+
+ virtual void willPrepareTexture()
+ {
+ m_pcs->prepareForHardwareDraw();
+ }
+private:
+ explicit PrepareTextureCallbackImpl(PlatformContextSkia* pcs) : m_pcs(pcs) {}
+ PlatformContextSkia* m_pcs;
+};
+#endif
+
+void PlatformContextSkia::setGraphicsContext3D(GraphicsContext3D* context, const WebCore::IntSize& size)
{
m_useGPU = true;
- m_gpuCanvas = new WebCore::GLES2Canvas(context, size);
+ m_gpuCanvas = new GLES2Canvas(context, size);
+#if USE(ACCELERATED_COMPOSITING)
+ CanvasLayerChromium* layer = static_cast<CanvasLayerChromium*>(context->platformLayer());
+ layer->setPrepareTextureCallback(PrepareTextureCallbackImpl::create(this));
+#endif
}
void PlatformContextSkia::prepareForSoftwareDraw() const
@@ -716,7 +746,7 @@ void PlatformContextSkia::prepareForSoftwareDraw() const
} else if (m_backingStoreState == Mixed) {
if (m_state->m_xferMode != SkXfermode::kSrcOver_Mode) {
// Have to composite our currently software drawn data...
- uploadSoftwareToHardware(WebCore::CompositeSourceOver);
+ uploadSoftwareToHardware(CompositeSourceOver);
// then do a readback so we can hardware draw stuff.
readbackHardwareToSoftware();
m_backingStoreState = Software;
@@ -731,11 +761,11 @@ void PlatformContextSkia::prepareForHardwareDraw() const
if (m_backingStoreState == Software) {
// Last drawn in software; upload everything we've drawn.
- uploadSoftwareToHardware(WebCore::CompositeCopy);
+ uploadSoftwareToHardware(CompositeCopy);
} else if (m_backingStoreState == Mixed) {
// Stuff in software/hardware, composite the software stuff on top of
// the hardware stuff.
- uploadSoftwareToHardware(WebCore::CompositeSourceOver);
+ uploadSoftwareToHardware(CompositeSourceOver);
}
m_backingStoreState = Hardware;
}
@@ -749,7 +779,7 @@ void PlatformContextSkia::syncSoftwareCanvas() const
readbackHardwareToSoftware();
else if (m_backingStoreState == Mixed) {
// Have to composite our currently software drawn data..
- uploadSoftwareToHardware(WebCore::CompositeSourceOver);
+ uploadSoftwareToHardware(CompositeSourceOver);
// then do a readback.
readbackHardwareToSoftware();
m_backingStoreState = Software;
@@ -757,29 +787,30 @@ void PlatformContextSkia::syncSoftwareCanvas() const
m_backingStoreState = Software;
}
-void PlatformContextSkia::uploadSoftwareToHardware(WebCore::CompositeOperator op) const
+void PlatformContextSkia::uploadSoftwareToHardware(CompositeOperator op) const
{
const SkBitmap& bitmap = m_canvas->getDevice()->accessBitmap(false);
SkAutoLockPixels lock(bitmap);
- m_gpuCanvas->gles2Context()->makeCurrent();
// FIXME: Keep a texture around for this rather than constantly creating/destroying one.
- RefPtr<WebCore::GLES2Texture> texture = WebCore::GLES2Texture::create(WebCore::GLES2Texture::BGRA8, bitmap.width(), bitmap.height());
+ GraphicsContext3D* context = m_gpuCanvas->context();
+ RefPtr<GLES2Texture> texture = GLES2Texture::create(context, GLES2Texture::BGRA8, bitmap.width(), bitmap.height());
texture->load(bitmap.getPixels());
- WebCore::IntRect rect(0, 0, bitmap.width(), bitmap.height());
- gpuCanvas()->drawTexturedRect(texture.get(), rect, rect, WebCore::DeviceColorSpace, op);
+ IntRect rect(0, 0, bitmap.width(), bitmap.height());
+ AffineTransform identity;
+ gpuCanvas()->drawTexturedRect(texture.get(), rect, rect, identity, 1.0, DeviceColorSpace, op);
}
void PlatformContextSkia::readbackHardwareToSoftware() const
{
const SkBitmap& bitmap = m_canvas->getDevice()->accessBitmap(true);
SkAutoLockPixels lock(bitmap);
- m_gpuCanvas->gles2Context()->makeCurrent();
int width = bitmap.width(), height = bitmap.height();
OwnArrayPtr<uint32_t> buf(new uint32_t[width]);
+ GraphicsContext3D* context = m_gpuCanvas->context();
// Flips the image vertically.
for (int y = 0; y < height; ++y) {
uint32_t* pixels = bitmap.getAddr32(0, y);
- glReadPixels(0, height - 1 - y, width, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
+ context->readPixels(0, height - 1 - y, width, 1, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE, pixels);
for (int i = 0; i < width; ++i) {
uint32_t pixel = pixels[i];
// Swizzles from RGBA -> BGRA.
@@ -787,4 +818,6 @@ void PlatformContextSkia::readbackHardwareToSoftware() const
}
}
}
+
#endif
+} // namespace WebCore
diff --git a/WebCore/platform/graphics/skia/PlatformContextSkia.h b/WebCore/platform/graphics/skia/PlatformContextSkia.h
index 2099dd0..ff80d1b 100644
--- a/WebCore/platform/graphics/skia/PlatformContextSkia.h
+++ b/WebCore/platform/graphics/skia/PlatformContextSkia.h
@@ -41,16 +41,16 @@
#include "SkPaint.h"
#include "SkPath.h"
-#if USE(GLES2_RENDERING)
+#include <wtf/Vector.h>
+
namespace WebCore {
+
+#if USE(GLES2_RENDERING)
enum CompositeOperator;
class GLES2Canvas;
-class GLES2Context;
-}
+class GraphicsContext3D;
#endif
-#include <wtf/Vector.h>
-
// This class holds the platform-specific state for GraphicsContext. We put
// most of our Skia wrappers on this class. In theory, a lot of this stuff could
// be moved to GraphicsContext directly, except that some code external to this
@@ -97,8 +97,7 @@ public:
// invoked.
// NOTE: |imageBuffer| may be deleted before the |restore| is invoked.
#if OS(LINUX) || OS(WINDOWS)
- void beginLayerClippedToImage(const WebCore::FloatRect&,
- const WebCore::ImageBuffer*);
+ void beginLayerClippedToImage(const FloatRect&, const ImageBuffer*);
#endif
void clipPathAntiAliased(const SkPath&);
@@ -127,7 +126,7 @@ public:
void setXfermodeMode(SkXfermode::Mode);
void setFillColor(SkColor);
void setFillShader(SkShader*);
- void setStrokeStyle(WebCore::StrokeStyle);
+ void setStrokeStyle(StrokeStyle);
void setStrokeColor(SkColor);
void setStrokeThickness(float thickness);
void setStrokeShader(SkShader*);
@@ -136,7 +135,7 @@ public:
void setDashPathEffect(SkDashPathEffect*);
SkDrawLooper* getDrawLooper() const;
- WebCore::StrokeStyle getStrokeStyle() const;
+ StrokeStyle getStrokeStyle() const;
float getStrokeThickness() const;
int getTextDrawingMode() const;
float getAlpha() const;
@@ -155,8 +154,8 @@ public:
skia::PlatformCanvas* canvas() { return m_canvas; }
- WebCore::InterpolationQuality interpolationQuality() const;
- void setInterpolationQuality(WebCore::InterpolationQuality interpolationQuality);
+ InterpolationQuality interpolationQuality() const;
+ void setInterpolationQuality(InterpolationQuality interpolationQuality);
// FIXME: This should be pushed down to GraphicsContext.
void drawRect(SkRect rect);
@@ -178,14 +177,14 @@ public:
// possible quality.
bool isPrinting();
- void getImageResamplingHint(WebCore::IntSize* srcSize, WebCore::FloatSize* dstSize) const;
- void setImageResamplingHint(const WebCore::IntSize& srcSize, const WebCore::FloatSize& dstSize);
+ void getImageResamplingHint(IntSize* srcSize, FloatSize* dstSize) const;
+ void setImageResamplingHint(const IntSize& srcSize, const FloatSize& dstSize);
void clearImageResamplingHint();
bool hasImageResamplingHint() const;
#if USE(GLES2_RENDERING)
bool useGPU() { return m_useGPU; }
- void setGLES2Context(WebCore::GLES2Context*, const WebCore::IntSize&);
- WebCore::GLES2Canvas* gpuCanvas() const { return m_gpuCanvas.get(); }
+ void setGraphicsContext3D(GraphicsContext3D*, const IntSize&);
+ GLES2Canvas* gpuCanvas() const { return m_gpuCanvas.get(); }
#endif
#if USE(GLES2_RENDERING)
@@ -205,12 +204,12 @@ private:
#if OS(LINUX) || OS(WINDOWS)
// Used when restoring and the state has an image clip. Only shows the pixels in
// m_canvas that are also in imageBuffer.
- void applyClipFromImage(const WebCore::FloatRect&, const SkBitmap&);
+ void applyClipFromImage(const FloatRect&, const SkBitmap&);
#endif
void applyAntiAliasedClipPaths(WTF::Vector<SkPath>& paths);
#if USE(GLES2_RENDERING)
- void uploadSoftwareToHardware(WebCore::CompositeOperator) const;
+ void uploadSoftwareToHardware(CompositeOperator) const;
void readbackHardwareToSoftware() const;
#endif
@@ -232,16 +231,17 @@ private:
// Stores image sizes for a hint to compute image resampling modes.
// Values are used in ImageSkia.cpp
- WebCore::IntSize m_imageResamplingHintSrcSize;
- WebCore::FloatSize m_imageResamplingHintDstSize;
+ IntSize m_imageResamplingHintSrcSize;
+ FloatSize m_imageResamplingHintDstSize;
#if OS(WINDOWS)
bool m_drawingToImageBuffer;
#endif
#if USE(GLES2_RENDERING)
bool m_useGPU;
- OwnPtr<WebCore::GLES2Canvas> m_gpuCanvas;
+ OwnPtr<GLES2Canvas> m_gpuCanvas;
mutable enum { None, Software, Mixed, Hardware } m_backingStoreState;
#endif
};
+}
#endif // PlatformContextSkia_h
diff --git a/WebCore/platform/graphics/skia/SkiaFontWin.cpp b/WebCore/platform/graphics/skia/SkiaFontWin.cpp
index 6595f6b..44003bb 100644
--- a/WebCore/platform/graphics/skia/SkiaFontWin.cpp
+++ b/WebCore/platform/graphics/skia/SkiaFontWin.cpp
@@ -220,7 +220,7 @@ void SkiaWinOutlineCache::removePathsForFont(HFONT hfont)
deleteOutline(outlineCache.find(*i));
}
-bool windowsCanHandleDrawTextShadow(WebCore::GraphicsContext *context)
+bool windowsCanHandleDrawTextShadow(GraphicsContext *context)
{
FloatSize shadowSize;
float shadowBlur;
@@ -323,7 +323,7 @@ bool paintSkiaText(GraphicsContext* context,
}
// Stroking on top (if necessary).
- if ((textMode & WebCore::cTextStroke)
+ if ((textMode & cTextStroke)
&& platformContext->getStrokeStyle() != NoStroke
&& platformContext->getStrokeThickness() > 0) {
diff --git a/WebCore/platform/graphics/skia/SkiaFontWin.h b/WebCore/platform/graphics/skia/SkiaFontWin.h
index 4c2bb32..40bee62 100644
--- a/WebCore/platform/graphics/skia/SkiaFontWin.h
+++ b/WebCore/platform/graphics/skia/SkiaFontWin.h
@@ -34,13 +34,14 @@
#include <windows.h>
#include <usp10.h>
-class GraphicsContext;
class SkPath;
class SkPoint;
-class PlatformContextSkia;
namespace WebCore {
+class GraphicsContext;
+class PlatformContextSkia;
+
// FIXME: Rename file to SkiaWinOutlineCache
class SkiaWinOutlineCache {
public:
diff --git a/WebCore/platform/graphics/win/FontCustomPlatformData.h b/WebCore/platform/graphics/win/FontCustomPlatformData.h
index 46ddbb5..d19a8a5 100644
--- a/WebCore/platform/graphics/win/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/win/FontCustomPlatformData.h
@@ -23,6 +23,7 @@
#include "FontRenderingMode.h"
#include "PlatformString.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
typedef struct CGFont* CGFontRef;
@@ -31,7 +32,6 @@ namespace WebCore {
class FontPlatformData;
class SharedBuffer;
-class String;
struct FontCustomPlatformData : Noncopyable {
FontCustomPlatformData(HANDLE fontReference, const String& name)
diff --git a/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h b/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
index 75fe3d1..2dbea51 100644
--- a/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
+++ b/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
@@ -21,6 +21,7 @@
#ifndef FontCustomPlatformDataCairo_h
#define FontCustomPlatformDataCairo_h
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <cairo.h>
@@ -29,7 +30,6 @@ namespace WebCore {
class FontPlatformData;
class SharedBuffer;
-class String;
struct FontCustomPlatformDataCairo : Noncopyable {
FontCustomPlatformDataCairo(cairo_font_face_t* fontFace)
diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h
index 7bf796c..9c449dd 100644
--- a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h
+++ b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h
@@ -31,6 +31,7 @@
#include "GraphicsLayer.h"
#include "MediaPlayerPrivate.h"
#include "Timer.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/RetainPtr.h>
@@ -47,7 +48,6 @@ namespace WebCore {
class GraphicsContext;
class IntSize;
class IntRect;
-class String;
#if USE(ACCELERATED_COMPOSITING)
class WKCAImageQueue;
diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h
index ecdb9da..ab9b1f0 100644
--- a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h
+++ b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h
@@ -32,6 +32,7 @@
#include "Timer.h"
#include <QTMovie.h>
#include <QTMovieGWorld.h>
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/RetainPtr.h>
@@ -50,7 +51,6 @@ namespace WebCore {
class GraphicsContext;
class IntSize;
class IntRect;
-class String;
class MediaPlayerPrivate : public MediaPlayerPrivateInterface, public QTMovieClient, public QTMovieGWorldClient
#if USE(ACCELERATED_COMPOSITING)
diff --git a/WebCore/platform/graphics/wince/FontPlatformData.h b/WebCore/platform/graphics/wince/FontPlatformData.h
index bb49f75..0b973b8 100644
--- a/WebCore/platform/graphics/wince/FontPlatformData.h
+++ b/WebCore/platform/graphics/wince/FontPlatformData.h
@@ -27,6 +27,7 @@
#include "FontDescription.h"
#include "StringImpl.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
typedef struct tagTEXTMETRICW TEXTMETRIC;
@@ -35,7 +36,6 @@ typedef struct tagLOGFONTW LOGFONT;
namespace WebCore {
class FontPlatformPrivateData;
- class String;
class FontPlatformData {
diff --git a/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h b/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h
index a657e3e..e86b8a9 100644
--- a/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h
+++ b/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h
@@ -29,6 +29,7 @@
#if ENABLE(VIDEO)
+#include <wtf/Forward.h>
#include "MediaPlayerPrivate.h"
#include "Timer.h"
#include <wtf/OwnPtr.h>
@@ -38,7 +39,6 @@ namespace WebCore {
class GraphicsContext;
class IntSize;
class IntRect;
- class String;
class MediaPlayerPrivate : public MediaPlayerPrivateInterface {
public:
diff --git a/WebCore/platform/graphics/wince/MediaPlayerProxy.h b/WebCore/platform/graphics/wince/MediaPlayerProxy.h
index 05f9b21..b02e0f4 100644
--- a/WebCore/platform/graphics/wince/MediaPlayerProxy.h
+++ b/WebCore/platform/graphics/wince/MediaPlayerProxy.h
@@ -23,13 +23,13 @@
#if ENABLE(VIDEO)
+#include <wtf/Forward.h>
#include "ScriptInstance.h"
namespace WebCore {
class IntRect;
class IntSize;
- class String;
class MediaPlayer;
class PluginView;
class HTMLMediaElement;
diff --git a/WebCore/platform/graphics/wx/FontCustomPlatformData.cpp b/WebCore/platform/graphics/wx/FontCustomPlatformData.cpp
new file mode 100644
index 0000000..4cebe43
--- /dev/null
+++ b/WebCore/platform/graphics/wx/FontCustomPlatformData.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2008 Alp Toker <alp@atoker.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "config.h"
+#include "FontCustomPlatformData.h"
+
+#include "SharedBuffer.h"
+#include "FontPlatformData.h"
+
+
+namespace WebCore {
+
+FontCustomPlatformData::~FontCustomPlatformData()
+{
+}
+
+FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode)
+{
+ return FontPlatformData(size, bold, italic);
+}
+
+FontCustomPlatformData* createFontCustomPlatformData(SharedBuffer* buffer)
+{
+ return 0;
+}
+
+bool FontCustomPlatformData::supportsFormat(const String& /* format */)
+{
+ return false;
+}
+
+}
diff --git a/WebCore/platform/graphics/wx/FontCustomPlatformData.h b/WebCore/platform/graphics/wx/FontCustomPlatformData.h
new file mode 100644
index 0000000..a7dfe37
--- /dev/null
+++ b/WebCore/platform/graphics/wx/FontCustomPlatformData.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2008 Alp Toker <alp@atoker.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef FontCustomPlatformData_h
+#define FontCustomPlatformData_h
+
+#include "FontRenderingMode.h"
+#include <wtf/Forward.h>
+#include <wtf/Noncopyable.h>
+
+namespace WebCore {
+
+ class FontPlatformData;
+ class SharedBuffer;
+
+ struct FontCustomPlatformData : Noncopyable {
+ public:
+ FontCustomPlatformData() { }
+ ~FontCustomPlatformData();
+
+ static bool supportsFormat(const String&);
+
+ FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
+ };
+
+ FontCustomPlatformData* createFontCustomPlatformData(SharedBuffer*);
+
+}
+
+#endif
diff --git a/WebCore/platform/graphics/wx/FontPlatformData.h b/WebCore/platform/graphics/wx/FontPlatformData.h
index 952368e..4f8d740 100644
--- a/WebCore/platform/graphics/wx/FontPlatformData.h
+++ b/WebCore/platform/graphics/wx/FontPlatformData.h
@@ -32,6 +32,7 @@
#include "FontDescription.h"
#include "AtomicString.h"
#include "StringImpl.h"
+#include <wtf/Forward.h>
#include <wtf/RefPtr.h>
#include <wtf/text/CString.h>
@@ -56,8 +57,6 @@ inline CTFontRef toCTFontRef(NSFont *nsFont) { return reinterpret_cast<CTFontRef
namespace WebCore {
-class String;
-
class FontHolder: public WTF::RefCounted<FontHolder>
{
public:
@@ -157,6 +156,7 @@ public:
ATSUFontID m_atsuFontID;
CGFontRef cgFont() const;
NSFont* nsFont() const { return m_nsFont; }
+ CTFontRef ctFont() const { return reinterpret_cast<CTFontRef>(m_nsFont); }
void cacheNSFont();
#endif
diff --git a/WebCore/platform/gtk/ClipboardGtk.cpp b/WebCore/platform/gtk/ClipboardGtk.cpp
index c08b03f..7003cf0 100644
--- a/WebCore/platform/gtk/ClipboardGtk.cpp
+++ b/WebCore/platform/gtk/ClipboardGtk.cpp
@@ -23,6 +23,7 @@
#include "Element.h"
#include "FileList.h"
#include "Frame.h"
+#include "HTMLNames.h"
#include "Image.h"
#include "NotImplemented.h"
#include "Pasteboard.h"
@@ -271,38 +272,38 @@ PassRefPtr<FileList> ClipboardGtk::files() const
return fileList.release();
}
-IntPoint ClipboardGtk::dragLocation() const
+void ClipboardGtk::setDragImage(CachedImage* image, const IntPoint& location)
{
- notImplemented();
- return IntPoint(0, 0);
+ setDragImage(image, 0, location);
}
-CachedImage* ClipboardGtk::dragImage() const
+void ClipboardGtk::setDragImageElement(Node* element, const IntPoint& location)
{
- notImplemented();
- return 0;
+ setDragImage(0, element, location);
}
-void ClipboardGtk::setDragImage(CachedImage*, const IntPoint&)
+void ClipboardGtk::setDragImage(CachedImage* image, Node* element, const IntPoint& location)
{
- notImplemented();
-}
+ if (policy() != ClipboardImageWritable && policy() != ClipboardWritable)
+ return;
-Node* ClipboardGtk::dragImageElement()
-{
- notImplemented();
- return 0;
-}
+ if (m_dragImage)
+ m_dragImage->removeClient(this);
+ m_dragImage = image;
+ if (m_dragImage)
+ m_dragImage->addClient(this);
-void ClipboardGtk::setDragImageElement(Node*, const IntPoint&)
-{
- notImplemented();
+ m_dragLoc = location;
+ m_dragImageElement = element;
}
-DragImageRef ClipboardGtk::createDragImage(IntPoint&) const
+DragImageRef ClipboardGtk::createDragImage(IntPoint& location) const
{
- notImplemented();
- return 0;
+ location = m_dragLoc;
+ if (!m_dragImage)
+ return 0;
+
+ return createDragImageFromImage(m_dragImage->image());
}
static CachedImage* getCachedImage(Element* element)
@@ -320,23 +321,20 @@ static CachedImage* getCachedImage(Element* element)
return 0;
}
-void ClipboardGtk::declareAndWriteDragImage(Element* element, const KURL& url, const String& label, Frame*)
+void ClipboardGtk::declareAndWriteDragImage(Element* element, const KURL& url, const String& label, Frame* frame)
{
- CachedImage* cachedImage = getCachedImage(element);
- if (!cachedImage || !cachedImage->isLoaded())
+ m_dataObject->setURL(url, label);
+ m_dataObject->setMarkup(createMarkup(element, IncludeNode, 0, AbsoluteURLs));
+
+ CachedImage* image = getCachedImage(element);
+ if (!image || !image->isLoaded())
return;
- GdkPixbuf* pixbuf = cachedImage->image()->getGdkPixbuf();
+ GRefPtr<GdkPixbuf> pixbuf = adoptGRef(image->image()->getGdkPixbuf());
if (!pixbuf)
return;
- GtkClipboard* imageClipboard = gtk_clipboard_get(gdk_atom_intern_static_string("WebKitClipboardImage"));
- gtk_clipboard_clear(imageClipboard);
-
- gtk_clipboard_set_image(imageClipboard, pixbuf);
- g_object_unref(pixbuf);
-
- writeURL(url, label, 0);
+ m_dataObject->setImage(pixbuf.get());
}
void ClipboardGtk::writeURL(const KURL& url, const String& label, Frame*)
diff --git a/WebCore/platform/gtk/ClipboardGtk.h b/WebCore/platform/gtk/ClipboardGtk.h
index 5b42ac6..8b8ee38 100644
--- a/WebCore/platform/gtk/ClipboardGtk.h
+++ b/WebCore/platform/gtk/ClipboardGtk.h
@@ -27,6 +27,7 @@
#ifndef ClipboardGtk_h
#define ClipboardGtk_h
+#include "CachedResourceClient.h"
#include "Clipboard.h"
#include "DataObjectGtk.h"
@@ -39,7 +40,7 @@ namespace WebCore {
// State available during IE's events for drag and drop and copy/paste
// Created from the EventHandlerGtk to be used by the dom
- class ClipboardGtk : public Clipboard {
+ class ClipboardGtk : public Clipboard, public CachedResourceClient {
public:
static PassRefPtr<ClipboardGtk> create(ClipboardAccessPolicy policy, GtkClipboard* clipboard, bool isForDragging, Frame* frame)
{
@@ -60,14 +61,14 @@ namespace WebCore {
virtual HashSet<String> types() const;
virtual PassRefPtr<FileList> files() const;
- IntPoint dragLocation() const;
- CachedImage* dragImage() const;
void setDragImage(CachedImage*, const IntPoint&);
- Node* dragImageElement();
void setDragImageElement(Node*, const IntPoint&);
+ void setDragImage(CachedImage*, Node*, const IntPoint&);
virtual DragImageRef createDragImage(IntPoint&) const;
+#if ENABLE(DRAG_SUPPORT)
virtual void declareAndWriteDragImage(Element*, const KURL&, const String&, Frame*);
+#endif
virtual void writeURL(const KURL&, const String&, Frame*);
virtual void writeRange(Range*, Frame*);
virtual void writePlainText(const String&);
diff --git a/WebCore/platform/gtk/CursorGtk.cpp b/WebCore/platform/gtk/CursorGtk.cpp
index a535f0c..41b0800 100644
--- a/WebCore/platform/gtk/CursorGtk.cpp
+++ b/WebCore/platform/gtk/CursorGtk.cpp
@@ -1,6 +1,7 @@
/*
* Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
* Copyright (C) 2007 Christian Dywan <christian@twotoasts.de>
+ * Copyright (C) 2010 Igalia S.L.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -30,318 +31,172 @@
#include "Image.h"
#include "IntPoint.h"
-
-#include <wtf/Assertions.h>
-
#include <gdk/gdk.h>
#include <gtk/gtk.h>
+#include <wtf/Assertions.h>
namespace WebCore {
-static GdkCursor* customCursorNew(CustomCursorType cursorType)
+static GRefPtr<GdkCursor> createNamedCursor(CustomCursorType cursorType)
{
CustomCursor cursor = CustomCursors[cursorType];
- GdkCursor* c = gdk_cursor_new_from_name(gdk_display_get_default(), cursor.name);
- if (!c) {
- const GdkColor fg = { 0, 0, 0, 0 };
- const GdkColor bg = { 65535, 65535, 65535, 65535 };
+ GRefPtr<GdkCursor> c = adoptGRef(gdk_cursor_new_from_name(gdk_display_get_default(), cursor.name));
+ if (c)
+ return c;
- GdkPixmap* source = gdk_bitmap_create_from_data(NULL, cursor.bits, 32, 32);
- GdkPixmap* mask = gdk_bitmap_create_from_data(NULL, cursor.mask_bits, 32, 32);
- c = gdk_cursor_new_from_pixmap(source, mask, &fg, &bg, cursor.hot_x, cursor.hot_y);
- g_object_unref(source);
- g_object_unref(mask);
- }
- return c;
+ const GdkColor fg = { 0, 0, 0, 0 };
+ const GdkColor bg = { 65535, 65535, 65535, 65535 };
+ GRefPtr<GdkPixmap> source = adoptGRef(gdk_bitmap_create_from_data(0, cursor.bits, 32, 32));
+ GRefPtr<GdkPixmap> mask = adoptGRef(gdk_bitmap_create_from_data(0, cursor.mask_bits, 32, 32));
+ return adoptGRef(gdk_cursor_new_from_pixmap(source.get(), mask.get(), &fg, &bg, cursor.hot_x, cursor.hot_y));
}
-
-Cursor::Cursor(const Cursor& other)
- : m_platformCursor(other.m_platformCursor)
-{
- if (m_platformCursor)
- gdk_cursor_ref(m_platformCursor);
-}
-
-Cursor::Cursor(Image* image, const IntPoint& hotSpot)
+static GRefPtr<GdkCursor> createCustomCursor(Image* image, const IntPoint& hotSpot)
{
IntPoint effectiveHotSpot = determineHotSpot(image, hotSpot);
- GdkPixbuf* pixbuf = image->getGdkPixbuf();
- m_platformCursor = gdk_cursor_new_from_pixbuf(gdk_display_get_default(), pixbuf, effectiveHotSpot.x(), effectiveHotSpot.y());
- g_object_unref(pixbuf);
+ GRefPtr<GdkPixbuf> pixbuf = adoptGRef(image->getGdkPixbuf());
+ return adoptGRef(gdk_cursor_new_from_pixbuf(gdk_display_get_default(), pixbuf.get(), effectiveHotSpot.x(), effectiveHotSpot.y()));
+}
+
+void Cursor::ensurePlatformCursor() const
+{
+ if (m_platformCursor || m_type == Cursor::Pointer)
+ return;
+
+ switch (m_type) {
+ case Cursor::Pointer:
+ // A null GdkCursor is the default cursor for the window.
+ m_platformCursor = 0;
+ break;
+ case Cursor::Cross:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_CROSS));
+ break;
+ case Cursor::Hand:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_HAND2));
+ break;
+ case Cursor::IBeam:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_XTERM));
+ break;
+ case Cursor::Wait:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_WATCH));
+ break;
+ case Cursor::Help:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_QUESTION_ARROW));
+ break;
+ case Cursor::Move:
+ case Cursor::MiddlePanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_FLEUR));
+ break;
+ case Cursor::EastResize:
+ case Cursor::EastPanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_RIGHT_SIDE));
+ break;
+ case Cursor::NorthResize:
+ case Cursor::NorthPanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_TOP_SIDE));
+ break;
+ case Cursor::NorthEastResize:
+ case Cursor::NorthEastPanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_LEFT_SIDE));
+ break;
+ case Cursor::NorthWestResize:
+ case Cursor::NorthWestPanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_TOP_LEFT_CORNER));
+ break;
+ case Cursor::SouthResize:
+ case Cursor::SouthPanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_BOTTOM_SIDE));
+ break;
+ case Cursor::SouthEastResize:
+ case Cursor::SouthEastPanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_BOTTOM_RIGHT_CORNER));
+ break;
+ case Cursor::SouthWestResize:
+ case Cursor::SouthWestPanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_BOTTOM_LEFT_CORNER));
+ break;
+ case Cursor::WestResize:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_LEFT_SIDE));
+ break;
+ case Cursor::NorthSouthResize:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_TOP_TEE));
+ break;
+ case Cursor::EastWestResize:
+ case Cursor::WestPanning:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_LEFT_SIDE));
+ break;
+ case Cursor::NorthEastSouthWestResize:
+ case Cursor::NorthWestSouthEastResize:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_SIZING));
+ break;
+ case Cursor::ColumnResize:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_SB_H_DOUBLE_ARROW));
+ break;
+ case Cursor::RowResize:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_SB_V_DOUBLE_ARROW));
+ break;
+ case Cursor::VerticalText:
+ m_platformCursor = createNamedCursor(CustomCursorVerticalText);
+ break;
+ case Cursor::Cell:
+ m_platformCursor = adoptGRef(gdk_cursor_new(GDK_PLUS));
+ break;
+ case Cursor::ContextMenu:
+ m_platformCursor = createNamedCursor(CustomCursorContextMenu);
+ break;
+ case Cursor::Alias:
+ m_platformCursor = createNamedCursor(CustomCursorAlias);
+ break;
+ case Cursor::Progress:
+ m_platformCursor = createNamedCursor(CustomCursorProgress);
+ break;
+ case Cursor::NoDrop:
+ case Cursor::NotAllowed:
+ m_platformCursor = createNamedCursor(CustomCursorNoDrop);
+ break;
+ case Cursor::Copy:
+ m_platformCursor = createNamedCursor(CustomCursorCopy);
+ break;
+ case Cursor::None:
+ m_platformCursor = createNamedCursor(CustomCursorNone);
+ break;
+ case Cursor::ZoomIn:
+ m_platformCursor = createNamedCursor(CustomCursorZoomIn);
+ break;
+ case Cursor::ZoomOut:
+ m_platformCursor = createNamedCursor(CustomCursorZoomOut);
+ break;
+ case Cursor::Grab:
+ m_platformCursor = createNamedCursor(CustomCursorGrab);
+ break;
+ case Cursor::Grabbing:
+ m_platformCursor = createNamedCursor(CustomCursorGrabbing);
+ break;
+ case Cursor::Custom:
+ m_platformCursor = createCustomCursor(m_image.get(), m_hotSpot);
+ break;
+ }
}
-Cursor::~Cursor()
+Cursor::Cursor(const Cursor& other)
+ : m_type(other.m_type)
+ , m_image(other.m_image)
+ , m_hotSpot(other.m_hotSpot)
+ , m_platformCursor(other.m_platformCursor)
{
- if (m_platformCursor)
- gdk_cursor_unref(m_platformCursor);
}
Cursor& Cursor::operator=(const Cursor& other)
{
- gdk_cursor_ref(other.m_platformCursor);
- gdk_cursor_unref(m_platformCursor);
+ m_type = other.m_type;
+ m_image = other.m_image;
+ m_hotSpot = other.m_hotSpot;
m_platformCursor = other.m_platformCursor;
return *this;
}
-Cursor::Cursor(GdkCursor* c)
- : m_platformCursor(c)
-{
- m_platformCursor = c;
-
- // The GdkCursor may be NULL - the default cursor for the window.
- if (c)
- gdk_cursor_ref(c);
-}
-
-const Cursor& pointerCursor()
-{
- static Cursor c = 0;
- return c;
-}
-
-const Cursor& crossCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_CROSS);
- return c;
-}
-
-const Cursor& handCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_HAND2);
- return c;
-}
-
-const Cursor& moveCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_FLEUR);
- return c;
-}
-
-const Cursor& iBeamCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_XTERM);
- return c;
-}
-
-const Cursor& waitCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_WATCH);
- return c;
-}
-
-const Cursor& helpCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_QUESTION_ARROW);
- return c;
-}
-
-const Cursor& eastResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_RIGHT_SIDE);
- return c;
-}
-
-const Cursor& northResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_TOP_SIDE);
- return c;
-}
-
-const Cursor& northEastResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_TOP_RIGHT_CORNER);
- return c;
-}
-
-const Cursor& northWestResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_TOP_LEFT_CORNER);
- return c;
-}
-
-const Cursor& southResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_BOTTOM_SIDE);
- return c;
-}
-
-const Cursor& southEastResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_BOTTOM_RIGHT_CORNER);
- return c;
-}
-
-const Cursor& southWestResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_BOTTOM_LEFT_CORNER);
- return c;
-}
-
-const Cursor& westResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_LEFT_SIDE);
- return c;
-}
-
-const Cursor& northSouthResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_TOP_TEE);
- return c;
-}
-
-const Cursor& eastWestResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_LEFT_SIDE);
- return c;
-}
-
-const Cursor& northEastSouthWestResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_SIZING);
- return c;
-}
-
-const Cursor& northWestSouthEastResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_SIZING);
- return c;
-}
-
-const Cursor& columnResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_SB_H_DOUBLE_ARROW);
- return c;
-}
-
-const Cursor& rowResizeCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_SB_V_DOUBLE_ARROW);
- return c;
-}
-
-const Cursor& middlePanningCursor()
-{
- return moveCursor();
-}
-
-const Cursor& eastPanningCursor()
-{
- return eastResizeCursor();
-}
-
-const Cursor& northPanningCursor()
-{
- return northResizeCursor();
-}
-
-const Cursor& northEastPanningCursor()
-{
- return northEastResizeCursor();
-}
-
-const Cursor& northWestPanningCursor()
-{
- return northWestResizeCursor();
-}
-
-const Cursor& southPanningCursor()
-{
- return southResizeCursor();
-}
-
-const Cursor& southEastPanningCursor()
-{
- return southEastResizeCursor();
-}
-
-const Cursor& southWestPanningCursor()
-{
- return southWestResizeCursor();
-}
-
-const Cursor& westPanningCursor()
-{
- return westResizeCursor();
-}
-
-
-const Cursor& verticalTextCursor()
-{
- static Cursor c = customCursorNew(CustomCursorVerticalText);
- return c;
-}
-
-const Cursor& cellCursor()
-{
- static Cursor c = gdk_cursor_new(GDK_PLUS);
- return c;
-}
-
-const Cursor& contextMenuCursor()
-{
- static Cursor c = customCursorNew(CustomCursorContextMenu);
- return c;
-}
-
-const Cursor& noDropCursor()
-{
- static Cursor c = customCursorNew(CustomCursorNoDrop);
- return c;
-}
-
-const Cursor& copyCursor()
-{
- static Cursor c = customCursorNew(CustomCursorCopy);
- return c;
-}
-
-const Cursor& progressCursor()
-{
- static Cursor c = customCursorNew(CustomCursorProgress);
- return c;
-}
-
-const Cursor& aliasCursor()
-{
- static Cursor c = customCursorNew(CustomCursorAlias);
- return c;
-}
-
-const Cursor& noneCursor()
-{
- static Cursor c = customCursorNew(CustomCursorNone);
- return c;
-}
-
-const Cursor& notAllowedCursor()
-{
- return noDropCursor();
-}
-
-const Cursor& zoomInCursor()
-{
- static Cursor c = customCursorNew(CustomCursorZoomIn);
- return c;
-}
-
-const Cursor& zoomOutCursor()
-{
- static Cursor c = customCursorNew(CustomCursorZoomOut);
- return c;
-}
-
-const Cursor& grabCursor()
-{
- static Cursor c = customCursorNew(CustomCursorGrab);
- return c;
-}
-
-const Cursor& grabbingCursor()
+Cursor::~Cursor()
{
- static Cursor c = customCursorNew(CustomCursorGrabbing);
- return c;
}
}
diff --git a/WebCore/platform/gtk/KeyEventGtk.cpp b/WebCore/platform/gtk/KeyEventGtk.cpp
index e9756d8..f90647d 100644
--- a/WebCore/platform/gtk/KeyEventGtk.cpp
+++ b/WebCore/platform/gtk/KeyEventGtk.cpp
@@ -126,6 +126,7 @@ static String keyIdentifierForGdkKeyCode(guint keyCode)
case GDK_Pause:
return "Pause";
case GDK_3270_PrintScreen:
+ case GDK_Print:
return "PrintScreen";
case GDK_Right:
return "Right";
diff --git a/WebCore/platform/gtk/WidgetGtk.cpp b/WebCore/platform/gtk/WidgetGtk.cpp
index c2c11bd..db316d5 100644
--- a/WebCore/platform/gtk/WidgetGtk.cpp
+++ b/WebCore/platform/gtk/WidgetGtk.cpp
@@ -67,7 +67,7 @@ static GdkDrawable* gdkDrawable(PlatformWidget widget)
void Widget::setCursor(const Cursor& cursor)
{
- GdkCursor* platformCursor = cursor.impl();
+ GdkCursor* platformCursor = cursor.platformCursor().get();
// http://bugs.webkit.org/show_bug.cgi?id=16388
// [GTK] Widget::setCursor() gets called frequently
diff --git a/WebCore/platform/image-decoders/ImageDecoder.cpp b/WebCore/platform/image-decoders/ImageDecoder.cpp
index 86bcb45..1946596 100644
--- a/WebCore/platform/image-decoders/ImageDecoder.cpp
+++ b/WebCore/platform/image-decoders/ImageDecoder.cpp
@@ -224,19 +224,20 @@ template <MatchType type> int getScaledValue(const Vector<int>& scaledValues, in
void ImageDecoder::prepareScaleDataIfNecessary()
{
+ m_scaled = false;
+ m_scaledColumns.clear();
+ m_scaledRows.clear();
+
int width = size().width();
int height = size().height();
int numPixels = height * width;
- if (m_maxNumPixels > 0 && numPixels > m_maxNumPixels) {
- m_scaled = true;
- double scale = sqrt(m_maxNumPixels / (double)numPixels);
- fillScaledValues(m_scaledColumns, scale, width);
- fillScaledValues(m_scaledRows, scale, height);
- } else if (m_scaled) {
- m_scaled = false;
- m_scaledColumns.clear();
- m_scaledRows.clear();
- }
+ if (m_maxNumPixels <= 0 || numPixels <= m_maxNumPixels)
+ return;
+
+ m_scaled = true;
+ double scale = sqrt(m_maxNumPixels / (double)numPixels);
+ fillScaledValues(m_scaledColumns, scale, width);
+ fillScaledValues(m_scaledRows, scale, height);
}
int ImageDecoder::upperBoundScaledX(int origX, int searchStart)
diff --git a/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp b/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
index a590a6c..ec16da7 100644
--- a/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
+++ b/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
@@ -61,6 +61,9 @@ bool GIFImageDecoder::isSizeAvailable()
bool GIFImageDecoder::setSize(unsigned width, unsigned height)
{
+ if (ImageDecoder::isSizeAvailable() && size().width() == width && size().height() == height)
+ return true;
+
if (!ImageDecoder::setSize(width, height))
return false;
diff --git a/WebCore/platform/iphone/KeyEventIPhone.mm b/WebCore/platform/iphone/KeyEventIPhone.mm
index f2999d9..7e021b5 100644
--- a/WebCore/platform/iphone/KeyEventIPhone.mm
+++ b/WebCore/platform/iphone/KeyEventIPhone.mm
@@ -26,7 +26,7 @@
#import "config.h"
#import "PlatformKeyboardEvent.h"
-#if PLATFORM(IPHONE)
+#if PLATFORM(IOS)
#import "KeyEventCocoa.h"
#import "Logging.h"
@@ -116,4 +116,4 @@ bool PlatformKeyboardEvent::currentCapsLockState()
}
-#endif // PLATFORM(IPHONE)
+#endif // PLATFORM(IOS)
diff --git a/WebCore/platform/mac/PasteboardHelper.h b/WebCore/platform/mac/PasteboardHelper.h
index 0e241bb..7bd62e5 100644
--- a/WebCore/platform/mac/PasteboardHelper.h
+++ b/WebCore/platform/mac/PasteboardHelper.h
@@ -42,7 +42,6 @@ class DOMDocumentFragment;
namespace WebCore {
- class String;
class Document;
class PasteboardHelper {
diff --git a/WebCore/platform/network/Credential.h b/WebCore/platform/network/Credential.h
index 4fb8bfd..ee47887 100644
--- a/WebCore/platform/network/Credential.h
+++ b/WebCore/platform/network/Credential.h
@@ -27,7 +27,7 @@
#include "PlatformString.h"
-#define CERTIFICATE_CREDENTIALS_SUPPORTED ((PLATFORM(MAC) || PLATFORM(IPHONE)) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD))
+#define CERTIFICATE_CREDENTIALS_SUPPORTED ((PLATFORM(MAC) || PLATFORM(IOS)) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD))
#if CERTIFICATE_CREDENTIALS_SUPPORTED
#include <Security/SecBase.h>
diff --git a/WebCore/platform/network/DNS.h b/WebCore/platform/network/DNS.h
index 1eeec3c..21d9c80 100644
--- a/WebCore/platform/network/DNS.h
+++ b/WebCore/platform/network/DNS.h
@@ -26,9 +26,9 @@
#ifndef DNS_h
#define DNS_h
-namespace WebCore {
+#include <wtf/Forward.h>
- class String;
+namespace WebCore {
#if !USE(SOUP)
void prefetchDNS(const String& hostname);
diff --git a/WebCore/platform/network/FormData.cpp b/WebCore/platform/network/FormData.cpp
index 80f17da..31506ea 100644
--- a/WebCore/platform/network/FormData.cpp
+++ b/WebCore/platform/network/FormData.cpp
@@ -34,7 +34,7 @@
namespace WebCore {
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
const long long FormDataElement::toEndOfFile = -1;
const double FormDataElement::doNotCheckFileChange = 0;
#endif
@@ -133,7 +133,7 @@ PassRefPtr<FormData> FormData::deepCopy() const
formData->m_elements.append(FormDataElement(e.m_data));
break;
case FormDataElement::encodedFile:
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
formData->m_elements.append(FormDataElement(e.m_filename, e.m_fileStart, e.m_fileLength, e.m_expectedFileModificationTime, e.m_shouldGenerateFile));
#else
formData->m_elements.append(FormDataElement(e.m_filename, e.m_shouldGenerateFile));
@@ -156,7 +156,7 @@ void FormData::appendData(const void* data, size_t size)
void FormData::appendFile(const String& filename, bool shouldGenerateFile)
{
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
m_elements.append(FormDataElement(filename, 0, FormDataElement::toEndOfFile, FormDataElement::doNotCheckFileChange, shouldGenerateFile));
#else
m_elements.append(FormDataElement(filename, shouldGenerateFile));
@@ -184,7 +184,7 @@ void FormData::appendItem(const BlobItem* item, bool shouldGenerateFile)
return;
}
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
const FileRangeBlobItem* fileRangeItem = item->toFileRangeBlobItem();
if (fileRangeItem) {
appendFileRange(fileItem->path(), fileRangeItem->start(), fileRangeItem->size(), fileRangeItem->snapshotModificationTime(), shouldGenerateFile);
@@ -195,7 +195,7 @@ void FormData::appendItem(const BlobItem* item, bool shouldGenerateFile)
appendFile(fileItem->path(), shouldGenerateFile);
}
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
void FormData::appendFileRange(const String& filename, long long start, long long length, double expectedModificationTime, bool shouldGenerateFile)
{
m_elements.append(FormDataElement(filename, start, length, expectedModificationTime, shouldGenerateFile));
@@ -245,7 +245,7 @@ void FormData::appendKeyValuePairItems(const BlobItemList& items, const TextEnco
FormDataBuilder::addFilenameToMultiPartHeader(header, encoding, fileName);
// If the item is sliced from a file, do not add the content type.
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
if (!fileName.isEmpty() && !value->toFileRangeBlobItem()) {
#else
if (!fileName.isEmpty()) {
diff --git a/WebCore/platform/network/FormData.h b/WebCore/platform/network/FormData.h
index 95eb258..a1964e3 100644
--- a/WebCore/platform/network/FormData.h
+++ b/WebCore/platform/network/FormData.h
@@ -21,6 +21,7 @@
#define FormData_h
#include "PlatformString.h"
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
@@ -36,7 +37,7 @@ public:
FormDataElement() : m_type(data) { }
FormDataElement(const Vector<char>& array) : m_type(data), m_data(array) { }
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
FormDataElement(const String& filename, long long fileStart, long long fileLength, double expectedFileModificationTime, bool shouldGenerateFile) : m_type(encodedFile), m_filename(filename), m_fileStart(fileStart), m_fileLength(fileLength), m_expectedFileModificationTime(expectedFileModificationTime), m_shouldGenerateFile(shouldGenerateFile) { }
#else
FormDataElement(const String& filename, bool shouldGenerateFile) : m_type(encodedFile), m_filename(filename), m_shouldGenerateFile(shouldGenerateFile) { }
@@ -45,7 +46,7 @@ public:
enum { data, encodedFile } m_type;
Vector<char> m_data;
String m_filename;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
long long m_fileStart;
long long m_fileLength;
double m_expectedFileModificationTime;
@@ -53,7 +54,7 @@ public:
String m_generatedFilename;
bool m_shouldGenerateFile;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
static const long long toEndOfFile;
static const double doNotCheckFileChange;
#endif
@@ -68,7 +69,7 @@ inline bool operator==(const FormDataElement& a, const FormDataElement& b)
return false;
if (a.m_data != b.m_data)
return false;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
if (a.m_filename != b.m_filename || a.m_fileStart != b.m_fileStart || a.m_fileLength != b.m_fileLength || a.m_expectedFileModificationTime != b.m_expectedFileModificationTime)
#else
if (a.m_filename != b.m_filename)
@@ -87,7 +88,7 @@ class FormData : public RefCounted<FormData> {
public:
static PassRefPtr<FormData> create();
static PassRefPtr<FormData> create(const void*, size_t);
- static PassRefPtr<FormData> create(const WTF::CString&);
+ static PassRefPtr<FormData> create(const CString&);
static PassRefPtr<FormData> create(const Vector<char>&);
static PassRefPtr<FormData> create(const BlobItemList&, const TextEncoding&);
static PassRefPtr<FormData> createMultiPart(const BlobItemList&, const TextEncoding&, Document*);
@@ -98,7 +99,7 @@ public:
void appendData(const void* data, size_t);
void appendItems(const BlobItemList&);
void appendFile(const String& filename, bool shouldGenerateFile = false);
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
void appendFileRange(const String& filename, long long start, long long length, double expectedModificationTime, bool shouldGenerateFile = false);
#endif
diff --git a/WebCore/platform/network/FormDataBuilder.h b/WebCore/platform/network/FormDataBuilder.h
index 26b90af..87d0ef3 100644
--- a/WebCore/platform/network/FormDataBuilder.h
+++ b/WebCore/platform/network/FormDataBuilder.h
@@ -22,13 +22,9 @@
#define FormDataBuilder_h
#include "PlatformString.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
-namespace WTF {
-class CString;
-}
-using WTF::CString;
-
namespace WebCore {
class Document;
@@ -40,15 +36,15 @@ public:
// Helper functions used by HTMLFormElement/WMLGoElement for multi-part form data
static Vector<char> generateUniqueBoundaryString();
- static void beginMultiPartHeader(Vector<char>&, const WTF::CString& boundary, const WTF::CString& name);
- static void addBoundaryToMultiPartHeader(Vector<char>&, const WTF::CString& boundary, bool isLastBoundary = false);
+ static void beginMultiPartHeader(Vector<char>&, const CString& boundary, const CString& name);
+ static void addBoundaryToMultiPartHeader(Vector<char>&, const CString& boundary, bool isLastBoundary = false);
static void addFilenameToMultiPartHeader(Vector<char>&, const TextEncoding&, const String& filename);
- static void addContentTypeToMultiPartHeader(Vector<char>&, const WTF::CString& mimeType);
+ static void addContentTypeToMultiPartHeader(Vector<char>&, const CString& mimeType);
static void finishMultiPartHeader(Vector<char>&);
// Helper functions used by HTMLFormElement/WMLGoElement for non multi-part form data
- static void addKeyValuePairAsFormData(Vector<char>&, const WTF::CString& key, const WTF::CString& value);
- static void encodeStringAsFormData(Vector<char>&, const WTF::CString&);
+ static void addKeyValuePairAsFormData(Vector<char>&, const CString& key, const CString& value);
+ static void encodeStringAsFormData(Vector<char>&, const CString&);
private:
FormDataBuilder() {}
diff --git a/WebCore/platform/network/HTTPParsers.h b/WebCore/platform/network/HTTPParsers.h
index bb2a9e5..9d6971b 100644
--- a/WebCore/platform/network/HTTPParsers.h
+++ b/WebCore/platform/network/HTTPParsers.h
@@ -30,9 +30,10 @@
#ifndef HTTPParsers_h
#define HTTPParsers_h
+#include <wtf/Forward.h>
+
namespace WebCore {
-class String;
class ResourceResponseBase;
enum XSSProtectionDisposition {
diff --git a/WebCore/platform/network/mac/FormDataStreamMac.mm b/WebCore/platform/network/mac/FormDataStreamMac.mm
index db2e13b..c7bd2e7 100644
--- a/WebCore/platform/network/mac/FormDataStreamMac.mm
+++ b/WebCore/platform/network/mac/FormDataStreamMac.mm
@@ -124,7 +124,7 @@ struct FormStreamFields {
SchedulePairHashSet scheduledRunLoopPairs;
Vector<FormDataElement> remainingElements; // in reverse order
CFReadStreamRef currentStream;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
long long currentStreamRangeLength;
#endif
char* currentData;
@@ -140,7 +140,7 @@ static void closeCurrentStream(FormStreamFields *form)
CFReadStreamSetClient(form->currentStream, kCFStreamEventNone, NULL, NULL);
CFRelease(form->currentStream);
form->currentStream = NULL;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
form->currentStreamRangeLength = FormDataElement::toEndOfFile;
#endif
}
@@ -167,7 +167,7 @@ static bool advanceCurrentStream(FormStreamFields* form)
form->currentStream = CFReadStreamCreateWithBytesNoCopy(0, reinterpret_cast<const UInt8*>(data), size, kCFAllocatorNull);
form->currentData = data;
} else {
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
// Check if the file has been changed or not if required.
if (nextInput.m_expectedFileModificationTime != FormDataElement::doNotCheckFileChange) {
time_t fileModificationTime;
@@ -183,7 +183,7 @@ static bool advanceCurrentStream(FormStreamFields* form)
// The file must have been removed or become unreadable.
return false;
}
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
if (nextInput.m_fileStart > 0) {
CFNumberRef position = CFNumberCreate(0, kCFNumberLongLongType, &nextInput.m_fileStart);
CFReadStreamSetProperty(form->currentStream, kCFStreamPropertyFileCurrentOffset, position);
@@ -224,7 +224,7 @@ static void* formCreate(CFReadStreamRef stream, void* context)
FormStreamFields* newInfo = new FormStreamFields;
newInfo->currentStream = NULL;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
newInfo->currentStreamRangeLength = FormDataElement::toEndOfFile;
#endif
newInfo->currentData = 0;
@@ -272,7 +272,7 @@ static CFIndex formRead(CFReadStreamRef stream, UInt8* buffer, CFIndex bufferLen
while (form->currentStream) {
CFIndex bytesToRead = bufferLength;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
if (form->currentStreamRangeLength != FormDataElement::toEndOfFile && form->currentStreamRangeLength < bytesToRead)
bytesToRead = static_cast<CFIndex>(form->currentStreamRangeLength);
#endif
@@ -285,7 +285,7 @@ static CFIndex formRead(CFReadStreamRef stream, UInt8* buffer, CFIndex bufferLen
error->error = 0;
*atEOF = FALSE;
form->bytesSent += bytesRead;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
if (form->currentStreamRangeLength != FormDataElement::toEndOfFile)
form->currentStreamRangeLength -= bytesRead;
#endif
@@ -401,7 +401,7 @@ void setHTTPBody(NSMutableURLRequest *request, PassRefPtr<FormData> formData)
if (element.m_type == FormDataElement::data)
length += element.m_data.size();
else {
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
// If we're sending the file range, use the existing range length for now. We will detect if the file has been changed right before we read the file and abort the operation if necessary.
if (element.m_fileLength != FormDataElement::toEndOfFile) {
length += element.m_fileLength;
diff --git a/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h b/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h
index 15a48cd..766dc90 100644
--- a/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h
+++ b/WebCore/platform/network/qt/NetworkStateNotifierPrivate.h
@@ -22,7 +22,7 @@
#include <QObject>
-#if QT_VERSION < 0x040700
+#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
namespace QtMobility {
class QNetworkConfigurationManager;
}
@@ -46,7 +46,7 @@ public slots:
void networkAccessPermissionChanged(bool);
public:
-#if QT_VERSION < 0x040700
+#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
QtMobility::QNetworkConfigurationManager* m_configurationManager;
#else
QNetworkConfigurationManager* m_configurationManager;
diff --git a/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp b/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
index 3aae92a..959e74a 100644
--- a/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
+++ b/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
@@ -25,7 +25,7 @@
#include "NetworkStateNotifierPrivate.h"
#include "qnetworkconfigmanager.h"
-#if QT_VERSION < 0x040700
+#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
using namespace QtMobility;
#endif
diff --git a/WebCore/platform/network/qt/QNetworkReplyHandler.cpp b/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
index 131f924..915dc9a 100644
--- a/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
+++ b/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
@@ -160,11 +160,11 @@ QNetworkReplyHandler::QNetworkReplyHandler(ResourceHandle* handle, LoadMode load
m_method = QNetworkAccessManager::PostOperation;
else if (r.httpMethod() == "PUT")
m_method = QNetworkAccessManager::PutOperation;
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
else if (r.httpMethod() == "DELETE")
m_method = QNetworkAccessManager::DeleteOperation;
#endif
-#if QT_VERSION >= 0x040700
+#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
else if (r.httpMethod() == "OPTIONS")
m_method = QNetworkAccessManager::CustomOperation;
#endif
@@ -294,9 +294,9 @@ void QNetworkReplyHandler::sendResponseIfNeeded()
if (!client)
return;
- WebCore::String contentType = m_reply->header(QNetworkRequest::ContentTypeHeader).toString();
- WebCore::String encoding = extractCharsetFromMediaType(contentType);
- WebCore::String mimeType = extractMIMETypeFromMediaType(contentType);
+ WTF::String contentType = m_reply->header(QNetworkRequest::ContentTypeHeader).toString();
+ WTF::String encoding = extractCharsetFromMediaType(contentType);
+ WTF::String mimeType = extractMIMETypeFromMediaType(contentType);
if (mimeType.isEmpty()) {
// let's try to guess from the extension
@@ -456,13 +456,13 @@ void QNetworkReplyHandler::start()
putDevice->setParent(m_reply);
break;
}
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
case QNetworkAccessManager::DeleteOperation: {
m_reply = manager->deleteResource(m_request);
break;
}
#endif
-#if QT_VERSION >= 0x040700
+#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
case QNetworkAccessManager::CustomOperation:
m_reply = manager->sendCustomRequest(m_request, m_resourceHandle->firstRequest().httpMethod().latin1().data());
break;
diff --git a/WebCore/platform/qt/FileSystemQt.cpp b/WebCore/platform/qt/FileSystemQt.cpp
index 03dfc8f..96c2093 100644
--- a/WebCore/platform/qt/FileSystemQt.cpp
+++ b/WebCore/platform/qt/FileSystemQt.cpp
@@ -116,7 +116,7 @@ Vector<String> listDirectory(const String& path, const String& filter)
CString openTemporaryFile(const char* prefix, PlatformFileHandle& handle)
{
#ifndef QT_NO_TEMPORARYFILE
- QTemporaryFile* tempFile = new QTemporaryFile(QLatin1String(prefix));
+ QTemporaryFile* tempFile = new QTemporaryFile(QDir::tempPath() + QLatin1Char('/') + QLatin1String(prefix));
tempFile->setAutoRemove(false);
QFile* temp = tempFile;
if (temp->open(QIODevice::ReadWrite)) {
diff --git a/WebCore/platform/qt/PopupMenuQt.cpp b/WebCore/platform/qt/PopupMenuQt.cpp
deleted file mode 100644
index 5590556..0000000
--- a/WebCore/platform/qt/PopupMenuQt.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * This file is part of the popup menu implementation for <select> elements in WebCore.
- *
- * Copyright (C) 2008, 2009, 2010 Nokia Corporation and/or its subsidiary(-ies)
- * Copyright (C) 2006 Apple Computer, Inc.
- * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
- * Coypright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-#include "PopupMenuQt.h"
-
-#include "Chrome.h"
-#include "ChromeClientQt.h"
-#include "FrameView.h"
-#include "PopupMenuClient.h"
-#include "QWebPageClient.h"
-#include "QtAbstractWebPopup.h"
-
-namespace WebCore {
-
-PopupMenuQt::PopupMenuQt(PopupMenuClient* client)
- : m_popupClient(client)
- , m_popup(0)
-{
-}
-
-PopupMenuQt::~PopupMenuQt()
-{
- delete m_popup;
-}
-
-
-void PopupMenuQt::disconnectClient()
-{
- m_popupClient = 0;
-}
-
-void PopupMenuQt::show(const IntRect& rect, FrameView* view, int index)
-{
- ChromeClientQt* chromeClient = static_cast<ChromeClientQt*>(
- view->frame()->page()->chrome()->client());
- ASSERT(chromeClient);
-
- if (!m_popup)
- m_popup = chromeClient->createSelectPopup();
-
- m_popup->m_popupClient = m_popupClient;
- m_popup->m_currentIndex = index;
- m_popup->m_pageClient = chromeClient->platformPageClient();
-
- QRect geometry(rect);
- geometry.moveTopLeft(view->contentsToWindow(rect.topLeft()));
- m_popup->m_geometry = geometry;
-
- m_popup->show();
-
-}
-
-void PopupMenuQt::hide()
-{
- m_popup->hide();
-}
-
-void PopupMenuQt::updateFromElement()
-{
- m_popupClient->setTextFromItem(m_popupClient->selectedIndex());
-}
-
-}
-
-// vim: ts=4 sw=4 et
diff --git a/WebCore/platform/qt/QWebPageClient.h b/WebCore/platform/qt/QWebPageClient.h
index 1f508bb..a0a0218 100644
--- a/WebCore/platform/qt/QWebPageClient.h
+++ b/WebCore/platform/qt/QWebPageClient.h
@@ -59,7 +59,7 @@ public:
#endif
#if QT_VERSION >= 0x040600
- virtual void setInputMethodHint(Qt::InputMethodHint hint, bool enable) = 0;
+ virtual void setInputMethodHints(Qt::InputMethodHints hint) = 0;
#endif
#ifndef QT_NO_CURSOR
diff --git a/WebCore/platform/qt/QtAbstractWebPopup.cpp b/WebCore/platform/qt/QtAbstractWebPopup.cpp
deleted file mode 100644
index 31ab28d..0000000
--- a/WebCore/platform/qt/QtAbstractWebPopup.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-#include "config.h"
-#include "QtAbstractWebPopup.h"
-
-#include "PopupMenuClient.h"
-
-
-namespace WebCore {
-
-QtAbstractWebPopup::QtAbstractWebPopup()
- : m_popupClient(0)
- , m_pageClient(0)
- , m_currentIndex(-1)
-{
-}
-
-QtAbstractWebPopup::~QtAbstractWebPopup()
-{
-}
-
-void QtAbstractWebPopup::popupDidHide()
-{
- Q_ASSERT(m_popupClient);
- m_popupClient->popupDidHide();
-}
-
-void QtAbstractWebPopup::valueChanged(int index)
-{
- Q_ASSERT(m_popupClient);
- m_popupClient->valueChanged(index);
-}
-
-void QtAbstractWebPopup::selectItem(int index, bool allowMultiplySelections, bool shift)
-{
-#if ENABLE(NO_LISTBOX_RENDERING)
- ListPopupMenuClient* client = static_cast<ListPopupMenuClient*>(m_popupClient);
- if (client) {
- client->listBoxSelectItem(index, allowMultiplySelections, shift);
- return;
- }
-#endif
- valueChanged(index);
-}
-
-bool QtAbstractWebPopup::multiple()
-{
-#if ENABLE(NO_LISTBOX_RENDERING)
- ListPopupMenuClient* client = static_cast<ListPopupMenuClient*>(m_popupClient);
- return client && client->multiple();
-#else
- return false;
-#endif
-}
-
-QtAbstractWebPopup::ItemType QtAbstractWebPopup::itemType(int idx) const
-{
- if (m_popupClient->itemIsSeparator(idx))
- return Separator;
- if (m_popupClient->itemIsLabel(idx))
- return Group;
- return Option;
-}
-
-} // namespace WebCore
diff --git a/WebCore/platform/qt/QtAbstractWebPopup.h b/WebCore/platform/qt/QtAbstractWebPopup.h
deleted file mode 100644
index 5f6f619..0000000
--- a/WebCore/platform/qt/QtAbstractWebPopup.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-#ifndef QtAbstractWebPopup_h
-#define QtAbstractWebPopup_h
-
-#include "PopupMenuClient.h"
-
-#include <QFont>
-#include <QList>
-#include <QRect>
-#include <QWidget>
-
-class QWebPageClient;
-
-namespace WebCore {
-
-class QtAbstractWebPopup {
-public:
- enum ItemType { Option, Group, Separator };
-
- ItemType itemType(int) const;
- QString itemText(int idx) const { return m_popupClient->itemText(idx); }
- QString itemToolTip(int idx) const { return m_popupClient->itemToolTip(idx); }
- bool itemIsEnabled(int idx) const { return m_popupClient->itemIsEnabled(idx); }
- int itemCount() const { return m_popupClient->listSize(); }
- bool itemIsSelected(int idx) const { return m_popupClient->itemIsSelected(idx); }
-
-
- QWebPageClient* pageClient() const { return m_pageClient; }
- QRect geometry() const { return m_geometry; }
- int currentIndex() const { return m_currentIndex; }
-
- QtAbstractWebPopup();
- virtual ~QtAbstractWebPopup();
-
- virtual void show() = 0;
- virtual void hide() = 0;
-
- void popupDidHide();
- void valueChanged(int index);
-
- void selectItem(int index, bool allowMultiplySelections, bool shift);
- bool multiple();
-
-
- QFont font() { return m_popupClient->menuStyle().font().font(); }
-
-private:
- friend class PopupMenuQt;
- PopupMenuClient* m_popupClient;
- QWebPageClient* m_pageClient;
- int m_currentIndex;
- QRect m_geometry;
-};
-
-}
-
-#endif // QtAbstractWebPopup_h
diff --git a/WebCore/platform/qt/RenderThemeQt.cpp b/WebCore/platform/qt/RenderThemeQt.cpp
index 22d99a1..870f0eb 100644
--- a/WebCore/platform/qt/RenderThemeQt.cpp
+++ b/WebCore/platform/qt/RenderThemeQt.cpp
@@ -1202,7 +1202,7 @@ bool RenderThemeQt::paintMediaSliderTrack(RenderObject* o, const PaintInfo& pain
paintMediaBackground(p.painter, r);
-#if QT_VERSION >= 0x040700
+#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
if (MediaPlayer* player = mediaElement->player()) {
// Get the buffered parts of the media
PassRefPtr<TimeRanges> buffered = player->buffered();
diff --git a/WebCore/platform/text/AtomicStringHash.h b/WebCore/platform/text/AtomicStringHash.h
index 67a45de..d13332b 100644
--- a/WebCore/platform/text/AtomicStringHash.h
+++ b/WebCore/platform/text/AtomicStringHash.h
@@ -53,10 +53,10 @@ namespace WebCore {
namespace WTF {
// WebCore::AtomicStringHash is the default hash for AtomicString
- template<> struct HashTraits<WebCore::AtomicString> : GenericHashTraits<WebCore::AtomicString> {
+ template<> struct HashTraits<WTF::AtomicString> : GenericHashTraits<WTF::AtomicString> {
static const bool emptyValueIsZero = true;
- static void constructDeletedValue(WebCore::AtomicString& slot) { new (&slot) WebCore::AtomicString(HashTableDeletedValue); }
- static bool isDeletedValue(const WebCore::AtomicString& slot) { return slot.isHashTableDeletedValue(); }
+ static void constructDeletedValue(WTF::AtomicString& slot) { new (&slot) WTF::AtomicString(HashTableDeletedValue); }
+ static bool isDeletedValue(const WTF::AtomicString& slot) { return slot.isHashTableDeletedValue(); }
};
}
diff --git a/WebCore/platform/text/AtomicStringKeyedMRUCache.h b/WebCore/platform/text/AtomicStringKeyedMRUCache.h
new file mode 100644
index 0000000..a47585a
--- /dev/null
+++ b/WebCore/platform/text/AtomicStringKeyedMRUCache.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef AtomicStringKeyedMRUCache_h
+#define AtomicStringKeyedMRUCache_h
+
+namespace WebCore {
+
+template<typename T, size_t capacity = 4>
+class AtomicStringKeyedMRUCache {
+public:
+ T get(const AtomicString& key)
+ {
+ if (key.isNull()) {
+ DEFINE_STATIC_LOCAL(T, valueForNull, (createValueForNullKey()));
+ return valueForNull;
+ }
+
+ for (size_t i = 0; i < m_cache.size(); ++i) {
+ if (m_cache[i].first == key) {
+ size_t foundIndex = i;
+ if (foundIndex + 1 < m_cache.size()) {
+ Entry entry = m_cache[foundIndex];
+ m_cache.remove(foundIndex);
+ foundIndex = m_cache.size();
+ m_cache.append(entry);
+ }
+ return m_cache[foundIndex].second;
+ }
+ }
+ if (m_cache.size() == capacity)
+ m_cache.remove(0);
+
+ m_cache.append(std::make_pair(key, createValueForKey(key)));
+ return m_cache.last().second;
+ }
+
+private:
+ T createValueForNullKey();
+ T createValueForKey(const AtomicString&);
+
+ typedef pair<AtomicString, T> Entry;
+ typedef Vector<Entry, capacity> Cache;
+ Cache m_cache;
+};
+
+}
+
+#endif // AtomicStringKeyedMRUCache_h
diff --git a/WebCore/platform/text/Hyphenation.cpp b/WebCore/platform/text/Hyphenation.cpp
index 8ef5a25..89f6438 100644
--- a/WebCore/platform/text/Hyphenation.cpp
+++ b/WebCore/platform/text/Hyphenation.cpp
@@ -30,9 +30,14 @@
namespace WebCore {
-size_t lastHyphenLocation(const UChar* /* characters */, size_t /* length */, size_t /* beforeIndex */)
+bool canHyphenate(const AtomicString& /* localeIdentifier */)
{
- notImplemented();
+ return false;
+}
+
+size_t lastHyphenLocation(const UChar* /* characters */, size_t /* length */, size_t /* beforeIndex */, const AtomicString& /* localeIdentifier */)
+{
+ ASSERT_NOT_REACHED();
return 0;
}
diff --git a/WebCore/platform/text/Hyphenation.h b/WebCore/platform/text/Hyphenation.h
index dbcbe69..a99bff0 100644
--- a/WebCore/platform/text/Hyphenation.h
+++ b/WebCore/platform/text/Hyphenation.h
@@ -26,11 +26,13 @@
#ifndef Hyphenation_h
#define Hyphenation_h
+#include <wtf/Forward.h>
#include <wtf/unicode/Unicode.h>
namespace WebCore {
-size_t lastHyphenLocation(const UChar*, size_t length, size_t beforeIndex);
+bool canHyphenate(const AtomicString& localeIdentifier);
+size_t lastHyphenLocation(const UChar*, size_t length, size_t beforeIndex, const AtomicString& localeIdentifier);
} // namespace WebCore
diff --git a/WebCore/platform/text/LineEnding.h b/WebCore/platform/text/LineEnding.h
index 9c3e2aa..ab8d6ee 100644
--- a/WebCore/platform/text/LineEnding.h
+++ b/WebCore/platform/text/LineEnding.h
@@ -32,6 +32,8 @@
#ifndef LineEnding_h
#define LineEnding_h
+#include <wtf/Forward.h>
+
namespace WTF {
class CString;
}
diff --git a/WebCore/platform/text/SegmentedString.h b/WebCore/platform/text/SegmentedString.h
index 747d426..1d3098d 100644
--- a/WebCore/platform/text/SegmentedString.h
+++ b/WebCore/platform/text/SegmentedString.h
@@ -38,8 +38,6 @@ public:
{
}
- SegmentedSubstring(const UChar* str, int length) : m_length(length), m_current(length == 0 ? 0 : str), m_doNotExcludeLineNumbers(true) {}
-
void clear() { m_length = 0; m_current = 0; }
bool excludeLineNumbers() const { return !m_doNotExcludeLineNumbers; }
@@ -72,8 +70,6 @@ class SegmentedString {
public:
SegmentedString()
: m_pushedChar1(0), m_pushedChar2(0), m_currentChar(0), m_composite(false), m_closed(false) {}
- SegmentedString(const UChar* str, int length) : m_pushedChar1(0), m_pushedChar2(0)
- , m_currentString(str, length), m_currentChar(m_currentString.m_current), m_composite(false), m_closed(false) {}
SegmentedString(const String& str)
: m_pushedChar1(0), m_pushedChar2(0), m_currentString(str)
, m_currentChar(m_currentString.m_current), m_composite(false), m_closed(false) {}
diff --git a/WebCore/platform/text/StringBuffer.h b/WebCore/platform/text/StringBuffer.h
index 353a44a..3a753b4 100644
--- a/WebCore/platform/text/StringBuffer.h
+++ b/WebCore/platform/text/StringBuffer.h
@@ -26,52 +26,10 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef StringBuffer_h
-#define StringBuffer_h
+#ifndef WebCoreStringBuffer_h
+#define WebCoreStringBuffer_h
-#include <wtf/Assertions.h>
-#include <wtf/Noncopyable.h>
-#include <wtf/unicode/Unicode.h>
+// FIXME: remove this header, use the forward from wtf directly.
+#include <wtf/text/StringBuffer.h>
-namespace WebCore {
-
-class StringBuffer : public Noncopyable {
-public:
- explicit StringBuffer(unsigned length)
- : m_length(length)
- , m_data(static_cast<UChar*>(fastMalloc(length * sizeof(UChar))))
- {
- }
- ~StringBuffer()
- {
- fastFree(m_data);
- }
-
- void shrink(unsigned newLength)
- {
- ASSERT(newLength <= m_length);
- m_length = newLength;
- }
-
- void resize(unsigned newLength)
- {
- if (newLength > m_length)
- m_data = static_cast<UChar*>(fastRealloc(m_data, newLength * sizeof(UChar)));
- m_length = newLength;
- }
-
- unsigned length() const { return m_length; }
- UChar* characters() { return m_data; }
-
- UChar& operator[](unsigned i) { ASSERT(i < m_length); return m_data[i]; }
-
- UChar* release() { UChar* data = m_data; m_data = 0; return data; }
-
-private:
- unsigned m_length;
- UChar* m_data;
-};
-
-}
-
-#endif
+#endif // StringBuffer_h
diff --git a/WebCore/platform/text/StringBuilder.cpp b/WebCore/platform/text/StringBuilder.cpp
index 3e34981..213daab 100644
--- a/WebCore/platform/text/StringBuilder.cpp
+++ b/WebCore/platform/text/StringBuilder.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -67,7 +68,7 @@ void StringBuilder::append(char c)
m_strings.append(String(&c, 1));
}
-String StringBuilder::toString() const
+String StringBuilder::toString(ConcatMode mode) const
{
if (isNull())
return String();
@@ -80,17 +81,37 @@ String StringBuilder::toString() const
return m_strings[0];
UChar* buffer;
- String result = String::createUninitialized(m_totalLength, buffer);
+ unsigned totalLength = m_totalLength;
+ if (mode == ConcatAddingSpacesBetweenIndividualStrings)
+ totalLength += count - 1;
+ String result = String::createUninitialized(totalLength, buffer);
UChar* p = buffer;
- for (unsigned i = 0; i < count; ++i) {
- StringImpl* string = m_strings[i].impl();
- unsigned length = string->length();
- memcpy(p, string->characters(), length * 2);
- p += length;
- }
- ASSERT(p == m_totalLength + buffer);
+ // We could handle both Concat modes in a single for loop, not doing that for performance reasons.
+ if (mode == ConcatUnaltered) {
+ for (unsigned i = 0; i < count; ++i) {
+ StringImpl* string = m_strings[i].impl();
+ unsigned length = string->length();
+ memcpy(p, string->characters(), length * 2);
+ p += length;
+ }
+ } else {
+ ASSERT(mode == ConcatAddingSpacesBetweenIndividualStrings);
+ for (unsigned i = 0; i < count; ++i) {
+ StringImpl* string = m_strings[i].impl();
+ unsigned length = string->length();
+ memcpy(p, string->characters(), length * 2);
+ p += length;
+
+ // Add space after string before the start of the next string, if we're not processing the last string.
+ if (i < count - 1) {
+ *p = ' ';
+ ++p;
+ }
+ }
+ }
+ ASSERT(p == totalLength + buffer);
return result;
}
diff --git a/WebCore/platform/text/StringBuilder.h b/WebCore/platform/text/StringBuilder.h
index 7f72fbf..72adfa7 100644
--- a/WebCore/platform/text/StringBuilder.h
+++ b/WebCore/platform/text/StringBuilder.h
@@ -33,27 +33,36 @@
namespace WebCore {
- class StringBuilder {
- public:
- StringBuilder() : m_totalLength(UINT_MAX) {}
+enum ConcatMode {
+ ConcatUnaltered,
+ ConcatAddingSpacesBetweenIndividualStrings
+};
- void setNonNull() { if (m_totalLength == UINT_MAX) m_totalLength = 0; }
+class StringBuilder {
+public:
+ StringBuilder() : m_totalLength(UINT_MAX) {}
- void append(const String&);
- void append(UChar);
- void append(char);
-
- void clear();
- unsigned length() const;
+ void setNonNull()
+ {
+ if (m_totalLength == UINT_MAX)
+ m_totalLength = 0;
+ }
- String toString() const;
+ void append(const String&);
+ void append(UChar);
+ void append(char);
+
+ void clear();
+ unsigned length() const;
- private:
- bool isNull() const { return m_totalLength == UINT_MAX; }
+ String toString(ConcatMode mode = ConcatUnaltered) const;
- unsigned m_totalLength;
- Vector<String, 16> m_strings;
- };
+private:
+ bool isNull() const { return m_totalLength == UINT_MAX; }
+
+ unsigned m_totalLength;
+ Vector<String, 16> m_strings;
+};
}
diff --git a/WebCore/platform/text/TextCodec.h b/WebCore/platform/text/TextCodec.h
index 591e3a6..c6af38a 100644
--- a/WebCore/platform/text/TextCodec.h
+++ b/WebCore/platform/text/TextCodec.h
@@ -28,6 +28,7 @@
#define TextCodec_h
#include <memory>
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/Vector.h>
@@ -67,7 +68,7 @@ namespace WebCore {
}
virtual String decode(const char*, size_t length, bool flush, bool stopOnError, bool& sawError) = 0;
- virtual WTF::CString encode(const UChar*, size_t length, UnencodableHandling) = 0;
+ virtual CString encode(const UChar*, size_t length, UnencodableHandling) = 0;
// Fills a null-terminated string representation of the given
// unencodable character into the given replacement buffer.
diff --git a/WebCore/platform/text/TextCodecICU.cpp b/WebCore/platform/text/TextCodecICU.cpp
index 56a4393..6a579f9 100644
--- a/WebCore/platform/text/TextCodecICU.cpp
+++ b/WebCore/platform/text/TextCodecICU.cpp
@@ -70,10 +70,6 @@ void TextCodecICU::registerBaseCodecs(TextCodecRegistrar registrar)
registrar("UTF-8", newTextCodecICU, 0);
}
-// FIXME: Registering all the encodings we get from ucnv_getAvailableName
-// includes encodings we don't want or need. For example, all
-// the encodings with commas and version numbers.
-
void TextCodecICU::registerExtendedEncodingNames(EncodingNameRegistrar registrar)
{
// We register Hebrew with logical ordering using a separate name.
@@ -136,41 +132,62 @@ void TextCodecICU::registerExtendedEncodingNames(EncodingNameRegistrar registrar
// table in WebKit on Macintosh that don't seem to be present in ICU.
// Perhaps we can prove these are not used on the web and remove them.
// Or perhaps we can get them added to ICU.
- registrar("xmacroman", "macintosh");
- registrar("xmacukrainian", "x-mac-cyrillic");
- registrar("cnbig5", "Big5");
- registrar("xxbig5", "Big5");
- registrar("cngb", "GBK");
+ registrar("x-mac-roman", "macintosh");
+ registrar("x-mac-ukrainian", "x-mac-cyrillic");
+ registrar("cn-big5", "Big5");
+ registrar("x-x-big5", "Big5");
+ registrar("cn-gb", "GBK");
registrar("csgb231280", "GBK");
- registrar("xeuccn", "GBK");
- registrar("xgbk", "GBK");
- registrar("csISO88598I", "ISO_8859-8-I");
+ registrar("x-euc-cn", "GBK");
+ registrar("x-gbk", "GBK");
+ registrar("csISO88598I", "ISO-8859-8-I");
registrar("koi", "KOI8-R");
registrar("logical", "ISO-8859-8-I");
registrar("unicode11utf8", "UTF-8");
registrar("unicode20utf8", "UTF-8");
- registrar("xunicode20utf8", "UTF-8");
+ registrar("x-unicode20utf8", "UTF-8");
registrar("visual", "ISO-8859-8");
registrar("winarabic", "windows-1256");
registrar("winbaltic", "windows-1257");
registrar("wincyrillic", "windows-1251");
- registrar("iso885911", "windows-874");
- registrar("dos874", "windows-874");
+ registrar("iso-8859-11", "windows-874");
+ registrar("iso8859-11", "windows-874");
+ registrar("dos-874", "windows-874");
registrar("wingreek", "windows-1253");
registrar("winhebrew", "windows-1255");
registrar("winlatin2", "windows-1250");
registrar("winturkish", "windows-1254");
registrar("winvietnamese", "windows-1258");
- registrar("xcp1250", "windows-1250");
- registrar("xcp1251", "windows-1251");
- registrar("xeuc", "EUC-JP");
- registrar("xwindows949", "windows-949");
- registrar("xuhc", "windows-949");
+ registrar("x-cp1250", "windows-1250");
+ registrar("x-cp1251", "windows-1251");
+ registrar("x-euc", "EUC-JP");
+ registrar("x-windows-949", "windows-949");
+ registrar("x-uhc", "windows-949");
+ registrar("utf8", "UTF-8");
+ registrar("shift-jis", "Shift_JIS");
// These aliases are present in modern versions of ICU, but use different codecs, and have no standard names.
// They are not present in ICU 3.2.
- registrar("dos720", "cp864");
+ registrar("dos-720", "cp864");
registrar("jis7", "ISO-2022-JP");
+
+ // Alternative spelling of ISO encoding names.
+ registrar("ISO8859-1", "ISO-8859-1");
+ registrar("ISO8859-2", "ISO-8859-2");
+ registrar("ISO8859-3", "ISO-8859-3");
+ registrar("ISO8859-4", "ISO-8859-4");
+ registrar("ISO8859-5", "ISO-8859-5");
+ registrar("ISO8859-6", "ISO-8859-6");
+ registrar("ISO8859-7", "ISO-8859-7");
+ registrar("ISO8859-8", "ISO-8859-8");
+ registrar("ISO8859-8-I", "ISO-8859-8-I");
+ registrar("ISO8859-9", "ISO-8859-9");
+ registrar("ISO8859-10", "ISO-8859-10");
+ registrar("ISO8859-13", "ISO-8859-13");
+ registrar("ISO8859-14", "ISO-8859-14");
+ registrar("ISO8859-15", "ISO-8859-15");
+ // Not registering ISO8859-16, because Firefox (as of version 3.6.6) doesn't know this particular alias,
+ // and because older versions of ICU don't support ISO-8859-16 encoding at all.
}
void TextCodecICU::registerExtendedCodecs(TextCodecRegistrar registrar)
diff --git a/WebCore/platform/text/TextCodecLatin1.cpp b/WebCore/platform/text/TextCodecLatin1.cpp
index 55b20e8..1e9385d 100644
--- a/WebCore/platform/text/TextCodecLatin1.cpp
+++ b/WebCore/platform/text/TextCodecLatin1.cpp
@@ -79,7 +79,6 @@ void TextCodecLatin1::registerEncodingNames(EncodingNameRegistrar registrar)
registrar("ibm-1252", "windows-1252");
registrar("ibm-1252_P100-2000", "windows-1252");
- registrar("8859-1", "ISO-8859-1");
registrar("CP819", "ISO-8859-1");
registrar("IBM819", "ISO-8859-1");
registrar("csISOLatin1", "ISO-8859-1");
diff --git a/WebCore/platform/text/TextEncoding.cpp b/WebCore/platform/text/TextEncoding.cpp
index 0a997a2..29ae170 100644
--- a/WebCore/platform/text/TextEncoding.cpp
+++ b/WebCore/platform/text/TextEncoding.cpp
@@ -248,7 +248,7 @@ const TextEncoding& ASCIIEncoding()
const TextEncoding& Latin1Encoding()
{
- static TextEncoding globalLatin1Encoding("Latin-1");
+ static TextEncoding globalLatin1Encoding("latin1");
return globalLatin1Encoding;
}
diff --git a/WebCore/platform/text/TextEncoding.h b/WebCore/platform/text/TextEncoding.h
index 3429bb5..675625b 100644
--- a/WebCore/platform/text/TextEncoding.h
+++ b/WebCore/platform/text/TextEncoding.h
@@ -27,17 +27,11 @@
#define TextEncoding_h
#include "TextCodec.h"
+#include <wtf/Forward.h>
#include <wtf/unicode/Unicode.h>
-namespace WTF {
-class CString;
-}
-using WTF::CString;
-
namespace WebCore {
- class String;
-
class TextEncoding {
public:
TextEncoding() : m_name(0) { }
@@ -75,7 +69,7 @@ namespace WebCore {
return decode(str, length, false, ignored);
}
String decode(const char*, size_t length, bool stopOnError, bool& sawError) const;
- WTF::CString encode(const UChar*, size_t length, UnencodableHandling) const;
+ CString encode(const UChar*, size_t length, UnencodableHandling) const;
UChar backslashAsCurrencySymbol() const;
diff --git a/WebCore/platform/text/TextEncodingRegistry.cpp b/WebCore/platform/text/TextEncodingRegistry.cpp
index 6ecc36f..40fcdc5 100644
--- a/WebCore/platform/text/TextEncodingRegistry.cpp
+++ b/WebCore/platform/text/TextEncodingRegistry.cpp
@@ -61,10 +61,7 @@ namespace WebCore {
const size_t maxEncodingNameLength = 63;
-// Hash for all-ASCII strings that does case folding and skips any characters
-// that are not alphanumeric. If passed any non-ASCII characters, depends on
-// the behavior of isalnum -- if that returns false as it does on OS X, then
-// it will properly skip those characters too.
+// Hash for all-ASCII strings that does case folding.
struct TextEncodingNameHash {
static bool equal(const char* s1, const char* s2)
@@ -72,12 +69,8 @@ struct TextEncodingNameHash {
char c1;
char c2;
do {
- do
- c1 = *s1++;
- while (c1 && !isASCIIAlphanumeric(c1));
- do
- c2 = *s2++;
- while (c2 && !isASCIIAlphanumeric(c2));
+ c1 = *s1++;
+ c2 = *s2++;
if (toASCIILower(c1) != toASCIILower(c2))
return false;
} while (c1 && c2);
@@ -91,16 +84,13 @@ struct TextEncodingNameHash {
{
unsigned h = WTF::stringHashingStartValue;
for (;;) {
- char c;
- do {
- c = *s++;
- if (!c) {
- h += (h << 3);
- h ^= (h >> 11);
- h += (h << 15);
- return h;
- }
- } while (!isASCIIAlphanumeric(c));
+ char c = *s++;
+ if (!c) {
+ h += (h << 3);
+ h ^= (h >> 11);
+ h += (h << 15);
+ return h;
+ }
h += toASCIILower(c);
h += (h << 10);
h ^= (h >> 6);
@@ -154,15 +144,30 @@ static void checkExistingName(const char* alias, const char* atomicName)
&& strcmp(oldAtomicName, "ISO-8859-8-I") == 0
&& strcasecmp(atomicName, "iso-8859-8") == 0)
return;
- LOG_ERROR("alias %s maps to %s already, but someone is trying to make it map to %s",
- alias, oldAtomicName, atomicName);
+ LOG_ERROR("alias %s maps to %s already, but someone is trying to make it map to %s", alias, oldAtomicName, atomicName);
}
#endif
+static bool isUndesiredAlias(const char* alias)
+{
+ // Reject aliases with version numbers that are supported by some back-ends (such as "ISO_2022,locale=ja,version=0" in ICU).
+ for (const char* p = alias; *p; ++p) {
+ if (*p == ',')
+ return true;
+ }
+ // 8859_1 is known to (at least) ICU, but other browsers don't support this name - and having it caused a compatibility
+ // problem, see bug 43554.
+ if (0 == strcmp(alias, "8859_1"))
+ return true;
+ return false;
+}
+
static void addToTextEncodingNameMap(const char* alias, const char* name)
{
ASSERT(strlen(alias) <= maxEncodingNameLength);
+ if (isUndesiredAlias(alias))
+ return;
const char* atomicName = textEncodingNameMap->get(name);
ASSERT(strcmp(alias, name) == 0 || atomicName);
if (!atomicName)
@@ -300,11 +305,9 @@ const char* atomicCanonicalTextEncodingName(const UChar* characters, size_t leng
size_t j = 0;
for (size_t i = 0; i < length; ++i) {
UChar c = characters[i];
- if (isASCIIAlphanumeric(c)) {
- if (j == maxEncodingNameLength)
- return 0;
- buffer[j++] = c;
- }
+ if (j == maxEncodingNameLength)
+ return 0;
+ buffer[j++] = c;
}
buffer[j] = 0;
return atomicCanonicalTextEncodingName(buffer);
diff --git a/WebCore/platform/text/TextStream.h b/WebCore/platform/text/TextStream.h
index f5e512c..e7e4cc0 100644
--- a/WebCore/platform/text/TextStream.h
+++ b/WebCore/platform/text/TextStream.h
@@ -26,13 +26,12 @@
#ifndef TextStream_h
#define TextStream_h
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
#include <wtf/unicode/Unicode.h>
namespace WebCore {
-class String;
-
class TextStream {
public:
TextStream& operator<<(bool);
diff --git a/WebCore/platform/text/android/HyphenationAndroid.cpp b/WebCore/platform/text/android/HyphenationAndroid.cpp
index 00ebd46..e8ba5ef 100644
--- a/WebCore/platform/text/android/HyphenationAndroid.cpp
+++ b/WebCore/platform/text/android/HyphenationAndroid.cpp
@@ -57,7 +57,13 @@ static HyphenDict* loadHyphenationDictionary()
return dict;
}
-size_t lastHyphenLocation(const UChar* characters, size_t length, size_t beforeIndex)
+bool canHyphenate(const AtomicString& /* localeIdentifier */)
+{
+ // FIXME: Check that the locale identifier matches the available dictionary.
+ return true;
+}
+
+size_t lastHyphenLocation(const UChar* characters, size_t length, size_t beforeIndex, const AtomicString& /* localeIdentifier */)
{
static const size_t minWordLen = 5;
static const size_t maxWordLen = 100;
diff --git a/WebCore/platform/text/cf/HyphenationCF.cpp b/WebCore/platform/text/cf/HyphenationCF.cpp
index 50ba4c8..b983979 100644
--- a/WebCore/platform/text/cf/HyphenationCF.cpp
+++ b/WebCore/platform/text/cf/HyphenationCF.cpp
@@ -28,24 +28,43 @@
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+#include "AtomicString.h"
+#include "AtomicStringKeyedMRUCache.h"
#include "TextBreakIteratorInternalICU.h"
+#include <wtf/ListHashSet.h>
#include <wtf/RetainPtr.h>
namespace WebCore {
-static CFLocaleRef createCurrentSearchLocale()
+template<>
+RetainPtr<CFLocaleRef> AtomicStringKeyedMRUCache<RetainPtr<CFLocaleRef> >::createValueForNullKey()
{
- RetainPtr<CFStringRef> localeIdentifier(AdoptCF, CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, (const UInt8*)currentSearchLocaleID(), strlen(currentSearchLocaleID()), kCFStringEncodingASCII, false, kCFAllocatorNull));
- return CFLocaleCreate(kCFAllocatorDefault, localeIdentifier.get());
+ RetainPtr<CFStringRef> cfLocaleIdentifier(AdoptCF, CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, reinterpret_cast<const UInt8*>(currentSearchLocaleID()), strlen(currentSearchLocaleID()), kCFStringEncodingASCII, false, kCFAllocatorNull));
+ RetainPtr<CFLocaleRef> locale(AdoptCF, CFLocaleCreate(kCFAllocatorDefault, cfLocaleIdentifier.get()));
+ return locale;
}
-size_t lastHyphenLocation(const UChar* characters, size_t length, size_t beforeIndex)
+template<>
+RetainPtr<CFLocaleRef> AtomicStringKeyedMRUCache<RetainPtr<CFLocaleRef> >::createValueForKey(const AtomicString& localeIdentifier)
+{
+ RetainPtr<CFStringRef> cfLocaleIdentifier(AdoptCF, localeIdentifier.createCFString());
+ RetainPtr<CFLocaleRef> locale(AdoptCF, CFLocaleCreate(kCFAllocatorDefault, cfLocaleIdentifier.get()));
+ return locale;
+}
+
+bool canHyphenate(const AtomicString& /* localeIdentifer */)
+{
+ return true;
+}
+
+size_t lastHyphenLocation(const UChar* characters, size_t length, size_t beforeIndex, const AtomicString& localeIdentifier)
{
RetainPtr<CFStringRef> string(AdoptCF, CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, characters, length, kCFAllocatorNull));
- static CFLocaleRef locale = createCurrentSearchLocale();
+ DEFINE_STATIC_LOCAL(AtomicStringKeyedMRUCache<RetainPtr<CFLocaleRef> >, cfLocaleCache, ());
+ RetainPtr<CFLocaleRef> locale = cfLocaleCache.get(localeIdentifier);
- CFIndex result = CFStringGetHyphenationLocationBeforeIndex(string.get(), beforeIndex, CFRangeMake(0, length), 0, locale, 0);
+ CFIndex result = CFStringGetHyphenationLocationBeforeIndex(string.get(), beforeIndex, CFRangeMake(0, length), 0, locale.get(), 0);
return result == kCFNotFound ? 0 : result;
}
diff --git a/WebCore/platform/text/cf/StringCF.cpp b/WebCore/platform/text/cf/StringCF.cpp
index 97691e5..dcaf8fb 100644
--- a/WebCore/platform/text/cf/StringCF.cpp
+++ b/WebCore/platform/text/cf/StringCF.cpp
@@ -25,7 +25,7 @@
#include <CoreFoundation/CoreFoundation.h>
-namespace WebCore {
+namespace WTF {
String::String(CFStringRef str)
{
diff --git a/WebCore/platform/text/cf/StringImplCF.cpp b/WebCore/platform/text/cf/StringImplCF.cpp
index aff45b3..18e137f 100644
--- a/WebCore/platform/text/cf/StringImplCF.cpp
+++ b/WebCore/platform/text/cf/StringImplCF.cpp
@@ -32,7 +32,7 @@
#include <objc/objc-auto.h>
#endif
-namespace WebCore {
+namespace WTF {
namespace StringWrapperCFAllocator {
@@ -50,7 +50,7 @@ namespace StringWrapperCFAllocator {
static CFStringRef copyDescription(const void*)
{
- return CFSTR("WebCore::String-based allocator");
+ return CFSTR("WTF::String-based allocator");
}
static void* allocate(CFIndex size, CFOptionFlags, void*)
diff --git a/WebCore/platform/text/haiku/StringHaiku.cpp b/WebCore/platform/text/haiku/StringHaiku.cpp
index 7436ce2..96d6676 100644
--- a/WebCore/platform/text/haiku/StringHaiku.cpp
+++ b/WebCore/platform/text/haiku/StringHaiku.cpp
@@ -29,7 +29,7 @@
#include <String.h>
-namespace WebCore {
+namespace WTF {
// String conversions
String::String(const BString& string)
diff --git a/WebCore/platform/text/mac/HyphenationMac.mm b/WebCore/platform/text/mac/HyphenationMac.mm
index e64477f..56122df 100644
--- a/WebCore/platform/text/mac/HyphenationMac.mm
+++ b/WebCore/platform/text/mac/HyphenationMac.mm
@@ -28,17 +28,39 @@
#if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD)
+#import "AtomicString.h"
+#import "AtomicStringKeyedMRUCache.h"
#import "TextBreakIteratorInternalICU.h"
#import "WebCoreSystemInterface.h"
#import <wtf/RetainPtr.h>
namespace WebCore {
-size_t lastHyphenLocation(const UChar* characters, size_t length, size_t beforeIndex)
+template<>
+bool AtomicStringKeyedMRUCache<bool>::createValueForNullKey()
{
- static bool localeIsEnglish = !strcmp("en", currentSearchLocaleID());
- if (!localeIsEnglish)
- return 0;
+ return !strcmp(currentSearchLocaleID(), "en");
+}
+
+template<>
+bool AtomicStringKeyedMRUCache<bool>::createValueForKey(const AtomicString& localeIdentifier)
+{
+ RetainPtr<CFStringRef> cfLocaleIdentifier(AdoptCF, localeIdentifier.createCFString());
+ RetainPtr<CFDictionaryRef> components(AdoptCF, CFLocaleCreateComponentsFromLocaleIdentifier(kCFAllocatorDefault, cfLocaleIdentifier.get()));
+ CFStringRef language = reinterpret_cast<CFStringRef>(CFDictionaryGetValue(components.get(), kCFLocaleLanguageCode));
+ static CFStringRef englishLanguage = CFSTR("en");
+ return language && CFEqual(language, englishLanguage);
+}
+
+bool canHyphenate(const AtomicString& localeIdentifier)
+{
+ DEFINE_STATIC_LOCAL(AtomicStringKeyedMRUCache<bool>, isEnglishCache, ());
+ return isEnglishCache.get(localeIdentifier);
+}
+
+size_t lastHyphenLocation(const UChar* characters, size_t length, size_t beforeIndex, const AtomicString& localeIdentifier)
+{
+ ASSERT_UNUSED(localeIdentifier, canHyphenate(localeIdentifier));
RetainPtr<CFStringRef> string(AdoptCF, CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, characters, length, kCFAllocatorNull));
return wkGetHyphenationLocationBeforeIndex(string.get(), beforeIndex);
diff --git a/WebCore/platform/text/mac/StringImplMac.mm b/WebCore/platform/text/mac/StringImplMac.mm
index d14c6d8..843f396 100644
--- a/WebCore/platform/text/mac/StringImplMac.mm
+++ b/WebCore/platform/text/mac/StringImplMac.mm
@@ -23,7 +23,7 @@
#include "FoundationExtras.h"
-namespace WebCore {
+namespace WTF {
StringImpl::operator NSString *()
{
diff --git a/WebCore/platform/text/mac/StringMac.mm b/WebCore/platform/text/mac/StringMac.mm
index 758ae1d..7e98b2b 100644
--- a/WebCore/platform/text/mac/StringMac.mm
+++ b/WebCore/platform/text/mac/StringMac.mm
@@ -22,7 +22,7 @@
#include "PlatformString.h"
#include <CoreFoundation/CFString.h>
-namespace WebCore {
+namespace WTF {
String::String(NSString* str)
{
diff --git a/WebCore/platform/text/wx/StringWx.cpp b/WebCore/platform/text/wx/StringWx.cpp
index 5302a85..7302edc 100644
--- a/WebCore/platform/text/wx/StringWx.cpp
+++ b/WebCore/platform/text/wx/StringWx.cpp
@@ -32,7 +32,7 @@
#include <wx/defs.h>
#include <wx/string.h>
-namespace WebCore {
+namespace WTF {
// String conversions
String::String(const wxString& wxstr)
diff --git a/WebCore/platform/win/BString.h b/WebCore/platform/win/BString.h
index c32a49d..bdbf189 100644
--- a/WebCore/platform/win/BString.h
+++ b/WebCore/platform/win/BString.h
@@ -26,6 +26,8 @@
#ifndef BString_h
#define BString_h
+#include <wtf/Forward.h>
+
#if PLATFORM(CF)
typedef const struct __CFString * CFStringRef;
#endif
@@ -38,9 +40,7 @@ namespace JSC {
namespace WebCore {
- class AtomicString;
class KURL;
- class String;
class BString {
public:
diff --git a/WebCore/platform/win/ClipboardUtilitiesWin.h b/WebCore/platform/win/ClipboardUtilitiesWin.h
index fe01499..1a29e7e 100644
--- a/WebCore/platform/win/ClipboardUtilitiesWin.h
+++ b/WebCore/platform/win/ClipboardUtilitiesWin.h
@@ -28,12 +28,12 @@
#include "DragData.h"
#include <windows.h>
+#include <wtf/Forward.h>
namespace WebCore {
class Document;
class KURL;
-class String;
HGLOBAL createGlobalData(const String&);
HGLOBAL createGlobalData(const Vector<char>&);
diff --git a/WebCore/platform/win/SearchPopupMenuWin.cpp b/WebCore/platform/win/SearchPopupMenuWin.cpp
index e1bbe68..6655b1b 100644
--- a/WebCore/platform/win/SearchPopupMenuWin.cpp
+++ b/WebCore/platform/win/SearchPopupMenuWin.cpp
@@ -22,7 +22,10 @@
#include "SearchPopupMenuWin.h"
#include "AtomicString.h"
+
+#if PLATFORM(CF)
#include <wtf/RetainPtr.h>
+#endif
namespace WebCore {
@@ -38,20 +41,27 @@ PopupMenu* SearchPopupMenuWin::popupMenu()
bool SearchPopupMenuWin::enabled()
{
+#if PLATFORM(CF)
return true;
+#else
+ return false;
+#endif
}
+#if PLATFORM(CF)
static RetainPtr<CFStringRef> autosaveKey(const String& name)
{
String key = "com.apple.WebKit.searchField:" + name;
return RetainPtr<CFStringRef>(AdoptCF, key.createCFString());
}
+#endif
void SearchPopupMenuWin::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
{
if (name.isEmpty())
return;
+#if PLATFORM(CF)
RetainPtr<CFMutableArrayRef> items;
size_t size = searchItems.size();
@@ -65,6 +75,7 @@ void SearchPopupMenuWin::saveRecentSearches(const AtomicString& name, const Vect
CFPreferencesSetAppValue(autosaveKey(name).get(), items.get(), kCFPreferencesCurrentApplication);
CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
+#endif
}
void SearchPopupMenuWin::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
@@ -72,6 +83,7 @@ void SearchPopupMenuWin::loadRecentSearches(const AtomicString& name, Vector<Str
if (name.isEmpty())
return;
+#if PLATFORM(CF)
searchItems.clear();
RetainPtr<CFArrayRef> items(AdoptCF, reinterpret_cast<CFArrayRef>(CFPreferencesCopyAppValue(autosaveKey(name).get(), kCFPreferencesCurrentApplication)));
@@ -84,6 +96,7 @@ void SearchPopupMenuWin::loadRecentSearches(const AtomicString& name, Vector<Str
if (CFGetTypeID(item) == CFStringGetTypeID())
searchItems.append(item);
}
+#endif
}
}
diff --git a/WebCore/platform/win/WCDataObject.h b/WebCore/platform/win/WCDataObject.h
index bdfb013..133115d 100644
--- a/WebCore/platform/win/WCDataObject.h
+++ b/WebCore/platform/win/WCDataObject.h
@@ -26,14 +26,13 @@
#ifndef WCDataObject_h
#define WCDataObject_h
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
#include <ShlObj.h>
#include <objidl.h>
namespace WebCore {
-class String;
-
class WCDataObject : public IDataObject {
public:
void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
diff --git a/WebCore/platform/win/WebCoreTextRenderer.h b/WebCore/platform/win/WebCoreTextRenderer.h
index 7b72946..7efc1f3 100644
--- a/WebCore/platform/win/WebCoreTextRenderer.h
+++ b/WebCore/platform/win/WebCoreTextRenderer.h
@@ -23,13 +23,14 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <wtf/Forward.h>
+
namespace WebCore {
class Color;
class Font;
class GraphicsContext;
class IntPoint;
- class String;
void WebCoreDrawTextAtPoint(GraphicsContext&, const String&, const IntPoint&, const Font&, const Color&, int underlinedIndex = -1);
void WebCoreDrawDoubledTextAtPoint(GraphicsContext&, const String&, const IntPoint&, const Font&, const Color& topColor, const Color& bottomColor, int underlinedIndex = -1);
diff --git a/WebCore/platform/wx/ClipboardWx.cpp b/WebCore/platform/wx/ClipboardWx.cpp
index 25bef55..336881d 100644
--- a/WebCore/platform/wx/ClipboardWx.cpp
+++ b/WebCore/platform/wx/ClipboardWx.cpp
@@ -138,7 +138,7 @@ bool ClipboardWx::hasData()
return false;
}
-void ClipboardWx::writePlainText(const WebCore::String& text)
+void ClipboardWx::writePlainText(const WTF::String& text)
{
Pasteboard::generalPasteboard()->writePlainText(text);
}
diff --git a/WebCore/platform/wx/ClipboardWx.h b/WebCore/platform/wx/ClipboardWx.h
index b0c520b..45d1cf3 100644
--- a/WebCore/platform/wx/ClipboardWx.h
+++ b/WebCore/platform/wx/ClipboardWx.h
@@ -59,7 +59,7 @@ namespace WebCore {
virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*);
virtual void writeURL(const KURL&, const String&, Frame*);
virtual void writeRange(Range*, Frame*);
- virtual void writePlainText(const WebCore::String&);
+ virtual void writePlainText(const WTF::String&);
virtual bool hasData();
diff --git a/WebCore/plugins/DOMMimeType.h b/WebCore/plugins/DOMMimeType.h
index a010e33..cefdb48 100644
--- a/WebCore/plugins/DOMMimeType.h
+++ b/WebCore/plugins/DOMMimeType.h
@@ -20,6 +20,7 @@
#ifndef DOMMimeType_h
#define DOMMimeType_h
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/RefCounted.h>
@@ -29,7 +30,6 @@
namespace WebCore {
class DOMPlugin;
-class String;
class DOMMimeType : public RefCounted<DOMMimeType> {
public:
diff --git a/WebCore/plugins/DOMMimeTypeArray.h b/WebCore/plugins/DOMMimeTypeArray.h
index 2ccbfa0..ed078bb 100644
--- a/WebCore/plugins/DOMMimeTypeArray.h
+++ b/WebCore/plugins/DOMMimeTypeArray.h
@@ -22,13 +22,13 @@
#define DOMMimeTypeArray_h
#include "DOMMimeType.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
namespace WebCore {
-class AtomicString;
class Frame;
class PluginData;
diff --git a/WebCore/plugins/DOMPlugin.h b/WebCore/plugins/DOMPlugin.h
index f86234a..9700ab5 100644
--- a/WebCore/plugins/DOMPlugin.h
+++ b/WebCore/plugins/DOMPlugin.h
@@ -21,15 +21,14 @@
#define DOMPlugin_h
#include "DOMMimeType.h"
+#include <wtf/Forward.h>
#include <wtf/RefPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
-class AtomicString;
class Plugin;
class PluginData;
-class String;
class DOMPlugin : public RefCounted<DOMPlugin> {
public:
diff --git a/WebCore/plugins/DOMPluginArray.h b/WebCore/plugins/DOMPluginArray.h
index 0adb70a..cc70572 100644
--- a/WebCore/plugins/DOMPluginArray.h
+++ b/WebCore/plugins/DOMPluginArray.h
@@ -22,13 +22,13 @@
#define DOMPluginArray_h
#include "DOMPlugin.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
namespace WebCore {
-class AtomicString;
class Frame;
class PluginData;
diff --git a/WebCore/plugins/PluginViewNone.cpp b/WebCore/plugins/PluginViewNone.cpp
index a4cc358..eb32cd1 100644
--- a/WebCore/plugins/PluginViewNone.cpp
+++ b/WebCore/plugins/PluginViewNone.cpp
@@ -26,6 +26,10 @@
#include "config.h"
#include "PluginView.h"
+#if USE(JSC)
+#include "Bridge.h"
+#endif
+
using namespace WTF;
namespace WebCore {
@@ -135,13 +139,20 @@ void PluginView::handleFocusOutEvent()
// ports using PluginView, but until then, if new functions like this are
// added, please make sure they have the proper platform #ifs so that changes
// do not break ports who compile both this file and PluginView.cpp.
-#if PLATFORM(MAC) || PLATFORM(CHROMIUM) || PLATFORM(EFL)
+#if PLATFORM(MAC) || PLATFORM(CHROMIUM) || PLATFORM(EFL) || OS(WINCE) && !PLATFORM(QT)
#if ENABLE(NETSCAPE_PLUGIN_API)
void PluginView::keepAlive(NPP)
{
}
#endif
+#if USE(JSC)
+PassRefPtr<JSC::Bindings::Instance> PluginView::bindingInstance()
+{
+ return 0;
+}
+#endif
+
void PluginView::privateBrowsingStateChanged(bool)
{
}
diff --git a/WebCore/plugins/gtk/PluginViewGtk.cpp b/WebCore/plugins/gtk/PluginViewGtk.cpp
index 78c6636..ab43bf4 100644
--- a/WebCore/plugins/gtk/PluginViewGtk.cpp
+++ b/WebCore/plugins/gtk/PluginViewGtk.cpp
@@ -556,7 +556,7 @@ void PluginView::setParentVisible(bool visible)
NPError PluginView::handlePostReadFile(Vector<char>& buffer, uint32_t len, const char* buf)
{
- String filename(buf, len);
+ WTF::String filename(buf, len);
if (filename.startsWith("file:///"))
filename = filename.substring(8);
diff --git a/WebCore/plugins/mac/PluginViewMac.mm b/WebCore/plugins/mac/PluginViewMac.mm
index 8d64c24..e0ad135 100644
--- a/WebCore/plugins/mac/PluginViewMac.mm
+++ b/WebCore/plugins/mac/PluginViewMac.mm
@@ -227,7 +227,10 @@ bool PluginView::platformStart()
#endif
}
- show();
+ updatePluginWidget();
+
+ if (!m_plugin->quirks().contains(PluginQuirkDeferFirstSetWindowCall))
+ setNPWindowIfNeeded();
// TODO: Implement null timer throttling depending on plugin activation
m_nullEventTimer.set(new Timer<PluginView>(this, &PluginView::nullEventTimerFired));
diff --git a/WebCore/plugins/win/PluginDataWin.cpp b/WebCore/plugins/win/PluginDataWin.cpp
deleted file mode 100644
index 41fe073..0000000
--- a/WebCore/plugins/win/PluginDataWin.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
- Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "config.h"
-#include "PluginData.h"
-
-#include "PluginDatabase.h"
-#include "PluginPackage.h"
-
-namespace WebCore {
-
-void PluginData::initPlugins()
-{
- PluginDatabase *db = PluginDatabase::installedPlugins();
- const Vector<PluginPackage*> &plugins = db->plugins();
-
- for (unsigned int i = 0; i < plugins.size(); ++i) {
- PluginPackage* package = plugins[i];
-
- PluginInfo info;
- info.name = package->name();
- info.file = package->fileName();
- info.desc = package->description();
-
- const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions();
- MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
- for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
- MimeClassInfo mime;
-
- mime.type = it->first;
- mime.desc = it->second;
- mime.extensions = package->mimeToExtensions().get(mime.type);
-
- info.mimes.append(mime);
- }
-
- m_plugins.append(info);
- }
-}
-
-void PluginData::refresh()
-{
- PluginDatabase *db = PluginDatabase::installedPlugins();
- db->refresh();
-}
-
-};
diff --git a/WebCore/plugins/win/PluginMessageThrottlerWin.cpp b/WebCore/plugins/win/PluginMessageThrottlerWin.cpp
index dd1f05b..c5f3081 100644
--- a/WebCore/plugins/win/PluginMessageThrottlerWin.cpp
+++ b/WebCore/plugins/win/PluginMessageThrottlerWin.cpp
@@ -48,8 +48,8 @@ PluginMessageThrottlerWin::PluginMessageThrottlerWin(PluginView* pluginView)
: m_pluginView(pluginView)
, m_back(0)
, m_front(0)
- , m_lastMessageTime(0)
, m_messageThrottleTimer(this, &PluginMessageThrottlerWin::messageThrottleTimerFired)
+ , m_lastMessageTime(0)
{
// Initialize the free list with our inline messages
for (unsigned i = 0; i < NumInlineMessages - 1; i++)
diff --git a/WebCore/rendering/CounterNode.h b/WebCore/rendering/CounterNode.h
index 15f2eb8..e35fb61 100644
--- a/WebCore/rendering/CounterNode.h
+++ b/WebCore/rendering/CounterNode.h
@@ -22,6 +22,7 @@
#ifndef CounterNode_h
#define CounterNode_h
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
// This implements a counter tree that is used for finding parents in counters() lookup,
@@ -35,7 +36,6 @@
namespace WebCore {
-class AtomicString;
class RenderObject;
class CounterNode : public Noncopyable {
diff --git a/WebCore/rendering/HitTestResult.h b/WebCore/rendering/HitTestResult.h
index f47e2a5..3a42719 100644
--- a/WebCore/rendering/HitTestResult.h
+++ b/WebCore/rendering/HitTestResult.h
@@ -24,6 +24,7 @@
#include "IntRect.h"
#include "IntSize.h"
#include "TextDirection.h"
+#include <wtf/Forward.h>
#include <wtf/ListHashSet.h>
#include <wtf/RefPtr.h>
@@ -36,7 +37,6 @@ class IntRect;
class KURL;
class Node;
class Scrollbar;
-class String;
class HitTestResult {
public:
@@ -86,8 +86,8 @@ public:
IntRect rectFromPoint(int x, int y) const;
IntRect rectFromPoint(const IntPoint&) const;
IntSize padding() const { return m_padding; }
- int paddingWidth() const { return m_padding.width() >= 0 ? m_padding.width() : 0; }
- int paddingHeight() const { return m_padding.height() >= 0 ? m_padding.height() : 0; }
+ int paddingWidth() const { return m_padding.width(); }
+ int paddingHeight() const { return m_padding.height(); }
// Returns true if it is rect-based hit test and needs to continue until the rect is fully
// enclosed by the boundaries of a node.
bool addNodeToRectBasedTestResult(Node*, int x, int y, const IntRect& rect = IntRect());
diff --git a/WebCore/rendering/RenderBlockLineLayout.cpp b/WebCore/rendering/RenderBlockLineLayout.cpp
index 46dfd29..7cb1597 100644
--- a/WebCore/rendering/RenderBlockLineLayout.cpp
+++ b/WebCore/rendering/RenderBlockLineLayout.cpp
@@ -1445,7 +1445,7 @@ static inline unsigned textWidth(RenderText* text, unsigned from, unsigned len,
return font.width(TextRun(text->characters() + from, len, !collapseWhiteSpace, xPos));
}
-static void tryHyphenating(RenderText* text, const Font& font, int lastSpace, int pos, int xPos, int availableWidth, bool isFixedPitch, bool collapseWhiteSpace, int lastSpaceWordSpacing, InlineIterator& lineBreak, int nextBreakable, bool& hyphenated)
+static void tryHyphenating(RenderText* text, const Font& font, const AtomicString& localeIdentifier, int lastSpace, int pos, int xPos, int availableWidth, bool isFixedPitch, bool collapseWhiteSpace, int lastSpaceWordSpacing, InlineIterator& lineBreak, int nextBreakable, bool& hyphenated)
{
const AtomicString& hyphenString = text->style()->hyphenString();
int hyphenWidth = font.width(TextRun(hyphenString.characters(), hyphenString.length()));
@@ -1454,8 +1454,8 @@ static void tryHyphenating(RenderText* text, const Font& font, int lastSpace, in
if (!prefixLength)
return;
- prefixLength = 1 + lastHyphenLocation(text->characters() + lastSpace + 1, pos - lastSpace - 1, prefixLength - 1);
- if (prefixLength <= 1)
+ prefixLength = lastHyphenLocation(text->characters() + lastSpace, pos - lastSpace, prefixLength + 1, localeIdentifier);
+ if (!prefixLength)
return;
#if !ASSERT_DISABLED
@@ -1688,7 +1688,7 @@ InlineIterator RenderBlock::findNextLineBreak(InlineBidiResolver& resolver, bool
RenderStyle* style = t->style(firstLine);
const Font& f = style->font();
bool isFixedPitch = f.isFixedPitch();
- bool canHyphenate = style->hyphens() == HyphensAuto;
+ bool canHyphenate = style->hyphens() == HyphensAuto && WebCore::canHyphenate(style->hyphenationLocale());
int lastSpace = pos;
int wordSpacing = o->style()->wordSpacing();
@@ -1834,7 +1834,7 @@ InlineIterator RenderBlock::findNextLineBreak(InlineBidiResolver& resolver, bool
}
if (lineWasTooWide || w + tmpW > width) {
if (canHyphenate && w + tmpW > width) {
- tryHyphenating(t, f, lastSpace, pos, w + tmpW - additionalTmpW, width, isFixedPitch, collapseWhiteSpace, lastSpaceWordSpacing, lBreak, nextBreakable, hyphenated);
+ tryHyphenating(t, f, style->hyphenationLocale(), lastSpace, pos, w + tmpW - additionalTmpW, width, isFixedPitch, collapseWhiteSpace, lastSpaceWordSpacing, lBreak, nextBreakable, hyphenated);
if (hyphenated)
goto end;
}
@@ -1948,7 +1948,7 @@ InlineIterator RenderBlock::findNextLineBreak(InlineBidiResolver& resolver, bool
tmpW += inlineWidth(o, !appliedStartWidth, true);
if (canHyphenate && w + tmpW > width) {
- tryHyphenating(t, f, lastSpace, pos, w + tmpW - additionalTmpW, width, isFixedPitch, collapseWhiteSpace, lastSpaceWordSpacing, lBreak, nextBreakable, hyphenated);
+ tryHyphenating(t, f, style->hyphenationLocale(), lastSpace, pos, w + tmpW - additionalTmpW, width, isFixedPitch, collapseWhiteSpace, lastSpaceWordSpacing, lBreak, nextBreakable, hyphenated);
if (hyphenated)
goto end;
}
diff --git a/WebCore/rendering/RenderBoxModelObject.cpp b/WebCore/rendering/RenderBoxModelObject.cpp
index 4ddd66b..9117ed8 100644
--- a/WebCore/rendering/RenderBoxModelObject.cpp
+++ b/WebCore/rendering/RenderBoxModelObject.cpp
@@ -1526,7 +1526,7 @@ void RenderBoxModelObject::clipBorderSidePolygon(GraphicsContext* graphicsContex
firstQuad[0] = quad[0];
firstQuad[1] = quad[1];
firstQuad[2] = side == BSTop || side == BSBottom ? FloatPoint(quad[3].x(), quad[2].y())
- : firstQuad[2] = FloatPoint(quad[2].x(), quad[3].y());
+ : FloatPoint(quad[2].x(), quad[3].y());
firstQuad[3] = quad[3];
graphicsContext->clipConvexPolygon(4, firstQuad, !firstEdgeMatches);
diff --git a/WebCore/rendering/RenderLayer.cpp b/WebCore/rendering/RenderLayer.cpp
index 51b9326..cc7eed0 100644
--- a/WebCore/rendering/RenderLayer.cpp
+++ b/WebCore/rendering/RenderLayer.cpp
@@ -3902,7 +3902,7 @@ void showLayerTree(const WebCore::RenderLayer* layer)
return;
if (WebCore::Frame* frame = layer->renderer()->frame()) {
- WebCore::String output = externalRepresentation(frame, WebCore::RenderAsTextShowAllLayers | WebCore::RenderAsTextShowLayerNesting | WebCore::RenderAsTextShowCompositedLayers | WebCore::RenderAsTextShowAddresses | WebCore::RenderAsTextShowIDAndClass);
+ WTF::String output = externalRepresentation(frame, WebCore::RenderAsTextShowAllLayers | WebCore::RenderAsTextShowLayerNesting | WebCore::RenderAsTextShowCompositedLayers | WebCore::RenderAsTextShowAddresses | WebCore::RenderAsTextShowIDAndClass);
fprintf(stderr, "%s\n", output.utf8().data());
}
}
diff --git a/WebCore/rendering/RenderLayerBacking.cpp b/WebCore/rendering/RenderLayerBacking.cpp
index e1cf2a2..421196b 100644
--- a/WebCore/rendering/RenderLayerBacking.cpp
+++ b/WebCore/rendering/RenderLayerBacking.cpp
@@ -28,13 +28,12 @@
#if USE(ACCELERATED_COMPOSITING)
#include "AnimationController.h"
-#if ENABLE(3D_CANVAS)
-#include "WebGLRenderingContext.h"
-#endif
+#include "CanvasRenderingContext.h"
#include "CSSPropertyNames.h"
#include "CSSStyleSelector.h"
#include "FrameView.h"
#include "GraphicsContext.h"
+#include "GraphicsContext3D.h"
#include "GraphicsLayer.h"
#include "HTMLCanvasElement.h"
#include "HTMLElement.h"
@@ -70,11 +69,14 @@ static bool hasBoxDecorationsOrBackground(const RenderObject*);
static bool hasBoxDecorationsOrBackgroundImage(const RenderStyle*);
static IntRect clipBox(RenderBox* renderer);
-static inline bool is3DCanvas(RenderObject* renderer)
+static inline bool isAcceleratedCanvas(RenderObject* renderer)
{
-#if ENABLE(3D_CANVAS)
- if (renderer->isCanvas())
- return static_cast<HTMLCanvasElement*>(renderer->node())->is3D();
+#if ENABLE(3D_CANVAS) || ENABLE(ACCELERATED_2D_CANVAS)
+ if (renderer->isCanvas()) {
+ HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(renderer->node());
+ if (CanvasRenderingContext* context = canvas->renderingContext())
+ return context->isAccelerated();
+ }
#else
UNUSED_PARAM(renderer);
#endif
@@ -256,12 +258,13 @@ bool RenderLayerBacking::updateGraphicsLayerConfiguration()
m_graphicsLayer->setContentsToMedia(mediaElement->platformLayer());
}
#endif
-#if ENABLE(3D_CANVAS)
- else if (is3DCanvas(renderer())) {
+#if ENABLE(3D_CANVAS) || ENABLE(ACCELERATED_2D_CANVAS)
+ else if (isAcceleratedCanvas(renderer())) {
HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(renderer()->node());
- WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(canvas->renderingContext());
- if (context->graphicsContext3D()->platformLayer())
- m_graphicsLayer->setContentsToWebGL(context->graphicsContext3D()->platformLayer());
+ if (CanvasRenderingContext* context = canvas->renderingContext())
+ if (context->graphicsContext3D())
+ if (PlatformLayer* pl = context->graphicsContext3D()->platformLayer())
+ m_graphicsLayer->setContentsToCanvas(pl);
}
#endif
@@ -772,8 +775,14 @@ bool RenderLayerBacking::containsPaintedContent() const
// FIXME: we could optimize cases where the image, video or canvas is known to fill the border box entirely,
// and set background color on the layer in that case, instead of allocating backing store and painting.
- if (renderer()->isVideo() || is3DCanvas(renderer()))
+#if ENABLE(VIDEO)
+ if (renderer()->isVideo() && toRenderVideo(renderer())->shouldDisplayVideo())
return hasBoxDecorationsOrBackground(renderer());
+#endif
+#if ENABLE(3D_CANVAS) || ENABLE(ACCELERATED_2D_CANVAS)
+ if (isAcceleratedCanvas(renderer()))
+ return hasBoxDecorationsOrBackground(renderer());
+#endif
return true;
}
@@ -793,8 +802,8 @@ void RenderLayerBacking::rendererContentChanged()
return;
}
-#if ENABLE(3D_CANVAS)
- if (is3DCanvas(renderer())) {
+#if ENABLE(3D_CANVAS) || ENABLE(ACCELERATED_2D_CANVAS)
+ if (isAcceleratedCanvas(renderer())) {
m_graphicsLayer->setContentsNeedsDisplay();
return;
}
diff --git a/WebCore/rendering/RenderLayerCompositor.cpp b/WebCore/rendering/RenderLayerCompositor.cpp
index b60dec9..12c8a56 100644
--- a/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/WebCore/rendering/RenderLayerCompositor.cpp
@@ -1249,7 +1249,7 @@ bool RenderLayerCompositor::requiresCompositingForVideo(RenderObject* renderer)
#if ENABLE(VIDEO)
if (renderer->isVideo()) {
RenderVideo* video = toRenderVideo(renderer);
- return canAccelerateVideoRendering(video);
+ return video->shouldDisplayVideo() && canAccelerateVideoRendering(video);
}
#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
else if (renderer->isRenderPart()) {
diff --git a/WebCore/rendering/RenderObject.h b/WebCore/rendering/RenderObject.h
index 46169d0..d2046cf 100644
--- a/WebCore/rendering/RenderObject.h
+++ b/WebCore/rendering/RenderObject.h
@@ -38,7 +38,7 @@
#include "TransformationMatrix.h"
#include <wtf/UnusedParam.h>
-#if PLATFORM(CG) || PLATFORM(CAIRO)
+#if PLATFORM(CG) || PLATFORM(CAIRO) || PLATFORM(QT)
#define HAVE_PATH_BASED_BORDER_RADIUS_DRAWING 1
#endif
diff --git a/WebCore/rendering/RenderObjectChildList.h b/WebCore/rendering/RenderObjectChildList.h
index ba73c50..8b80f37 100644
--- a/WebCore/rendering/RenderObjectChildList.h
+++ b/WebCore/rendering/RenderObjectChildList.h
@@ -27,10 +27,10 @@
#define RenderObjectChildList_h
#include "RenderStyleConstants.h"
+#include <wtf/Forward.h>
namespace WebCore {
-class AtomicString;
class RenderObject;
class RenderObjectChildList {
diff --git a/WebCore/rendering/RenderPath.cpp b/WebCore/rendering/RenderPath.cpp
index 915be5d..ddc2c45 100644
--- a/WebCore/rendering/RenderPath.cpp
+++ b/WebCore/rendering/RenderPath.cpp
@@ -257,8 +257,7 @@ FloatRect RenderPath::calculateMarkerBoundsIfNeeded()
if (!markerStart && !markerMid && !markerEnd)
return FloatRect();
- float strokeWidth = SVGRenderStyle::cssPrimitiveToLength(this, svgStyle->strokeWidth(), 1.0f);
- return m_markerLayoutInfo.calculateBoundaries(markerStart, markerMid, markerEnd, strokeWidth, m_path);
+ return m_markerLayoutInfo.calculateBoundaries(markerStart, markerMid, markerEnd, svgStyle->strokeWidth().value(svgElement), m_path);
}
void RenderPath::styleWillChange(StyleDifference diff, const RenderStyle* newStyle)
diff --git a/WebCore/rendering/RenderSVGImage.cpp b/WebCore/rendering/RenderSVGImage.cpp
index 5a92e33..993278c 100644
--- a/WebCore/rendering/RenderSVGImage.cpp
+++ b/WebCore/rendering/RenderSVGImage.cpp
@@ -179,6 +179,9 @@ void RenderSVGImage::imageChanged(WrappedImagePtr image, const IntRect* rect)
if (SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(this))
resources->invalidateClient(this);
+ // Eventually notify parent resources, that we've changed.
+ RenderSVGResource::markForLayoutAndParentResourceInvalidation(this, false);
+
repaint();
}
diff --git a/WebCore/rendering/RenderSVGResourceClipper.h b/WebCore/rendering/RenderSVGResourceClipper.h
index 3c76bc8..d334c7d 100644
--- a/WebCore/rendering/RenderSVGResourceClipper.h
+++ b/WebCore/rendering/RenderSVGResourceClipper.h
@@ -36,7 +36,7 @@
namespace WebCore {
-struct ClipperData {
+struct ClipperData : FastAllocBase {
OwnPtr<ImageBuffer> clipMaskImage;
};
diff --git a/WebCore/rendering/RenderSVGText.cpp b/WebCore/rendering/RenderSVGText.cpp
index c4fc353..20c8a7c 100644
--- a/WebCore/rendering/RenderSVGText.cpp
+++ b/WebCore/rendering/RenderSVGText.cpp
@@ -163,10 +163,13 @@ void RenderSVGText::paint(PaintInfo& paintInfo, int, int)
FloatRect RenderSVGText::strokeBoundingBox() const
{
FloatRect strokeBoundaries = objectBoundingBox();
- if (!style()->svgStyle()->hasStroke())
+ const SVGRenderStyle* svgStyle = style()->svgStyle();
+ if (!svgStyle->hasStroke())
return strokeBoundaries;
- strokeBoundaries.inflate(SVGRenderStyle::cssPrimitiveToLength(this, style()->svgStyle()->strokeWidth(), 1.0f));
+ ASSERT(node());
+ ASSERT(node()->isSVGElement());
+ strokeBoundaries.inflate(svgStyle->strokeWidth().value(static_cast<SVGElement*>(node())));
return strokeBoundaries;
}
diff --git a/WebCore/rendering/RenderScrollbar.cpp b/WebCore/rendering/RenderScrollbar.cpp
index 817dd02..7378056 100644
--- a/WebCore/rendering/RenderScrollbar.cpp
+++ b/WebCore/rendering/RenderScrollbar.cpp
@@ -26,19 +26,22 @@
#include "config.h"
#include "RenderScrollbar.h"
+#include "Frame.h"
+#include "RenderPart.h"
#include "RenderScrollbarPart.h"
#include "RenderScrollbarTheme.h"
namespace WebCore {
-PassRefPtr<Scrollbar> RenderScrollbar::createCustomScrollbar(ScrollbarClient* client, ScrollbarOrientation orientation, RenderBox* renderer)
+PassRefPtr<Scrollbar> RenderScrollbar::createCustomScrollbar(ScrollbarClient* client, ScrollbarOrientation orientation, RenderBox* renderer, Frame* owningFrame)
{
- return adoptRef(new RenderScrollbar(client, orientation, renderer));
+ return adoptRef(new RenderScrollbar(client, orientation, renderer, owningFrame));
}
-RenderScrollbar::RenderScrollbar(ScrollbarClient* client, ScrollbarOrientation orientation, RenderBox* renderer)
+RenderScrollbar::RenderScrollbar(ScrollbarClient* client, ScrollbarOrientation orientation, RenderBox* renderer, Frame* owningFrame)
: Scrollbar(client, orientation, RegularScrollbar, RenderScrollbarTheme::renderScrollbarTheme())
, m_owner(renderer)
+ , m_owningFrame(owningFrame)
{
// FIXME: We need to do this because RenderScrollbar::styleChanged is called as soon as the scrollbar is created.
@@ -57,6 +60,15 @@ RenderScrollbar::~RenderScrollbar()
ASSERT(m_parts.isEmpty());
}
+RenderBox* RenderScrollbar::owningRenderer() const
+{
+ if (m_owningFrame) {
+ RenderBox* currentRenderer = m_owningFrame->ownerRenderer();
+ return currentRenderer;
+ }
+ return m_owner;
+}
+
void RenderScrollbar::setParent(ScrollView* parent)
{
Scrollbar::setParent(parent);
@@ -135,7 +147,7 @@ PassRefPtr<RenderStyle> RenderScrollbar::getScrollbarPseudoStyle(ScrollbarPart p
s_styleResolvePart = partType;
s_styleResolveScrollbar = this;
- RefPtr<RenderStyle> result = m_owner->getUncachedPseudoStyle(pseudoId, m_owner->style());
+ RefPtr<RenderStyle> result = owningRenderer()->getUncachedPseudoStyle(pseudoId, owningRenderer()->style());
s_styleResolvePart = NoPart;
s_styleResolveScrollbar = 0;
return result;
@@ -168,7 +180,7 @@ void RenderScrollbar::updateScrollbarParts(bool destroy)
if (newThickness != oldThickness) {
setFrameRect(IntRect(x(), y(), isHorizontal ? width() : newThickness, isHorizontal ? newThickness : height()));
- m_owner->setChildNeedsLayout(true);
+ owningRenderer()->setChildNeedsLayout(true);
}
}
@@ -231,7 +243,7 @@ void RenderScrollbar::updateScrollbarPart(ScrollbarPart partType, bool destroy)
RenderScrollbarPart* partRenderer = m_parts.get(partType);
if (!partRenderer && needRenderer) {
- partRenderer = new (m_owner->renderArena()) RenderScrollbarPart(m_owner->document(), this, partType);
+ partRenderer = new (owningRenderer()->renderArena()) RenderScrollbarPart(owningRenderer()->document(), this, partType);
m_parts.set(partType, partRenderer);
} else if (partRenderer && !needRenderer) {
m_parts.remove(partType);
diff --git a/WebCore/rendering/RenderScrollbar.h b/WebCore/rendering/RenderScrollbar.h
index 8cc263a..de70624 100644
--- a/WebCore/rendering/RenderScrollbar.h
+++ b/WebCore/rendering/RenderScrollbar.h
@@ -32,23 +32,24 @@
namespace WebCore {
+class Frame;
class RenderBox;
class RenderScrollbarPart;
class RenderStyle;
class RenderScrollbar : public Scrollbar {
protected:
- RenderScrollbar(ScrollbarClient*, ScrollbarOrientation, RenderBox*);
+ RenderScrollbar(ScrollbarClient*, ScrollbarOrientation, RenderBox*, Frame*);
public:
friend class Scrollbar;
- static PassRefPtr<Scrollbar> createCustomScrollbar(ScrollbarClient*, ScrollbarOrientation, RenderBox*);
+ static PassRefPtr<Scrollbar> createCustomScrollbar(ScrollbarClient*, ScrollbarOrientation, RenderBox*, Frame* owningFrame = 0);
virtual ~RenderScrollbar();
static ScrollbarPart partForStyleResolve();
static RenderScrollbar* scrollbarForStyleResolve();
- RenderBox* owningRenderer() const { return m_owner; }
+ RenderBox* owningRenderer() const;
void clearOwningRenderer() { m_owner = 0; }
void paintPart(GraphicsContext*, ScrollbarPart, const IntRect&);
@@ -78,6 +79,7 @@ private:
void updateScrollbarPart(ScrollbarPart, bool destroy = false);
RenderBox* m_owner;
+ Frame* m_owningFrame;
HashMap<unsigned, RenderScrollbarPart*> m_parts;
};
diff --git a/WebCore/rendering/RenderScrollbarPart.cpp b/WebCore/rendering/RenderScrollbarPart.cpp
index d2f1612..ea61e24 100644
--- a/WebCore/rendering/RenderScrollbarPart.cpp
+++ b/WebCore/rendering/RenderScrollbarPart.cpp
@@ -86,6 +86,8 @@ static int calcScrollbarThicknessUsing(const Length& l, int containingLength)
void RenderScrollbarPart::computeScrollbarWidth()
{
+ if (!m_scrollbar->owningRenderer())
+ return;
int visibleSize = m_scrollbar->owningRenderer()->width() - m_scrollbar->owningRenderer()->borderLeft() - m_scrollbar->owningRenderer()->borderRight();
int w = calcScrollbarThicknessUsing(style()->width(), visibleSize);
int minWidth = calcScrollbarThicknessUsing(style()->minWidth(), visibleSize);
@@ -99,6 +101,8 @@ void RenderScrollbarPart::computeScrollbarWidth()
void RenderScrollbarPart::computeScrollbarHeight()
{
+ if (!m_scrollbar->owningRenderer())
+ return;
int visibleSize = m_scrollbar->owningRenderer()->height() - m_scrollbar->owningRenderer()->borderTop() - m_scrollbar->owningRenderer()->borderBottom();
int h = calcScrollbarThicknessUsing(style()->height(), visibleSize);
int minHeight = calcScrollbarThicknessUsing(style()->minHeight(), visibleSize);
diff --git a/WebCore/rendering/RenderText.h b/WebCore/rendering/RenderText.h
index 92c82e1..f46f053 100644
--- a/WebCore/rendering/RenderText.h
+++ b/WebCore/rendering/RenderText.h
@@ -24,11 +24,11 @@
#define RenderText_h
#include "RenderObject.h"
+#include <wtf/Forward.h>
namespace WebCore {
class InlineTextBox;
-class StringImpl;
class RenderText : public RenderObject {
public:
diff --git a/WebCore/rendering/RenderTextControlSingleLine.cpp b/WebCore/rendering/RenderTextControlSingleLine.cpp
index 4ba2dc7..ed5c2f4 100644
--- a/WebCore/rendering/RenderTextControlSingleLine.cpp
+++ b/WebCore/rendering/RenderTextControlSingleLine.cpp
@@ -74,6 +74,10 @@ RenderTextControlSingleLine::~RenderTextControlSingleLine()
m_innerSpinButton->detach();
if (m_outerSpinButton)
m_outerSpinButton->detach();
+#if ENABLE(INPUT_SPEECH)
+ if (m_speechButton)
+ m_speechButton->detach();
+#endif
}
RenderStyle* RenderTextControlSingleLine::textBaseStyle() const
@@ -270,6 +274,22 @@ void RenderTextControlSingleLine::layout()
spinBox->setHeight(height() - borderTop() - borderBottom());
}
+#if ENABLE(INPUT_SPEECH)
+ if (RenderBox* button = m_speechButton ? m_speechButton->renderBox() : 0) {
+ if (m_innerBlock) {
+ // This is mostly the case where this is a search field. The speech button is a sibling
+ // of the inner block and laid out at the far right.
+ int x = width() - borderAndPaddingWidth() - button->width() - button->borderAndPaddingWidth();
+ int y = (height() - button->height()) / 2;
+ button->setLocation(x, y);
+ } else {
+ // For non-search fields which are simpler and we let the defaut layout handle things
+ // except for small tweaking below.
+ button->setLocation(button->x() + paddingRight(), (height() - button->height()) / 2);
+ }
+ }
+#endif
+
// Center the spin button vertically, and move it to the right by
// padding + border of the text fields.
if (RenderBox* spinBox = m_outerSpinButton ? m_outerSpinButton->renderBox() : 0) {
@@ -305,13 +325,13 @@ bool RenderTextControlSingleLine::nodeAtPoint(const HitTestRequest& request, Hit
return true;
if (m_outerSpinButton && result.innerNode() == m_outerSpinButton)
return true;
- // If we're not a search field, or we already found the speech, results or cancel buttons, we're done.
- if (!m_innerBlock || result.innerNode() == m_resultsButton || result.innerNode() == m_cancelButton)
- return true;
#if ENABLE(INPUT_SPEECH)
- if (m_innerBlock && m_speechButton && result.innerNode() == m_speechButton)
+ if (m_speechButton && result.innerNode() == m_speechButton)
return true;
#endif
+ // If we're not a search field, or we already found the speech, results or cancel buttons, we're done.
+ if (!m_innerBlock || result.innerNode() == m_resultsButton || result.innerNode() == m_cancelButton)
+ return true;
Node* innerNode = 0;
RenderBox* innerBlockRenderer = m_innerBlock->renderBox();
@@ -324,19 +344,6 @@ bool RenderTextControlSingleLine::nodeAtPoint(const HitTestRequest& request, Hit
if (m_resultsButton && m_resultsButton->renderer() && xPos < textLeft)
innerNode = m_resultsButton.get();
-#if ENABLE(INPUT_SPEECH)
- if (!innerNode && m_speechButton && m_speechButton->renderer()) {
- int buttonLeft = textLeft + innerTextRenderer->width();
- if (m_cancelButton) {
- RenderBox* cancelRenderer = m_cancelButton->renderBox();
- cancelRenderer->calcWidth();
- buttonLeft += cancelRenderer->width() + cancelRenderer->marginLeft() + cancelRenderer->marginRight();
- }
- if (xPos > buttonLeft)
- innerNode = m_speechButton.get();
- }
-#endif
-
if (!innerNode) {
int textRight = textLeft + innerTextRenderer->width();
if (m_cancelButton && m_cancelButton->renderer() && xPos > textRight)
@@ -418,7 +425,7 @@ void RenderTextControlSingleLine::styleDidChange(StyleDifference diff, const Ren
#if ENABLE(INPUT_SPEECH)
if (RenderObject* speechRenderer = m_speechButton ? m_speechButton->renderer() : 0)
- speechRenderer->setStyle(createSpeechButtonStyle(style()));
+ speechRenderer->setStyle(createSpeechButtonStyle());
#endif
setHasOverflowClip(false);
@@ -451,10 +458,6 @@ void RenderTextControlSingleLine::capsLockStateMayHaveChanged()
bool RenderTextControlSingleLine::hasControlClip() const
{
bool clip = m_cancelButton;
-#if ENABLE(INPUT_SPEECH)
- if (m_speechButton)
- clip = true;
-#endif
return clip;
}
@@ -596,29 +599,21 @@ void RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight(int lineH
lineHeight = max(lineHeight, cancelRenderer->height());
}
-#if ENABLE(INPUT_SPEECH)
- if (RenderBox* speechRenderer = m_speechButton ? m_speechButton->renderBox() : 0) {
- toRenderBlock(speechRenderer)->calcHeight();
- setHeight(max(height(),
- speechRenderer->borderTop() + speechRenderer->borderBottom() +
- speechRenderer->paddingTop() + speechRenderer->paddingBottom() +
- speechRenderer->marginTop() + speechRenderer->marginBottom()));
- lineHeight = max(lineHeight, speechRenderer->height());
- }
-#endif
-
setHeight(height() + lineHeight);
}
void RenderTextControlSingleLine::createSubtreeIfNeeded()
{
bool createSubtree = inputElement()->isSearchField();
-#if ENABLE(INPUT_SPEECH)
- if (inputElement()->isSpeechEnabled())
- createSubtree = true;
-#endif
if (!createSubtree) {
RenderTextControl::createSubtreeIfNeeded(m_innerBlock.get());
+#if ENABLE(INPUT_SPEECH)
+ if (inputElement()->isSpeechEnabled() && !m_speechButton) {
+ // Create the speech button element.
+ m_speechButton = InputFieldSpeechButtonElement::create(node());
+ m_speechButton->attachInnerElement(node(), createSpeechButtonStyle(), renderArena());
+ }
+#endif
bool hasSpinButton = inputElement()->hasSpinButton();
if (hasSpinButton && !m_innerSpinButton) {
m_innerSpinButton = SpinButtonElement::create(node());
@@ -636,6 +631,13 @@ void RenderTextControlSingleLine::createSubtreeIfNeeded()
m_innerBlock = TextControlInnerElement::create(node());
m_innerBlock->attachInnerElement(node(), createInnerBlockStyle(style()), renderArena());
}
+#if ENABLE(INPUT_SPEECH)
+ if (inputElement()->isSpeechEnabled() && !m_speechButton) {
+ // Create the speech button element.
+ m_speechButton = InputFieldSpeechButtonElement::create(node());
+ m_speechButton->attachInnerElement(node(), createSpeechButtonStyle(), renderArena());
+ }
+#endif
if (inputElement()->hasSpinButton() && !m_outerSpinButton) {
m_outerSpinButton = SpinButtonElement::create(node());
m_outerSpinButton->attachInnerElement(node(), createOuterSpinButtonStyle(), renderArena());
@@ -659,13 +661,6 @@ void RenderTextControlSingleLine::createSubtreeIfNeeded()
m_cancelButton->attachInnerElement(m_innerBlock.get(), createCancelButtonStyle(m_innerBlock->renderer()->style()), renderArena());
}
}
-#if ENABLE(INPUT_SPEECH)
- if (inputElement()->isSpeechEnabled() && !m_speechButton) {
- // Create the speech button element.
- m_speechButton = InputFieldSpeechButtonElement::create(document());
- m_speechButton->attachInnerElement(m_innerBlock.get(), createSpeechButtonStyle(m_innerBlock->renderer()->style()), renderArena());
- }
-#endif
}
void RenderTextControlSingleLine::updateFromElement()
@@ -721,7 +716,12 @@ PassRefPtr<RenderStyle> RenderTextControlSingleLine::createInnerTextStyle(const
if (textBlockStyle->font().lineSpacing() > lineHeight(true, true))
textBlockStyle->setLineHeight(Length(-100.0f, Percent));
- textBlockStyle->setDisplay(m_innerBlock || inputElement()->hasSpinButton() ? INLINE_BLOCK : BLOCK);
+ WebCore::EDisplay display = (m_innerBlock || inputElement()->hasSpinButton() ? INLINE_BLOCK : BLOCK);
+#if ENABLE(INPUT_SPEECH)
+ if (inputElement()->isSpeechEnabled())
+ display = INLINE_BLOCK;
+#endif
+ textBlockStyle->setDisplay(display);
// We're adding one extra pixel of padding to match WinIE.
textBlockStyle->setPaddingLeft(Length(1, Fixed));
@@ -814,14 +814,13 @@ PassRefPtr<RenderStyle> RenderTextControlSingleLine::createOuterSpinButtonStyle(
}
#if ENABLE(INPUT_SPEECH)
-PassRefPtr<RenderStyle> RenderTextControlSingleLine::createSpeechButtonStyle(const RenderStyle* startStyle) const
+PassRefPtr<RenderStyle> RenderTextControlSingleLine::createSpeechButtonStyle() const
{
ASSERT(node()->isHTMLElement());
RefPtr<RenderStyle> buttonStyle = getCachedPseudoStyle(INPUT_SPEECH_BUTTON);
if (!buttonStyle)
buttonStyle = RenderStyle::create();
- if (startStyle)
- buttonStyle->inheritFrom(startStyle);
+ buttonStyle->inheritFrom(style());
return buttonStyle.release();
}
#endif
@@ -974,10 +973,6 @@ int RenderTextControlSingleLine::clientPaddingRight() const
if (RenderBox* cancelRenderer = m_cancelButton ? m_cancelButton->renderBox() : 0)
padding += cancelRenderer->width();
-#if ENABLE(INPUT_SPEECH)
- if (RenderBox* speechRenderer = m_speechButton ? m_speechButton->renderBox() : 0)
- padding += speechRenderer->width();
-#endif
return padding;
}
diff --git a/WebCore/rendering/RenderTextControlSingleLine.h b/WebCore/rendering/RenderTextControlSingleLine.h
index 4bc80cf..e57e37e 100644
--- a/WebCore/rendering/RenderTextControlSingleLine.h
+++ b/WebCore/rendering/RenderTextControlSingleLine.h
@@ -102,7 +102,7 @@ private:
PassRefPtr<RenderStyle> createInnerSpinButtonStyle() const;
PassRefPtr<RenderStyle> createOuterSpinButtonStyle() const;
#if ENABLE(INPUT_SPEECH)
- PassRefPtr<RenderStyle> createSpeechButtonStyle(const RenderStyle* startStyle) const;
+ PassRefPtr<RenderStyle> createSpeechButtonStyle() const;
#endif
void updateCancelButtonVisibility() const;
diff --git a/WebCore/rendering/RenderTheme.cpp b/WebCore/rendering/RenderTheme.cpp
index 3fcb2c9..5d00f5a 100644
--- a/WebCore/rendering/RenderTheme.cpp
+++ b/WebCore/rendering/RenderTheme.cpp
@@ -1042,6 +1042,8 @@ void RenderTheme::platformColorsDidChange()
m_inactiveListBoxSelectionForegroundColor = Color();
m_activeListBoxSelectionBackgroundColor = Color();
m_inactiveListBoxSelectionForegroundColor = Color();
+
+ Page::setNeedsReapplyStyles();
}
Color RenderTheme::systemColor(int cssValueId) const
diff --git a/WebCore/rendering/RenderTreeAsText.h b/WebCore/rendering/RenderTreeAsText.h
index 645ccc0..722736b 100644
--- a/WebCore/rendering/RenderTreeAsText.h
+++ b/WebCore/rendering/RenderTreeAsText.h
@@ -26,12 +26,13 @@
#ifndef RenderTreeAsText_h
#define RenderTreeAsText_h
+#include <wtf/Forward.h>
+
namespace WebCore {
class Element;
class Frame;
class RenderObject;
-class String;
class TextStream;
enum RenderAsTextBehaviorFlags {
diff --git a/WebCore/rendering/RenderVideo.cpp b/WebCore/rendering/RenderVideo.cpp
index 610fb5f..ab969cc 100644
--- a/WebCore/rendering/RenderVideo.cpp
+++ b/WebCore/rendering/RenderVideo.cpp
@@ -50,25 +50,7 @@ using namespace HTMLNames;
RenderVideo::RenderVideo(HTMLVideoElement* video)
: RenderMedia(video)
{
- if (video->player() && video->readyState() >= HTMLVideoElement::HAVE_METADATA)
- setIntrinsicSize(video->player()->naturalSize());
- else {
- // When the natural size of the video is unavailable, we use the provided
- // width and height attributes of the video element as the intrinsic size until
- // better values become available. If these attributes are not set, we fall back
- // to a default video size (300x150).
- if (video->hasAttribute(widthAttr) && video->hasAttribute(heightAttr))
- setIntrinsicSize(IntSize(video->width(), video->height()));
- else if (video->ownerDocument() && video->ownerDocument()->isMediaDocument()) {
- // Video in standalone media documents should not use the default 300x150
- // size since they also have audio thrown at them. By setting the intrinsic
- // size to 300x1 the video will resize itself in these cases, and audio will
- // have the correct height (it needs to be > 0 for controls to render properly).
- setIntrinsicSize(IntSize(defaultSize().width(), 1));
- }
- else
- setIntrinsicSize(defaultSize());
- }
+ setIntrinsicSize(calculateIntrinsicSize());
}
RenderVideo::~RenderVideo()
@@ -92,24 +74,59 @@ void RenderVideo::intrinsicSizeChanged()
{
if (videoElement()->shouldDisplayPosterImage())
RenderMedia::intrinsicSizeChanged();
- videoSizeChanged();
+ updateIntrinsicSize();
}
-
-void RenderVideo::videoSizeChanged()
+void RenderVideo::updateIntrinsicSize()
{
- if (!player())
+ IntSize size = calculateIntrinsicSize();
+
+ // Never set the element size to zero when in a media document.
+ if (size.isEmpty() && node()->ownerDocument() && node()->ownerDocument()->isMediaDocument())
return;
- IntSize size = player()->naturalSize();
- if (size.isEmpty()) {
- if (node()->ownerDocument() && node()->ownerDocument()->isMediaDocument())
- return;
- }
- if (size != intrinsicSize()) {
- setIntrinsicSize(size);
- setPrefWidthsDirty(true);
- setNeedsLayout(true);
- }
+
+ if (size == intrinsicSize())
+ return;
+
+ setIntrinsicSize(size);
+ setPrefWidthsDirty(true);
+ setNeedsLayout(true);
+}
+
+IntSize RenderVideo::calculateIntrinsicSize()
+{
+ HTMLVideoElement* video = videoElement();
+
+ // Spec text from 4.8.6
+ //
+ // The intrinsic width of a video element's playback area is the intrinsic width
+ // of the video resource, if that is available; otherwise it is the intrinsic
+ // width of the poster frame, if that is available; otherwise it is 300 CSS pixels.
+ //
+ // The intrinsic height of a video element's playback area is the intrinsic height
+ // of the video resource, if that is available; otherwise it is the intrinsic
+ // height of the poster frame, if that is available; otherwise it is 150 CSS pixels.
+
+ if (player() && video->readyState() >= HTMLVideoElement::HAVE_METADATA)
+ return player()->naturalSize();
+
+ if (video->shouldDisplayPosterImage() && !m_cachedImageSize.isEmpty() && !errorOccurred())
+ return m_cachedImageSize;
+
+ // When the natural size of the video is unavailable, we use the provided
+ // width and height attributes of the video element as the intrinsic size until
+ // better values become available.
+ if (video->hasAttribute(widthAttr) && video->hasAttribute(heightAttr))
+ return IntSize(video->width(), video->height());
+
+ // <video> in standalone media documents should not use the default 300x150
+ // size since they also have audio-only files. By setting the intrinsic
+ // size to 300x1 the video will resize itself in these cases, and audio will
+ // have the correct height (it needs to be > 0 for controls to render properly).
+ if (video->ownerDocument() && video->ownerDocument()->isMediaDocument())
+ return IntSize(defaultSize().width(), 1);
+
+ return defaultSize();
}
void RenderVideo::imageChanged(WrappedImagePtr newImage, const IntRect* rect)
@@ -119,8 +136,11 @@ void RenderVideo::imageChanged(WrappedImagePtr newImage, const IntRect* rect)
// Cache the image intrinsic size so we can continue to use it to draw the image correctly
// even after we know the video intrisic size but aren't able to draw video frames yet
// (we don't want to scale the poster to the video size).
- if (videoElement()->shouldDisplayPosterImage())
+ if (videoElement()->shouldDisplayPosterImage()) {
+ if (errorOccurred())
+ updateIntrinsicSize();
m_cachedImageSize = intrinsicSize();
+ }
}
IntRect RenderVideo::videoBox() const
@@ -155,7 +175,12 @@ IntRect RenderVideo::videoBox() const
return renderBox;
}
-
+
+bool RenderVideo::shouldDisplayVideo() const
+{
+ return !videoElement()->shouldDisplayPosterImage();
+}
+
void RenderVideo::paintReplaced(PaintInfo& paintInfo, int tx, int ty)
{
MediaPlayer* mediaPlayer = player();
@@ -174,6 +199,7 @@ void RenderVideo::paintReplaced(PaintInfo& paintInfo, int tx, int ty)
if (rect.isEmpty())
return;
rect.move(tx, ty);
+
if (displayingPoster)
paintIntoRect(paintInfo.context, rect);
else
@@ -200,9 +226,12 @@ void RenderVideo::updateFromElement()
void RenderVideo::updatePlayer()
{
+ updateIntrinsicSize();
+
MediaPlayer* mediaPlayer = player();
if (!mediaPlayer)
return;
+
if (!videoElement()->inActiveDocument()) {
mediaPlayer->setVisible(false);
return;
diff --git a/WebCore/rendering/RenderVideo.h b/WebCore/rendering/RenderVideo.h
index bb2b05c..dd7a531 100644
--- a/WebCore/rendering/RenderVideo.h
+++ b/WebCore/rendering/RenderVideo.h
@@ -40,7 +40,6 @@ public:
RenderVideo(HTMLVideoElement*);
virtual ~RenderVideo();
- void videoSizeChanged();
IntRect videoBox() const;
static IntSize defaultSize();
@@ -50,11 +49,16 @@ public:
void acceleratedRenderingStateChanged();
#endif
+ virtual bool shouldDisplayVideo() const;
+
private:
virtual void updateFromElement();
inline HTMLVideoElement* videoElement() const;
virtual void intrinsicSizeChanged();
+ IntSize calculateIntrinsicSize();
+ void updateIntrinsicSize();
+
virtual void imageChanged(WrappedImagePtr, const IntRect*);
virtual const char* renderName() const { return "RenderVideo"; }
@@ -69,7 +73,7 @@ private:
virtual int calcReplacedWidth(bool includeMaxWidth = true) const;
virtual int calcReplacedHeight() const;
virtual int minimumReplacedHeight() const;
-
+
int calcAspectRatioWidth() const;
int calcAspectRatioHeight() const;
diff --git a/WebCore/rendering/SVGCharacterLayoutInfo.cpp b/WebCore/rendering/SVGCharacterLayoutInfo.cpp
index 18315df..71ff1aa 100644
--- a/WebCore/rendering/SVGCharacterLayoutInfo.cpp
+++ b/WebCore/rendering/SVGCharacterLayoutInfo.cpp
@@ -37,16 +37,21 @@ namespace WebCore {
// Helper function
static float calculateBaselineShift(RenderObject* item)
{
+ ASSERT(item);
+ ASSERT(item->style());
+ ASSERT(item->node());
+ ASSERT(item->node()->isSVGElement());
+
const Font& font = item->style()->font();
const SVGRenderStyle* svgStyle = item->style()->svgStyle();
float baselineShift = 0.0f;
if (svgStyle->baselineShift() == BS_LENGTH) {
- CSSPrimitiveValue* primitive = static_cast<CSSPrimitiveValue*>(svgStyle->baselineShiftValue());
- baselineShift = primitive->getFloatValue();
-
- if (primitive->primitiveType() == CSSPrimitiveValue::CSS_PERCENTAGE)
- baselineShift = baselineShift / 100.0f * font.pixelSize();
+ SVGLength baselineShiftValueLength = svgStyle->baselineShiftValue();
+ if (baselineShiftValueLength.unitType() == LengthTypePercentage)
+ baselineShift = baselineShiftValueLength.valueAsPercentage() * font.pixelSize();
+ else
+ baselineShift = baselineShiftValueLength.value(static_cast<SVGElement*>(item->node()));
} else {
float baselineAscent = font.ascent() + font.descent();
diff --git a/WebCore/rendering/SVGInlineTextBox.cpp b/WebCore/rendering/SVGInlineTextBox.cpp
index a293124..f5bbe5b 100644
--- a/WebCore/rendering/SVGInlineTextBox.cpp
+++ b/WebCore/rendering/SVGInlineTextBox.cpp
@@ -638,6 +638,12 @@ void SVGInlineTextBox::buildLayoutInformation(SVGCharacterLayoutInfo& info, SVGL
RenderStyle* style = textRenderer->style();
ASSERT(style);
+ RenderObject* parentRenderer = parent()->renderer();
+ ASSERT(parentRenderer);
+ ASSERT(parentRenderer->node());
+ ASSERT(parentRenderer->node()->isSVGElement());
+ SVGElement* lengthContext = static_cast<SVGElement*>(parentRenderer->node());
+
const Font& font = style->font();
const UChar* characters = textRenderer->characters();
@@ -709,7 +715,7 @@ void SVGInlineTextBox::buildLayoutInformation(SVGCharacterLayoutInfo& info, SVGL
}
// Take letter & word spacing and kerning into account
- float spacing = font.letterSpacing() + calculateCSSKerning(style);
+ float spacing = font.letterSpacing() + calculateCSSKerning(lengthContext, style);
const UChar* currentCharacter = characters + (textDirection == RTL ? endPosition - i : startPosition + i);
const UChar* lastCharacter = 0;
diff --git a/WebCore/rendering/SVGRenderSupport.cpp b/WebCore/rendering/SVGRenderSupport.cpp
index 34f6659..67e19f2 100644
--- a/WebCore/rendering/SVGRenderSupport.cpp
+++ b/WebCore/rendering/SVGRenderSupport.cpp
@@ -320,41 +320,35 @@ bool SVGRenderSupport::pointInClippingArea(RenderObject* object, const FloatPoin
return true;
}
-DashArray SVGRenderSupport::dashArrayFromRenderingStyle(const RenderStyle* style, RenderStyle* rootStyle)
+void SVGRenderSupport::applyStrokeStyleToContext(GraphicsContext* context, const RenderStyle* style, const RenderObject* object)
{
- DashArray array;
-
- CSSValueList* dashes = style->svgStyle()->strokeDashArray();
- if (!dashes)
- return array;
-
- CSSPrimitiveValue* dash = 0;
- unsigned long len = dashes->length();
- for (unsigned long i = 0; i < len; ++i) {
- dash = static_cast<CSSPrimitiveValue*>(dashes->itemWithoutBoundsCheck(i));
- if (!dash)
- continue;
-
- array.append(dash->computeLengthFloat(const_cast<RenderStyle*>(style), rootStyle));
- }
+ ASSERT(context);
+ ASSERT(style);
+ ASSERT(object);
+ ASSERT(object->node());
+ ASSERT(object->node()->isSVGElement());
- return array;
-}
+ const SVGRenderStyle* svgStyle = style->svgStyle();
+ ASSERT(svgStyle);
-void SVGRenderSupport::applyStrokeStyleToContext(GraphicsContext* context, const RenderStyle* style, const RenderObject* object)
-{
- context->setStrokeThickness(SVGRenderStyle::cssPrimitiveToLength(object, style->svgStyle()->strokeWidth(), 1.0f));
- context->setLineCap(style->svgStyle()->capStyle());
- context->setLineJoin(style->svgStyle()->joinStyle());
- if (style->svgStyle()->joinStyle() == MiterJoin)
- context->setMiterLimit(style->svgStyle()->strokeMiterLimit());
-
- const DashArray& dashes = dashArrayFromRenderingStyle(object->style(), object->document()->documentElement()->renderStyle());
- float dashOffset = SVGRenderStyle::cssPrimitiveToLength(object, style->svgStyle()->strokeDashOffset(), 0.0f);
+ SVGElement* lengthContext = static_cast<SVGElement*>(object->node());
+ context->setStrokeThickness(svgStyle->strokeWidth().value(lengthContext));
+ context->setLineCap(svgStyle->capStyle());
+ context->setLineJoin(svgStyle->joinStyle());
+ if (svgStyle->joinStyle() == MiterJoin)
+ context->setMiterLimit(svgStyle->strokeMiterLimit());
+
+ const Vector<SVGLength>& dashes = svgStyle->strokeDashArray();
if (dashes.isEmpty())
context->setStrokeStyle(SolidStroke);
- else
- context->setLineDash(dashes, dashOffset);
+ else {
+ DashArray dashArray;
+ const Vector<SVGLength>::const_iterator end = dashes.end();
+ for (Vector<SVGLength>::const_iterator it = dashes.begin(); it != end; ++it)
+ dashArray.append((*it).value(lengthContext));
+
+ context->setLineDash(dashArray, svgStyle->strokeDashOffset().value(lengthContext));
+ }
}
const RenderObject* SVGRenderSupport::findTextRootObject(const RenderObject* start)
diff --git a/WebCore/rendering/SVGRenderSupport.h b/WebCore/rendering/SVGRenderSupport.h
index 371ac75..576475b 100644
--- a/WebCore/rendering/SVGRenderSupport.h
+++ b/WebCore/rendering/SVGRenderSupport.h
@@ -26,7 +26,6 @@
#define SVGRenderSupport_h
#if ENABLE(SVG)
-#include "DashArray.h"
#include "PaintInfo.h"
namespace WebCore {
@@ -81,7 +80,6 @@ public:
// FIXME: These methods do not belong here.
static const RenderObject* findTextRootObject(const RenderObject* start);
- static DashArray dashArrayFromRenderingStyle(const RenderStyle* style, RenderStyle* rootStyle);
private:
// This class is not constructable.
diff --git a/WebCore/rendering/SVGRenderTreeAsText.cpp b/WebCore/rendering/SVGRenderTreeAsText.cpp
index d298544..db4c07a 100644
--- a/WebCore/rendering/SVGRenderTreeAsText.cpp
+++ b/WebCore/rendering/SVGRenderTreeAsText.cpp
@@ -365,15 +365,23 @@ static void writeStyle(TextStream& ts, const RenderObject& object)
writeIfNotDefault(ts, "opacity", style->opacity(), RenderStyle::initialOpacity());
if (object.isRenderPath()) {
const RenderPath& path = static_cast<const RenderPath&>(object);
+ ASSERT(path.node());
+ ASSERT(path.node()->isSVGElement());
if (RenderSVGResource* strokePaintingResource = RenderSVGResource::strokePaintingResource(const_cast<RenderPath*>(&path), path.style())) {
TextStreamSeparator s(" ");
ts << " [stroke={" << s;
writeSVGPaintingResource(ts, strokePaintingResource);
- double dashOffset = SVGRenderStyle::cssPrimitiveToLength(&path, svgStyle->strokeDashOffset(), 0.0f);
- const DashArray& dashArray = SVGRenderSupport::dashArrayFromRenderingStyle(style, object.document()->documentElement()->renderStyle());
- double strokeWidth = SVGRenderStyle::cssPrimitiveToLength(&path, svgStyle->strokeWidth(), 1.0f);
+ SVGElement* element = static_cast<SVGElement*>(path.node());
+ double dashOffset = svgStyle->strokeDashOffset().value(element);
+ double strokeWidth = svgStyle->strokeWidth().value(element);
+ const Vector<SVGLength>& dashes = svgStyle->strokeDashArray();
+
+ DashArray dashArray;
+ const Vector<SVGLength>::const_iterator end = dashes.end();
+ for (Vector<SVGLength>::const_iterator it = dashes.begin(); it != end; ++it)
+ dashArray.append((*it).value(element));
writeIfNotDefault(ts, "opacity", svgStyle->strokeOpacity(), 1.0f);
writeIfNotDefault(ts, "stroke width", strokeWidth, 1.0);
diff --git a/WebCore/rendering/SVGTextLayoutUtilities.cpp b/WebCore/rendering/SVGTextLayoutUtilities.cpp
index 4366498..2debf28 100644
--- a/WebCore/rendering/SVGTextLayoutUtilities.cpp
+++ b/WebCore/rendering/SVGTextLayoutUtilities.cpp
@@ -315,20 +315,16 @@ TextRun svgTextRunForInlineTextBox(const UChar* characters, int length, const Re
return run;
}
-float calculateCSSKerning(const RenderStyle* style)
+float calculateCSSKerning(SVGElement* context, const RenderStyle* style)
{
const Font& font = style->font();
const SVGRenderStyle* svgStyle = style->svgStyle();
- float kerning = 0.0f;
- if (CSSPrimitiveValue* primitive = static_cast<CSSPrimitiveValue*>(svgStyle->kerning())) {
- kerning = primitive->getFloatValue();
-
- if (primitive->primitiveType() == CSSPrimitiveValue::CSS_PERCENTAGE && font.pixelSize())
- kerning = kerning / 100.0f * font.pixelSize();
- }
+ SVGLength kerningLength = svgStyle->kerning();
+ if (kerningLength.unitType() == LengthTypePercentage)
+ return kerningLength.valueAsPercentage() * font.pixelSize();
- return kerning;
+ return kerningLength.value(context);
}
bool applySVGKerning(SVGCharacterLayoutInfo& info, const RenderStyle* style, SVGLastGlyphInfo& lastGlyph, const String& unicodeString, const String& glyphName, bool isVerticalText)
diff --git a/WebCore/rendering/SVGTextLayoutUtilities.h b/WebCore/rendering/SVGTextLayoutUtilities.h
index 8c07f62..459d682 100644
--- a/WebCore/rendering/SVGTextLayoutUtilities.h
+++ b/WebCore/rendering/SVGTextLayoutUtilities.h
@@ -32,6 +32,7 @@ class Font;
class InlineTextBox;
class RenderObject;
class RenderStyle;
+class SVGElement;
class SVGRenderStyle;
class TextRun;
@@ -60,7 +61,7 @@ float cummulatedWidthOfInlineBoxCharacterRange(SVGInlineBoxCharacterRange&);
float cummulatedHeightOfInlineBoxCharacterRange(SVGInlineBoxCharacterRange&);
TextRun svgTextRunForInlineTextBox(const UChar*, int length, const RenderStyle*, const InlineTextBox*);
-float calculateCSSKerning(const RenderStyle*);
+float calculateCSSKerning(SVGElement* context, const RenderStyle*);
bool applySVGKerning(SVGCharacterLayoutInfo&, const RenderStyle*, SVGLastGlyphInfo&, const String& unicodeString, const String& glyphName, bool isVerticalText);
}
diff --git a/WebCore/rendering/TextControlInnerElements.cpp b/WebCore/rendering/TextControlInnerElements.cpp
index b29876a..cf0e864 100644
--- a/WebCore/rendering/TextControlInnerElements.cpp
+++ b/WebCore/rendering/TextControlInnerElements.cpp
@@ -342,15 +342,15 @@ void SpinButtonElement::setHovered(bool flag)
#if ENABLE(INPUT_SPEECH)
-inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(Document* document)
- : TextControlInnerElement(document)
+inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(Node* shadowParent)
+ : TextControlInnerElement(shadowParent->document(), shadowParent)
, m_capturing(false)
{
}
-PassRefPtr<InputFieldSpeechButtonElement> InputFieldSpeechButtonElement::create(Document* document)
+PassRefPtr<InputFieldSpeechButtonElement> InputFieldSpeechButtonElement::create(Node* shadowParent)
{
- return adoptRef(new InputFieldSpeechButtonElement(document));
+ return adoptRef(new InputFieldSpeechButtonElement(shadowParent));
}
void InputFieldSpeechButtonElement::defaultEventHandler(Event* event)
@@ -372,20 +372,21 @@ void InputFieldSpeechButtonElement::defaultEventHandler(Event* event)
input->select();
event->setDefaultHandled();
}
- // On mouse up, start speech recognition.
+ // On mouse up, release capture cleanly.
if (event->type() == eventNames().mouseupEvent && event->isMouseEvent() && static_cast<MouseEvent*>(event)->button() == LeftButton) {
if (m_capturing && renderer() && renderer()->visibleToHitTesting()) {
if (Frame* frame = document()->frame()) {
frame->eventHandler()->setCapturingMouseEventsNode(0);
m_capturing = false;
}
- if (hovered()) {
- speechInput()->startRecognition(this);
- event->setDefaultHandled();
- }
}
}
+ if (event->type() == eventNames().clickEvent) {
+ speechInput()->startRecognition(this);
+ event->setDefaultHandled();
+ }
+
if (!event->defaultHandled())
HTMLDivElement::defaultEventHandler(event);
}
diff --git a/WebCore/rendering/TextControlInnerElements.h b/WebCore/rendering/TextControlInnerElements.h
index ed38221..2859bd5 100644
--- a/WebCore/rendering/TextControlInnerElements.h
+++ b/WebCore/rendering/TextControlInnerElements.h
@@ -29,11 +29,11 @@
#include "HTMLDivElement.h"
#include "SpeechInputListener.h"
+#include <wtf/Forward.h>
namespace WebCore {
class SpeechInput;
-class String;
class TextControlInnerElement : public HTMLDivElement {
public:
@@ -119,8 +119,9 @@ class InputFieldSpeechButtonElement
: public TextControlInnerElement,
public SpeechInputListener {
public:
- static PassRefPtr<InputFieldSpeechButtonElement> create(Document*);
+ static PassRefPtr<InputFieldSpeechButtonElement> create(Node*);
+ virtual void detach();
virtual void defaultEventHandler(Event*);
// SpeechInputListener methods.
@@ -129,8 +130,7 @@ public:
void setRecognitionResult(const String& result);
private:
- InputFieldSpeechButtonElement(Document*);
- virtual void detach();
+ InputFieldSpeechButtonElement(Node*);
SpeechInput* speechInput();
bool m_capturing;
diff --git a/WebCore/rendering/style/ContentData.h b/WebCore/rendering/style/ContentData.h
index 2c261f8..5c3565e 100644
--- a/WebCore/rendering/style/ContentData.h
+++ b/WebCore/rendering/style/ContentData.h
@@ -26,13 +26,13 @@
#define ContentData_h
#include "RenderStyleConstants.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
class CounterContent;
-class StringImpl;
class StyleImage;
struct ContentData : Noncopyable {
diff --git a/WebCore/rendering/style/FillLayer.cpp b/WebCore/rendering/style/FillLayer.cpp
index 3469e97..59f3bb2 100644
--- a/WebCore/rendering/style/FillLayer.cpp
+++ b/WebCore/rendering/style/FillLayer.cpp
@@ -129,6 +129,17 @@ bool FillLayer::operator==(const FillLayer& o) const
void FillLayer::fillUnsetProperties()
{
FillLayer* curr;
+ for (curr = this; curr && curr->isImageSet(); curr = curr->next()) { }
+ if (curr && curr != this) {
+ // We need to fill in the remaining values with the pattern specified.
+ for (FillLayer* pattern = this; curr; curr = curr->next()) {
+ curr->m_image = pattern->m_image;
+ pattern = pattern->next();
+ if (pattern == curr || !pattern)
+ pattern = this;
+ }
+ }
+
for (curr = this; curr && curr->isXPositionSet(); curr = curr->next()) { }
if (curr && curr != this) {
// We need to fill in the remaining values with the pattern specified.
@@ -232,27 +243,15 @@ void FillLayer::fillUnsetProperties()
void FillLayer::cullEmptyLayers()
{
- // CSS3 background layering: the number of background layers is determined
- // by the number of values in the 'background-image' property.
- // http://www.w3.org/TR/css3-background/#layering
-
FillLayer* next;
for (FillLayer* p = this; p; p = next) {
next = p->m_next;
- if (!next)
- break;
-
- bool anyAttributeSet = next->isXPositionSet()
- || next->isYPositionSet()
- || next->isAttachmentSet()
- || next->isClipSet()
- || next->isCompositeSet()
- || next->isOriginSet()
- || next->isRepeatXSet()
- || next->isRepeatYSet()
- || next->isSizeSet();
-
- if (!next->isImageSet() || !anyAttributeSet) {
+ if (next && !next->isImageSet() &&
+ !next->isXPositionSet() && !next->isYPositionSet() &&
+ !next->isAttachmentSet() && !next->isClipSet() &&
+ !next->isCompositeSet() && !next->isOriginSet() &&
+ !next->isRepeatXSet() && !next->isRepeatYSet()
+ && !next->isSizeSet()) {
delete next;
p->m_next = 0;
break;
diff --git a/WebCore/rendering/style/RenderStyle.cpp b/WebCore/rendering/style/RenderStyle.cpp
index ce6c98e..5a66c67 100644
--- a/WebCore/rendering/style/RenderStyle.cpp
+++ b/WebCore/rendering/style/RenderStyle.cpp
@@ -385,7 +385,8 @@ StyleDifference RenderStyle::diff(const RenderStyle* other, unsigned& changedCon
rareInheritedData->khtmlLineBreak != other->rareInheritedData->khtmlLineBreak ||
rareInheritedData->textSecurity != other->rareInheritedData->textSecurity ||
rareInheritedData->hyphens != other->rareInheritedData->hyphens ||
- rareInheritedData->hyphenateCharacter != other->rareInheritedData->hyphenateCharacter)
+ rareInheritedData->hyphenationString != other->rareInheritedData->hyphenationString ||
+ rareInheritedData->hyphenationLocale != other->rareInheritedData->hyphenationLocale)
return StyleDifferenceLayout;
if (!rareInheritedData->shadowDataEquivalent(*other->rareInheritedData.get()))
@@ -471,6 +472,9 @@ StyleDifference RenderStyle::diff(const RenderStyle* other, unsigned& changedCon
return StyleDifferenceLayout;
}
+ if ((visibility() == COLLAPSE) != (other->visibility() == COLLAPSE))
+ return StyleDifferenceLayout;
+
// Make sure these left/top/right/bottom checks stay below all layout checks and above
// all visible checks.
if (position() != StaticPosition) {
@@ -832,9 +836,9 @@ const AtomicString& RenderStyle::hyphenString() const
{
ASSERT(hyphens() == HyphensAuto);
- const AtomicString& hyphenateCharacter = rareInheritedData.get()->hyphenateCharacter;
- if (!hyphenateCharacter.isNull())
- return hyphenateCharacter;
+ const AtomicString& hyphenationString = rareInheritedData.get()->hyphenationString;
+ if (!hyphenationString.isNull())
+ return hyphenationString;
// FIXME: This should depend on locale.
DEFINE_STATIC_LOCAL(AtomicString, hyphenMinusString, (&hyphen, 1));
diff --git a/WebCore/rendering/style/RenderStyle.h b/WebCore/rendering/style/RenderStyle.h
index 58af7cf..234122e 100644
--- a/WebCore/rendering/style/RenderStyle.h
+++ b/WebCore/rendering/style/RenderStyle.h
@@ -73,6 +73,7 @@
#include "ThemeTypes.h"
#include "TimingFunction.h"
#include "TransformOperations.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/StdLibExtras.h>
@@ -108,7 +109,6 @@ class CSSStyleSelector;
class CSSValueList;
class CachedImage;
class Pair;
-class StringImpl;
class StyleImage;
typedef Vector<RefPtr<RenderStyle>, 4> PseudoStyleCache;
@@ -648,7 +648,8 @@ public:
EMatchNearestMailBlockquoteColor matchNearestMailBlockquoteColor() const { return static_cast<EMatchNearestMailBlockquoteColor>(rareNonInheritedData->matchNearestMailBlockquoteColor); }
const AtomicString& highlight() const { return rareInheritedData->highlight; }
Hyphens hyphens() const { return static_cast<Hyphens>(rareInheritedData->hyphens); }
- const AtomicString& hyphenateCharacter() const { return rareInheritedData->hyphenateCharacter; }
+ const AtomicString& hyphenationString() const { return rareInheritedData->hyphenationString; }
+ const AtomicString& hyphenationLocale() const { return rareInheritedData->hyphenationLocale; }
EBorderFit borderFit() const { return static_cast<EBorderFit>(rareNonInheritedData->m_borderFit); }
EResize resize() const { return static_cast<EResize>(rareInheritedData->resize); }
float columnWidth() const { return rareNonInheritedData->m_multiCol->m_width; }
@@ -876,8 +877,8 @@ public:
void adjustBackgroundLayers()
{
if (backgroundLayers()->next()) {
- accessBackgroundLayers()->fillUnsetProperties();
accessBackgroundLayers()->cullEmptyLayers();
+ accessBackgroundLayers()->fillUnsetProperties();
}
}
@@ -887,8 +888,8 @@ public:
void adjustMaskLayers()
{
if (maskLayers()->next()) {
- accessMaskLayers()->fillUnsetProperties();
accessMaskLayers()->cullEmptyLayers();
+ accessMaskLayers()->fillUnsetProperties();
}
}
@@ -992,7 +993,8 @@ public:
void setMatchNearestMailBlockquoteColor(EMatchNearestMailBlockquoteColor c) { SET_VAR(rareNonInheritedData, matchNearestMailBlockquoteColor, c); }
void setHighlight(const AtomicString& h) { SET_VAR(rareInheritedData, highlight, h); }
void setHyphens(Hyphens h) { SET_VAR(rareInheritedData, hyphens, h); }
- void setHyphenateCharacter(const AtomicString& h) { SET_VAR(rareInheritedData, hyphenateCharacter, h); }
+ void setHyphenationString(const AtomicString& h) { SET_VAR(rareInheritedData, hyphenationString, h); }
+ void setHyphenationLocale(const AtomicString& h) { SET_VAR(rareInheritedData, hyphenationLocale, h); }
void setBorderFit(EBorderFit b) { SET_VAR(rareNonInheritedData, m_borderFit, b); }
void setResize(EResize r) { SET_VAR(rareInheritedData, resize, r); }
void setColumnWidth(float f) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoWidth, false); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_width, f); }
@@ -1205,7 +1207,8 @@ public:
static EMatchNearestMailBlockquoteColor initialMatchNearestMailBlockquoteColor() { return BCNORMAL; }
static const AtomicString& initialHighlight() { return nullAtom; }
static Hyphens initialHyphens() { return HyphensManual; }
- static const AtomicString& initialHyphenateCharacter() { return nullAtom; }
+ static const AtomicString& initialHyphenationString() { return nullAtom; }
+ static const AtomicString& initialHyphenationLocale() { return nullAtom; }
static EBorderFit initialBorderFit() { return BorderFitBorder; }
static EResize initialResize() { return RESIZE_NONE; }
static ControlPart initialAppearance() { return NoControlPart; }
diff --git a/WebCore/rendering/style/SVGRenderStyle.cpp b/WebCore/rendering/style/SVGRenderStyle.cpp
index 2a9003c..0df26f4 100644
--- a/WebCore/rendering/style/SVGRenderStyle.cpp
+++ b/WebCore/rendering/style/SVGRenderStyle.cpp
@@ -211,26 +211,6 @@ StyleDifference SVGRenderStyle::diff(const SVGRenderStyle* other) const
return StyleDifferenceEqual;
}
-float SVGRenderStyle::cssPrimitiveToLength(const RenderObject* item, CSSValue* value, float defaultValue)
-{
- CSSPrimitiveValue* primitive = static_cast<CSSPrimitiveValue*>(value);
-
- unsigned short cssType = (primitive ? primitive->primitiveType() : (unsigned short) CSSPrimitiveValue::CSS_UNKNOWN);
- if (!(cssType > CSSPrimitiveValue::CSS_UNKNOWN && cssType <= CSSPrimitiveValue::CSS_PC))
- return defaultValue;
-
- if (cssType == CSSPrimitiveValue::CSS_PERCENTAGE) {
- SVGStyledElement* element = static_cast<SVGStyledElement*>(item->node());
- SVGElement* viewportElement = (element ? element->viewportElement() : 0);
- if (viewportElement) {
- float result = primitive->getFloatValue() / 100.0f;
- return SVGLength::PercentageOfViewport(result, element, LengthModeOther);
- }
- }
-
- return primitive->computeLengthFloat(const_cast<RenderStyle*>(item->style()), item->document()->documentElement()->renderStyle());
-}
-
static void getSVGShadowExtent(ShadowData* shadow, float& top, float& right, float& bottom, float& left)
{
top = 0.0f;
diff --git a/WebCore/rendering/style/SVGRenderStyle.h b/WebCore/rendering/style/SVGRenderStyle.h
index c1d72e9..f071755 100644
--- a/WebCore/rendering/style/SVGRenderStyle.h
+++ b/WebCore/rendering/style/SVGRenderStyle.h
@@ -78,17 +78,13 @@ public:
static SVGPaint* initialFillPaint() { return SVGPaint::defaultFill(); }
static float initialStrokeOpacity() { return 1.0f; }
static SVGPaint* initialStrokePaint() { return SVGPaint::defaultStroke(); }
- static CSSValueList* initialStrokeDashArray() { return 0; }
+ static Vector<SVGLength> initialStrokeDashArray() { return Vector<SVGLength>(); }
static float initialStrokeMiterLimit() { return 4.0f; }
- static CSSValue* initialStrokeWidth() { return 0; }
- static CSSValue* initialStrokeDashOffset() { return 0; };
- static CSSValue* initialKerning() { return 0; }
static float initialStopOpacity() { return 1.0f; }
static Color initialStopColor() { return Color(0, 0, 0); }
static float initialFloodOpacity() { return 1.0f; }
static Color initialFloodColor() { return Color(0, 0, 0); }
static Color initialLightingColor() { return Color(255, 255, 255); }
- static CSSValue* initialBaselineShiftValue() { return 0; }
static ShadowData* initialShadow() { return 0; }
static String initialClipperResource() { return String(); }
static String initialFilterResource() { return String(); }
@@ -97,6 +93,34 @@ public:
static String initialMarkerMidResource() { return String(); }
static String initialMarkerEndResource() { return String(); }
+ static SVGLength initialBaselineShiftValue()
+ {
+ SVGLength length;
+ length.newValueSpecifiedUnits(LengthTypeNumber, 0);
+ return length;
+ }
+
+ static SVGLength initialKerning()
+ {
+ SVGLength length;
+ length.newValueSpecifiedUnits(LengthTypeNumber, 0);
+ return length;
+ }
+
+ static SVGLength initialStrokeDashOffset()
+ {
+ SVGLength length;
+ length.newValueSpecifiedUnits(LengthTypeNumber, 0);
+ return length;
+ }
+
+ static SVGLength initialStrokeWidth()
+ {
+ SVGLength length;
+ length.newValueSpecifiedUnits(LengthTypeNumber, 1);
+ return length;
+ }
+
// SVG CSS Property setters
void setAlignmentBaseline(EAlignmentBaseline val) { svg_noninherited_flags.f._alignmentBaseline = val; }
void setDominantBaseline(EDominantBaseline val) { svg_noninherited_flags.f._dominantBaseline = val; }
@@ -140,7 +164,7 @@ public:
stroke.access()->paint = obj;
}
- void setStrokeDashArray(PassRefPtr<CSSValueList> obj)
+ void setStrokeDashArray(const Vector<SVGLength>& obj)
{
if (!(stroke->dashArray == obj))
stroke.access()->dashArray = obj;
@@ -152,19 +176,19 @@ public:
stroke.access()->miterLimit = obj;
}
- void setStrokeWidth(PassRefPtr<CSSValue> obj)
+ void setStrokeWidth(const SVGLength& obj)
{
if (!(stroke->width == obj))
stroke.access()->width = obj;
}
- void setStrokeDashOffset(PassRefPtr<CSSValue> obj)
+ void setStrokeDashOffset(const SVGLength& obj)
{
if (!(stroke->dashOffset == obj))
stroke.access()->dashOffset = obj;
}
- void setKerning(PassRefPtr<CSSValue> obj)
+ void setKerning(const SVGLength& obj)
{
if (!(text->kerning == obj))
text.access()->kerning = obj;
@@ -176,7 +200,7 @@ public:
stops.access()->opacity = obj;
}
- void setStopColor(Color obj)
+ void setStopColor(const Color& obj)
{
if (!(stops->color == obj))
stops.access()->color = obj;
@@ -188,60 +212,59 @@ public:
misc.access()->floodOpacity = obj;
}
- void setFloodColor(Color obj)
+ void setFloodColor(const Color& obj)
{
if (!(misc->floodColor == obj))
misc.access()->floodColor = obj;
}
- void setLightingColor(Color obj)
+ void setLightingColor(const Color& obj)
{
if (!(misc->lightingColor == obj))
misc.access()->lightingColor = obj;
}
- void setBaselineShiftValue(PassRefPtr<CSSValue> obj)
+ void setBaselineShiftValue(const SVGLength& obj)
{
if (!(misc->baselineShiftValue == obj))
misc.access()->baselineShiftValue = obj;
}
- void setShadow(PassOwnPtr<ShadowData> obj) { shadowSVG.access()->shadow = obj;
- }
+ void setShadow(PassOwnPtr<ShadowData> obj) { shadowSVG.access()->shadow = obj; }
// Setters for non-inherited resources
- void setClipperResource(String obj)
+ void setClipperResource(const String& obj)
{
if (!(resources->clipper == obj))
resources.access()->clipper = obj;
}
- void setFilterResource(String obj)
+ void setFilterResource(const String& obj)
{
if (!(resources->filter == obj))
resources.access()->filter = obj;
}
- void setMaskerResource(String obj)
+ void setMaskerResource(const String& obj)
{
if (!(resources->masker == obj))
resources.access()->masker = obj;
}
// Setters for inherited resources
- void setMarkerStartResource(String obj)
+ void setMarkerStartResource(const String& obj)
{
if (!(inheritedResources->markerStart == obj))
inheritedResources.access()->markerStart = obj;
}
- void setMarkerMidResource(String obj)
+ void setMarkerMidResource(const String& obj)
{
if (!(inheritedResources->markerMid == obj))
inheritedResources.access()->markerMid = obj;
}
- void setMarkerEndResource(String obj)
+ void setMarkerEndResource(const String& obj)
{
if (!(inheritedResources->markerEnd == obj))
inheritedResources.access()->markerEnd = obj;
@@ -269,17 +292,17 @@ public:
SVGPaint* fillPaint() const { return fill->paint.get(); }
float strokeOpacity() const { return stroke->opacity; }
SVGPaint* strokePaint() const { return stroke->paint.get(); }
- CSSValueList* strokeDashArray() const { return stroke->dashArray.get(); }
+ Vector<SVGLength> strokeDashArray() const { return stroke->dashArray; }
float strokeMiterLimit() const { return stroke->miterLimit; }
- CSSValue* strokeWidth() const { return stroke->width.get(); }
- CSSValue* strokeDashOffset() const { return stroke->dashOffset.get(); }
- CSSValue* kerning() const { return text->kerning.get(); }
+ SVGLength strokeWidth() const { return stroke->width; }
+ SVGLength strokeDashOffset() const { return stroke->dashOffset; }
+ SVGLength kerning() const { return text->kerning; }
float stopOpacity() const { return stops->opacity; }
Color stopColor() const { return stops->color; }
float floodOpacity() const { return misc->floodOpacity; }
Color floodColor() const { return misc->floodColor; }
Color lightingColor() const { return misc->lightingColor; }
- CSSValue* baselineShiftValue() const { return misc->baselineShiftValue.get(); }
+ SVGLength baselineShiftValue() const { return misc->baselineShiftValue; }
ShadowData* shadow() const { return shadowSVG->shadow.get(); }
String clipperResource() const { return resources->clipper; }
String filterResource() const { return resources->filter; }
@@ -296,8 +319,6 @@ public:
bool hasStroke() const { return strokePaint()->paintType() != SVGPaint::SVG_PAINTTYPE_NONE; }
bool hasFill() const { return fillPaint()->paintType() != SVGPaint::SVG_PAINTTYPE_NONE; }
- static float cssPrimitiveToLength(const RenderObject*, CSSValue*, float defaultValue = 0.0f);
-
protected:
// inherit
struct InheritedFlags {
diff --git a/WebCore/rendering/style/SVGRenderStyleDefs.cpp b/WebCore/rendering/style/SVGRenderStyleDefs.cpp
index bf7624f..c30ae6d 100644
--- a/WebCore/rendering/style/SVGRenderStyleDefs.cpp
+++ b/WebCore/rendering/style/SVGRenderStyleDefs.cpp
@@ -73,8 +73,8 @@ StyleStrokeData::StyleStrokeData()
, miterLimit(SVGRenderStyle::initialStrokeMiterLimit())
, width(SVGRenderStyle::initialStrokeWidth())
, dashOffset(SVGRenderStyle::initialStrokeDashOffset())
- , paint(SVGRenderStyle::initialStrokePaint())
, dashArray(SVGRenderStyle::initialStrokeDashArray())
+ , paint(SVGRenderStyle::initialStrokePaint())
{
}
@@ -84,8 +84,8 @@ StyleStrokeData::StyleStrokeData(const StyleStrokeData& other)
, miterLimit(other.miterLimit)
, width(other.width)
, dashOffset(other.dashOffset)
- , paint(other.paint)
, dashArray(other.dashArray)
+ , paint(other.paint)
{
}
diff --git a/WebCore/rendering/style/SVGRenderStyleDefs.h b/WebCore/rendering/style/SVGRenderStyleDefs.h
index adb890c..339bb77 100644
--- a/WebCore/rendering/style/SVGRenderStyleDefs.h
+++ b/WebCore/rendering/style/SVGRenderStyleDefs.h
@@ -29,9 +29,9 @@
#define SVGRenderStyleDefs_h
#if ENABLE(SVG)
-
#include "Color.h"
#include "PlatformString.h"
+#include "SVGLength.h"
#include "ShadowData.h"
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
@@ -127,11 +127,11 @@ namespace WebCore {
float opacity;
float miterLimit;
- RefPtr<CSSValue> width;
- RefPtr<CSSValue> dashOffset;
+ SVGLength width;
+ SVGLength dashOffset;
+ Vector<SVGLength> dashArray;
RefPtr<SVGPaint> paint;
- RefPtr<CSSValueList> dashArray;
private:
StyleStrokeData();
@@ -168,7 +168,7 @@ namespace WebCore {
return !(*this == other);
}
- RefPtr<CSSValue> kerning;
+ SVGLength kerning;
private:
StyleTextData();
@@ -192,7 +192,7 @@ namespace WebCore {
Color lightingColor;
// non-inherited text stuff lives here not in StyleTextData.
- RefPtr<CSSValue> baselineShiftValue;
+ SVGLength baselineShiftValue;
private:
StyleMiscData();
diff --git a/WebCore/rendering/style/StyleRareInheritedData.cpp b/WebCore/rendering/style/StyleRareInheritedData.cpp
index cb6edf3..6942809 100644
--- a/WebCore/rendering/style/StyleRareInheritedData.cpp
+++ b/WebCore/rendering/style/StyleRareInheritedData.cpp
@@ -77,7 +77,8 @@ StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
, userSelect(o.userSelect)
, colorSpace(o.colorSpace)
, hyphens(o.hyphens)
- , hyphenateCharacter(o.hyphenateCharacter)
+ , hyphenationString(o.hyphenationString)
+ , hyphenationLocale(o.hyphenationLocale)
{
}
@@ -121,7 +122,8 @@ bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
&& userSelect == o.userSelect
&& colorSpace == o.colorSpace
&& hyphens == o.hyphens
- && hyphenateCharacter == o.hyphenateCharacter;
+ && hyphenationString == o.hyphenationString
+ && hyphenationLocale == o.hyphenationLocale;
}
bool StyleRareInheritedData::shadowDataEquivalent(const StyleRareInheritedData& o) const
diff --git a/WebCore/rendering/style/StyleRareInheritedData.h b/WebCore/rendering/style/StyleRareInheritedData.h
index f6e3bf4..74d5fc9 100644
--- a/WebCore/rendering/style/StyleRareInheritedData.h
+++ b/WebCore/rendering/style/StyleRareInheritedData.h
@@ -82,7 +82,8 @@ public:
unsigned colorSpace : 1; // ColorSpace
unsigned hyphens : 2; // Hyphens
- AtomicString hyphenateCharacter;
+ AtomicString hyphenationString;
+ AtomicString hyphenationLocale;
private:
StyleRareInheritedData();
diff --git a/WebCore/storage/Database.cpp b/WebCore/storage/Database.cpp
index 69f5036..9550083 100644
--- a/WebCore/storage/Database.cpp
+++ b/WebCore/storage/Database.cpp
@@ -68,9 +68,9 @@ public:
return new DatabaseCreationCallbackTask(database, creationCallback);
}
- virtual void performTask(ScriptExecutionContext* context)
+ virtual void performTask(ScriptExecutionContext*)
{
- m_creationCallback->handleEvent(context, m_database.get());
+ m_creationCallback->handleEvent(m_database.get());
}
private:
@@ -109,7 +109,7 @@ PassRefPtr<Database> Database::openDatabase(ScriptExecutionContext* context, con
if (context->isDocument()) {
Document* document = static_cast<Document*>(context);
if (Page* page = document->page())
- page->inspectorController()->didOpenDatabase(database.get(), context->securityOrigin()->host(), name, expectedVersion);
+ page->inspectorController()->didOpenDatabase(database, context->securityOrigin()->host(), name, expectedVersion);
}
#endif
@@ -270,8 +270,18 @@ void Database::changeVersion(const String& oldVersion, const String& newVersion,
scheduleTransaction();
}
-void Database::transaction(PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback,
- PassRefPtr<VoidCallback> successCallback, bool readOnly)
+void Database::transaction(PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback, PassRefPtr<VoidCallback> successCallback)
+{
+ runTransaction(callback, errorCallback, successCallback, false);
+}
+
+void Database::readTransaction(PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback, PassRefPtr<VoidCallback> successCallback)
+{
+ runTransaction(callback, errorCallback, successCallback, true);
+}
+
+void Database::runTransaction(PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback,
+ PassRefPtr<VoidCallback> successCallback, bool readOnly)
{
m_transactionQueue.append(SQLTransaction::create(this, callback, errorCallback, successCallback, 0, readOnly));
MutexLocker locker(m_transactionInProgressMutex);
diff --git a/WebCore/storage/Database.h b/WebCore/storage/Database.h
index e8482a7..47001a4 100644
--- a/WebCore/storage/Database.h
+++ b/WebCore/storage/Database.h
@@ -59,8 +59,8 @@ public:
virtual String version() const;
void changeVersion(const String& oldVersion, const String& newVersion, PassRefPtr<SQLTransactionCallback>,
PassRefPtr<SQLTransactionErrorCallback>, PassRefPtr<VoidCallback> successCallback);
- void transaction(PassRefPtr<SQLTransactionCallback>, PassRefPtr<SQLTransactionErrorCallback>,
- PassRefPtr<VoidCallback> successCallback, bool readOnly);
+ void transaction(PassRefPtr<SQLTransactionCallback>, PassRefPtr<SQLTransactionErrorCallback>, PassRefPtr<VoidCallback> successCallback);
+ void readTransaction(PassRefPtr<SQLTransactionCallback>, PassRefPtr<SQLTransactionErrorCallback>, PassRefPtr<VoidCallback> successCallback);
// Internal engine support
Vector<String> tableNames();
@@ -90,6 +90,8 @@ private:
Database(ScriptExecutionContext*, const String& name, const String& expectedVersion,
const String& displayName, unsigned long estimatedSize);
+ void runTransaction(PassRefPtr<SQLTransactionCallback>, PassRefPtr<SQLTransactionErrorCallback>,
+ PassRefPtr<VoidCallback> successCallback, bool readOnly);
bool openAndVerifyVersion(bool setVersionInNewDatabase, ExceptionCode&);
virtual bool performOpenAndVerify(bool setVersionInNewDatabase, ExceptionCode&);
diff --git a/WebCore/storage/Database.idl b/WebCore/storage/Database.idl
index ab79c97..20c2fa1 100644
--- a/WebCore/storage/Database.idl
+++ b/WebCore/storage/Database.idl
@@ -34,9 +34,9 @@ module storage {
NoStaticTables
] Database {
readonly attribute DOMString version;
- [Custom] void changeVersion(in DOMString oldVersion, in DOMString newVersion, in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback, in VoidCallback successCallback);
- [Custom] void transaction(in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback, in VoidCallback successCallback);
- [Custom] void readTransaction(in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback, in VoidCallback successCallback);
+ [RequiresAllArguments=Raise] void changeVersion(in DOMString oldVersion, in DOMString newVersion, in [Callback, Optional] SQLTransactionCallback callback, in [Callback, Optional] SQLTransactionErrorCallback errorCallback, in [Callback, Optional] VoidCallback successCallback);
+ [RequiresAllArguments=Raise] void transaction(in [Callback] SQLTransactionCallback callback, in [Callback, Optional] SQLTransactionErrorCallback errorCallback, in [Callback, Optional] VoidCallback successCallback);
+ [RequiresAllArguments=Raise] void readTransaction(in [Callback] SQLTransactionCallback callback, in [Callback, Optional] SQLTransactionErrorCallback errorCallback, in [Callback, Optional] VoidCallback successCallback);
};
}
diff --git a/WebCore/storage/DatabaseAuthorizer.h b/WebCore/storage/DatabaseAuthorizer.h
index af6e016..66bc5d8 100644
--- a/WebCore/storage/DatabaseAuthorizer.h
+++ b/WebCore/storage/DatabaseAuthorizer.h
@@ -36,8 +36,6 @@
namespace WebCore {
-class String;
-
extern const int SQLAuthAllow;
extern const int SQLAuthIgnore;
extern const int SQLAuthDeny;
diff --git a/WebCore/storage/DatabaseCallback.h b/WebCore/storage/DatabaseCallback.h
index 9ece2a3..8ad56ed 100644
--- a/WebCore/storage/DatabaseCallback.h
+++ b/WebCore/storage/DatabaseCallback.h
@@ -39,13 +39,12 @@ namespace WebCore {
class Database;
class DatabaseSync;
-class ScriptExecutionContext;
class DatabaseCallback : public ThreadSafeShared<DatabaseCallback> {
public:
virtual ~DatabaseCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, Database*) = 0;
- virtual bool handleEvent(ScriptExecutionContext*, DatabaseSync*) = 0;
+ virtual bool handleEvent(Database*) = 0;
+ virtual bool handleEvent(DatabaseSync*) = 0;
};
}
diff --git a/WebCore/storage/DatabaseSync.cpp b/WebCore/storage/DatabaseSync.cpp
index f64c27f..817fdcc 100644
--- a/WebCore/storage/DatabaseSync.cpp
+++ b/WebCore/storage/DatabaseSync.cpp
@@ -68,7 +68,7 @@ PassRefPtr<DatabaseSync> DatabaseSync::openDatabaseSync(ScriptExecutionContext*
if (database->isNew() && creationCallback.get()) {
database->m_expectedVersion = "";
LOG(StorageAPI, "Invoking the creation callback for database %p\n", database.get());
- creationCallback->handleEvent(context, database.get());
+ creationCallback->handleEvent(database.get());
}
return database;
@@ -128,7 +128,17 @@ void DatabaseSync::changeVersion(const String& oldVersion, const String& newVers
setExpectedVersion(newVersion);
}
-void DatabaseSync::transaction(PassRefPtr<SQLTransactionSyncCallback> callback, bool readOnly, ExceptionCode& ec)
+void DatabaseSync::transaction(PassRefPtr<SQLTransactionSyncCallback> callback, ExceptionCode& ec)
+{
+ runTransaction(callback, false, ec);
+}
+
+void DatabaseSync::readTransaction(PassRefPtr<SQLTransactionSyncCallback> callback, ExceptionCode& ec)
+{
+ runTransaction(callback, true, ec);
+}
+
+void DatabaseSync::runTransaction(PassRefPtr<SQLTransactionSyncCallback> callback, bool readOnly, ExceptionCode& ec)
{
ASSERT(m_scriptExecutionContext->isContextThread());
diff --git a/WebCore/storage/DatabaseSync.h b/WebCore/storage/DatabaseSync.h
index 2019f85..6563b23 100644
--- a/WebCore/storage/DatabaseSync.h
+++ b/WebCore/storage/DatabaseSync.h
@@ -56,7 +56,8 @@ public:
static PassRefPtr<DatabaseSync> openDatabaseSync(ScriptExecutionContext*, const String& name, const String& expectedVersion,
const String& displayName, unsigned long estimatedSize, PassRefPtr<DatabaseCallback>, ExceptionCode&);
void changeVersion(const String& oldVersion, const String& newVersion, PassRefPtr<SQLTransactionSyncCallback>, ExceptionCode&);
- void transaction(PassRefPtr<SQLTransactionSyncCallback>, bool readOnly, ExceptionCode&);
+ void transaction(PassRefPtr<SQLTransactionSyncCallback>, ExceptionCode&);
+ void readTransaction(PassRefPtr<SQLTransactionSyncCallback>, ExceptionCode&);
virtual void markAsDeletedAndClose();
virtual void closeImmediately();
@@ -64,6 +65,7 @@ public:
private:
DatabaseSync(ScriptExecutionContext*, const String& name, const String& expectedVersion,
const String& displayName, unsigned long estimatedSize);
+ void runTransaction(PassRefPtr<SQLTransactionSyncCallback>, bool readOnly, ExceptionCode&);
};
} // namespace WebCore
diff --git a/WebCore/storage/DatabaseSync.idl b/WebCore/storage/DatabaseSync.idl
index 30adf38..0064991 100644
--- a/WebCore/storage/DatabaseSync.idl
+++ b/WebCore/storage/DatabaseSync.idl
@@ -36,9 +36,9 @@ module storage {
NoStaticTables
] DatabaseSync {
readonly attribute DOMString version;
- [Custom] void changeVersion(in DOMString oldVersion, in DOMString newVersion, in SQLTransactionSyncCallback callback);
- [Custom] void transaction(in SQLTransactionSyncCallback callback);
- [Custom] void readTransaction(in SQLTransactionSyncCallback callback);
+ [RequiresAllArguments=Raise] void changeVersion(in DOMString oldVersion, in DOMString newVersion, in [Callback, Optional] SQLTransactionSyncCallback callback) raises(DOMException);
+ [RequiresAllArguments=Raise] void transaction(in [Callback] SQLTransactionSyncCallback callback) raises(DOMException);
+ [RequiresAllArguments=Raise] void readTransaction(in [Callback] SQLTransactionSyncCallback callback) raises(DOMException);
};
}
diff --git a/WebCore/storage/DatabaseTrackerClient.h b/WebCore/storage/DatabaseTrackerClient.h
index b43123c..2e0497f 100644
--- a/WebCore/storage/DatabaseTrackerClient.h
+++ b/WebCore/storage/DatabaseTrackerClient.h
@@ -30,10 +30,11 @@
#if ENABLE(DATABASE)
+#include <wtf/Forward.h>
+
namespace WebCore {
class SecurityOrigin;
-class String;
class DatabaseTrackerClient {
public:
diff --git a/WebCore/storage/EntryCallback.h b/WebCore/storage/EntryCallback.h
index 58aa34a..121bf07 100644
--- a/WebCore/storage/EntryCallback.h
+++ b/WebCore/storage/EntryCallback.h
@@ -43,7 +43,7 @@ class ScriptExecutionContext;
class EntryCallback : public RefCounted<EntryCallback> {
public:
virtual ~EntryCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, Entry*) = 0;
+ virtual bool handleEvent(Entry*) = 0;
};
} // namespace
diff --git a/WebCore/storage/ErrorCallback.h b/WebCore/storage/ErrorCallback.h
index 8cddbc7..91143e8 100644
--- a/WebCore/storage/ErrorCallback.h
+++ b/WebCore/storage/ErrorCallback.h
@@ -43,7 +43,7 @@ class ScriptExecutionContext;
class ErrorCallback : public RefCounted<ErrorCallback> {
public:
virtual ~ErrorCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, FileError*) = 0;
+ virtual bool handleEvent(FileError*) = 0;
};
} // namespace
diff --git a/WebCore/storage/FileSystemCallback.h b/WebCore/storage/FileSystemCallback.h
index a3bf34d..19f44df 100644
--- a/WebCore/storage/FileSystemCallback.h
+++ b/WebCore/storage/FileSystemCallback.h
@@ -43,7 +43,7 @@ class ScriptExecutionContext;
class FileSystemCallback : public RefCounted<FileSystemCallback> {
public:
virtual ~FileSystemCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, DOMFileSystem*) = 0;
+ virtual bool handleEvent(DOMFileSystem*) = 0;
};
} // namespace
diff --git a/WebCore/storage/IDBAny.cpp b/WebCore/storage/IDBAny.cpp
index da0cb22..93d2633 100644
--- a/WebCore/storage/IDBAny.cpp
+++ b/WebCore/storage/IDBAny.cpp
@@ -28,10 +28,11 @@
#if ENABLE(INDEXED_DATABASE)
-#include "IDBDatabaseRequest.h"
+#include "IDBCursor.h"
+#include "IDBDatabase.h"
#include "IDBFactory.h"
#include "IDBIndex.h"
-#include "IDBObjectStoreRequest.h"
+#include "IDBObjectStore.h"
#include "SerializedScriptValue.h"
namespace WebCore {
@@ -50,10 +51,16 @@ IDBAny::~IDBAny()
{
}
-PassRefPtr<IDBDatabaseRequest> IDBAny::idbDatabaseRequest()
+PassRefPtr<IDBCursor> IDBAny::idbCursor()
{
- ASSERT(m_type == IDBDatabaseRequestType);
- return m_idbDatabaseRequest;
+ ASSERT(m_type == IDBCursorType);
+ return m_idbCursor;
+}
+
+PassRefPtr<IDBDatabase> IDBAny::idbDatabase()
+{
+ ASSERT(m_type == IDBDatabaseType);
+ return m_idbDatabase;
}
PassRefPtr<IDBIndex> IDBAny::idbIndex()
@@ -68,10 +75,10 @@ PassRefPtr<IDBKey> IDBAny::idbKey()
return m_idbKey;
}
-PassRefPtr<IDBObjectStoreRequest> IDBAny::idbObjectStoreRequest()
+PassRefPtr<IDBObjectStore> IDBAny::idbObjectStore()
{
- ASSERT(m_type == IDBObjectStoreRequestType);
- return m_idbObjectStoreRequest;
+ ASSERT(m_type == IDBObjectStoreType);
+ return m_idbObjectStore;
}
PassRefPtr<IDBFactory> IDBAny::idbFactory()
@@ -92,17 +99,24 @@ void IDBAny::set()
m_type = NullType;
}
-void IDBAny::set(PassRefPtr<IDBDatabaseRequest> value)
+void IDBAny::set(PassRefPtr<IDBCursor> value)
+{
+ ASSERT(m_type == UndefinedType);
+ m_type = IDBCursorType;
+ m_idbCursor = value;
+}
+
+void IDBAny::set(PassRefPtr<IDBDatabase> value)
{
ASSERT(m_type == UndefinedType);
- m_type = IDBDatabaseRequestType;
- m_idbDatabaseRequest = value;
+ m_type = IDBDatabaseType;
+ m_idbDatabase = value;
}
void IDBAny::set(PassRefPtr<IDBIndex> value)
{
ASSERT(m_type == UndefinedType);
- m_type = IDBDatabaseRequestType;
+ m_type = IDBDatabaseType;
m_idbIndex = value;
}
@@ -113,11 +127,11 @@ void IDBAny::set(PassRefPtr<IDBKey> value)
m_idbKey = value;
}
-void IDBAny::set(PassRefPtr<IDBObjectStoreRequest> value)
+void IDBAny::set(PassRefPtr<IDBObjectStore> value)
{
ASSERT(m_type == UndefinedType);
- m_type = IDBObjectStoreRequestType;
- m_idbObjectStoreRequest = value;
+ m_type = IDBObjectStoreType;
+ m_idbObjectStore = value;
}
void IDBAny::set(PassRefPtr<IDBFactory> value)
diff --git a/WebCore/storage/IDBAny.h b/WebCore/storage/IDBAny.h
index a7859a1..950660a 100644
--- a/WebCore/storage/IDBAny.h
+++ b/WebCore/storage/IDBAny.h
@@ -34,10 +34,11 @@
namespace WebCore {
-class IDBDatabaseRequest;
+class IDBCursor;
+class IDBDatabase;
class IDBIndex;
class IDBKey;
-class IDBObjectStoreRequest;
+class IDBObjectStore;
class IDBFactory;
class SerializedScriptValue;
@@ -56,30 +57,33 @@ public:
enum Type {
UndefinedType = 0,
NullType,
- IDBDatabaseRequestType,
+ IDBCursorType,
+ IDBDatabaseType,
IDBFactoryType,
IDBIndexType,
IDBKeyType,
- IDBObjectStoreRequestType,
+ IDBObjectStoreType,
SerializedScriptValueType
};
Type type() const { return m_type; }
// Use type() to figure out which one of these you're allowed to call.
- PassRefPtr<IDBDatabaseRequest> idbDatabaseRequest();
+ PassRefPtr<IDBCursor> idbCursor();
+ PassRefPtr<IDBDatabase> idbDatabase();
PassRefPtr<IDBFactory> idbFactory();
PassRefPtr<IDBIndex> idbIndex();
PassRefPtr<IDBKey> idbKey();
- PassRefPtr<IDBObjectStoreRequest> idbObjectStoreRequest();
+ PassRefPtr<IDBObjectStore> idbObjectStore();
PassRefPtr<SerializedScriptValue> serializedScriptValue();
// Set can only be called once.
void set(); // For "null".
- void set(PassRefPtr<IDBDatabaseRequest>);
+ void set(PassRefPtr<IDBCursor>);
+ void set(PassRefPtr<IDBDatabase>);
void set(PassRefPtr<IDBFactory>);
void set(PassRefPtr<IDBIndex>);
void set(PassRefPtr<IDBKey>);
- void set(PassRefPtr<IDBObjectStoreRequest>);
+ void set(PassRefPtr<IDBObjectStore>);
void set(PassRefPtr<SerializedScriptValue>);
private:
@@ -88,11 +92,12 @@ private:
Type m_type;
// Only one of the following should ever be in use at any given time.
- RefPtr<IDBDatabaseRequest> m_idbDatabaseRequest;
+ RefPtr<IDBCursor> m_idbCursor;
+ RefPtr<IDBDatabase> m_idbDatabase;
RefPtr<IDBFactory> m_idbFactory;
RefPtr<IDBIndex> m_idbIndex;
RefPtr<IDBKey> m_idbKey;
- RefPtr<IDBObjectStoreRequest> m_idbObjectStoreRequest;
+ RefPtr<IDBObjectStore> m_idbObjectStore;
RefPtr<SerializedScriptValue> m_serializedScriptValue;
};
diff --git a/WebCore/storage/IDBCallbacks.h b/WebCore/storage/IDBCallbacks.h
index d79cdec..bc48477 100644
--- a/WebCore/storage/IDBCallbacks.h
+++ b/WebCore/storage/IDBCallbacks.h
@@ -29,11 +29,12 @@
#ifndef IDBCallbacks_h
#define IDBCallbacks_h
-#include "IDBDatabase.h"
+#include "IDBCursorBackendInterface.h"
+#include "IDBDatabaseBackendInterface.h"
#include "IDBDatabaseError.h"
#include "IDBIndexBackendInterface.h"
#include "IDBKey.h"
-#include "IDBObjectStore.h"
+#include "IDBObjectStoreBackendInterface.h"
#include "SerializedScriptValue.h"
#include <wtf/RefCounted.h>
@@ -47,10 +48,11 @@ public:
virtual void onError(PassRefPtr<IDBDatabaseError>) = 0;
virtual void onSuccess() = 0; // For "null".
- virtual void onSuccess(PassRefPtr<IDBDatabase>) = 0;
+ virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>) = 0;
+ virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) = 0;
virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>) = 0;
virtual void onSuccess(PassRefPtr<IDBKey>) = 0;
- virtual void onSuccess(PassRefPtr<IDBObjectStore>) = 0;
+ virtual void onSuccess(PassRefPtr<IDBObjectStoreBackendInterface>) = 0;
virtual void onSuccess(PassRefPtr<SerializedScriptValue>) = 0;
};
diff --git a/WebCore/storage/IDBDatabaseRequest.cpp b/WebCore/storage/IDBCursor.cpp
index 8a40e9e..de752f5 100644
--- a/WebCore/storage/IDBDatabaseRequest.cpp
+++ b/WebCore/storage/IDBCursor.cpp
@@ -24,48 +24,63 @@
*/
#include "config.h"
-#include "IDBDatabaseRequest.h"
+#include "IDBCursor.h"
+
+#if ENABLE(INDEXED_DATABASE)
#include "IDBAny.h"
-#include "IDBFactoryBackendInterface.h"
-#include "IDBObjectStoreRequest.h"
+#include "IDBCallbacks.h"
+#include "IDBCursorBackendInterface.h"
+#include "IDBKey.h"
#include "IDBRequest.h"
#include "ScriptExecutionContext.h"
-
-#if ENABLE(INDEXED_DATABASE)
+#include "SerializedScriptValue.h"
namespace WebCore {
-IDBDatabaseRequest::IDBDatabaseRequest(PassRefPtr<IDBDatabase> database)
- : m_database(database)
+IDBCursor::IDBCursor(PassRefPtr<IDBCursorBackendInterface> backend)
+ : m_backend(backend)
+{
+}
+
+IDBCursor::~IDBCursor()
{
- // We pass a reference to this object before it can be adopted.
- relaxAdoptionRequirement();
}
-IDBDatabaseRequest::~IDBDatabaseRequest()
+unsigned short IDBCursor::direction() const
{
+ return m_backend->direction();
}
-PassRefPtr<IDBRequest> IDBDatabaseRequest::createObjectStore(ScriptExecutionContext* context, const String& name, const String& keyPath, bool autoIncrement)
+PassRefPtr<IDBKey> IDBCursor::key() const
+{
+ return m_backend->key();
+}
+
+PassRefPtr<IDBAny> IDBCursor::value() const
+{
+ return m_backend->value();
+}
+
+PassRefPtr<IDBRequest> IDBCursor::update(ScriptExecutionContext* context, PassRefPtr<SerializedScriptValue> value)
{
RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
- m_database->createObjectStore(name, keyPath, autoIncrement, request);
- return request;
+ m_backend->update(value, request);
+ return request.release();
}
-PassRefPtr<IDBObjectStoreRequest> IDBDatabaseRequest::objectStore(const String& name, unsigned short mode)
+PassRefPtr<IDBRequest> IDBCursor::continueFunction(ScriptExecutionContext* context, PassRefPtr<IDBKey> key)
{
- RefPtr<IDBObjectStore> objectStore = m_database->objectStore(name, mode);
- ASSERT(objectStore); // FIXME: If this is null, we should raise a NOT_FOUND_ERR.
- return IDBObjectStoreRequest::create(objectStore.release());
+ RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
+ m_backend->continueFunction(key, request);
+ return request.release();
}
-PassRefPtr<IDBRequest> IDBDatabaseRequest::removeObjectStore(ScriptExecutionContext* context, const String& name)
+PassRefPtr<IDBRequest> IDBCursor::remove(ScriptExecutionContext* context)
{
RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
- m_database->removeObjectStore(name, request);
- return request;
+ m_backend->remove(request);
+ return request.release();
}
} // namespace WebCore
diff --git a/WebCore/storage/IDBDatabaseRequest.h b/WebCore/storage/IDBCursor.h
index fd19882..ccce001 100644
--- a/WebCore/storage/IDBDatabaseRequest.h
+++ b/WebCore/storage/IDBCursor.h
@@ -23,50 +23,56 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef IDBDatabaseRequest_h
-#define IDBDatabaseRequest_h
+#ifndef IDBCursor_h
+#define IDBCursor_h
+
+#if ENABLE(INDEXED_DATABASE)
-#include "DOMStringList.h"
-#include "IDBDatabase.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
-
-#if ENABLE(INDEXED_DATABASE)
+#include <wtf/Threading.h>
namespace WebCore {
class IDBAny;
-class IDBObjectStoreRequest;
+class IDBCallbacks;
+class IDBCursorBackendInterface;
+class IDBKey;
class IDBRequest;
class ScriptExecutionContext;
+class SerializedScriptValue;
-class IDBDatabaseRequest : public RefCounted<IDBDatabaseRequest> {
+class IDBCursor : public ThreadSafeShared<IDBCursor> {
public:
- static PassRefPtr<IDBDatabaseRequest> create(PassRefPtr<IDBDatabase> database)
+ enum Direction {
+ NEXT = 0,
+ NEXT_NO_DUPLICATE = 1,
+ PREV = 2,
+ PREV_NO_DUPLICATE = 3,
+ };
+ static PassRefPtr<IDBCursor> create(PassRefPtr<IDBCursorBackendInterface> backend)
{
- return adoptRef(new IDBDatabaseRequest(database));
+ return adoptRef(new IDBCursor(backend));
}
- ~IDBDatabaseRequest();
+ virtual ~IDBCursor();
// Implement the IDL
- String name() const { return m_database->name(); }
- String description() const { return m_database->description(); }
- String version() const { return m_database->version(); }
- PassRefPtr<DOMStringList> objectStores() const { return m_database->objectStores(); }
-
- PassRefPtr<IDBRequest> createObjectStore(ScriptExecutionContext*, const String& name, const String& keyPath = String(), bool autoIncrement = false);
- PassRefPtr<IDBObjectStoreRequest> objectStore(const String& name, unsigned short mode = 0); // FIXME: Use constant rather than 0.
- PassRefPtr<IDBRequest> removeObjectStore(ScriptExecutionContext*, const String& name);
+ virtual unsigned short direction() const;
+ virtual PassRefPtr<IDBKey> key() const;
+ virtual PassRefPtr<IDBAny> value() const;
+ virtual PassRefPtr<IDBRequest> update(ScriptExecutionContext*, PassRefPtr<SerializedScriptValue>);
+ virtual PassRefPtr<IDBRequest> continueFunction(ScriptExecutionContext*, PassRefPtr<IDBKey> = 0);
+ virtual PassRefPtr<IDBRequest> remove(ScriptExecutionContext*);
private:
- IDBDatabaseRequest(PassRefPtr<IDBDatabase>);
+ explicit IDBCursor(PassRefPtr<IDBCursorBackendInterface>);
- RefPtr<IDBDatabase> m_database;
+ RefPtr<IDBCursorBackendInterface> m_backend;
};
} // namespace WebCore
#endif
-#endif // IDBDatabaseRequest_h
+#endif // IDBCursor_h
diff --git a/WebCore/storage/IDBCursor.idl b/WebCore/storage/IDBCursor.idl
new file mode 100644
index 0000000..3702ef3
--- /dev/null
+++ b/WebCore/storage/IDBCursor.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE
+ ] IDBCursor {
+ const unsigned short NEXT = 0;
+ const unsigned short NEXT_NO_DUPLICATE = 1;
+ const unsigned short PREV = 2;
+ const unsigned short PREV_NO_DUPLICATE = 3;
+
+ readonly attribute unsigned short direction;
+ readonly attribute IDBKey key;
+ readonly attribute IDBAny value;
+
+ [CallWith=ScriptExecutionContext] IDBRequest update(in SerializedScriptValue value);
+ [CallWith=ScriptExecutionContext, ImplementationFunction=continueFunction] IDBRequest continue(in [Optional] IDBKey key);
+ [CallWith=ScriptExecutionContext] IDBRequest remove();
+ };
+}
diff --git a/WebCore/storage/IDBCursorBackendImpl.cpp b/WebCore/storage/IDBCursorBackendImpl.cpp
new file mode 100644
index 0000000..4e08b8f
--- /dev/null
+++ b/WebCore/storage/IDBCursorBackendImpl.cpp
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBCursorBackendImpl.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "IDBAny.h"
+#include "IDBCallbacks.h"
+#include "IDBKeyRange.h"
+#include "IDBObjectStoreBackendImpl.h"
+#include "IDBRequest.h"
+#include "SerializedScriptValue.h"
+
+namespace WebCore {
+
+IDBCursorBackendImpl::IDBCursorBackendImpl(PassRefPtr<IDBObjectStoreBackendImpl> idbObjectStore, PassRefPtr<IDBKeyRange> keyRange, IDBCursor::Direction direction, PassRefPtr<IDBKey> key, PassRefPtr<SerializedScriptValue> value)
+ : m_idbObjectStore(idbObjectStore)
+ , m_keyRange(keyRange)
+ , m_direction(direction)
+ , m_key(key)
+ , m_value(IDBAny::create(value.get()))
+{
+}
+
+IDBCursorBackendImpl::~IDBCursorBackendImpl()
+{
+}
+
+unsigned short IDBCursorBackendImpl::direction() const
+{
+ return m_direction;
+}
+
+PassRefPtr<IDBKey> IDBCursorBackendImpl::key() const
+{
+ return m_key;
+}
+
+PassRefPtr<IDBAny> IDBCursorBackendImpl::value() const
+{
+ return m_value;
+}
+
+void IDBCursorBackendImpl::update(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBCallbacks>)
+{
+ // FIXME: Implement this method.
+ ASSERT_NOT_REACHED();
+}
+
+void IDBCursorBackendImpl::continueFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>)
+{
+ // FIXME: Implement this method.
+ ASSERT_NOT_REACHED();
+}
+
+void IDBCursorBackendImpl::remove(PassRefPtr<IDBCallbacks>)
+{
+ // FIXME: Implement this method.
+ ASSERT_NOT_REACHED();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBCursorBackendImpl.h b/WebCore/storage/IDBCursorBackendImpl.h
new file mode 100644
index 0000000..9ef62fe
--- /dev/null
+++ b/WebCore/storage/IDBCursorBackendImpl.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#ifndef IDBCursorBackendImpl_h
+#define IDBCursorBackendImpl_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "IDBCursor.h"
+#include "IDBCursorBackendInterface.h"
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+
+class IDBKeyRange;
+class IDBObjectStoreBackendImpl;
+class SerializedScriptValue;
+
+class IDBCursorBackendImpl : public IDBCursorBackendInterface {
+public:
+ static PassRefPtr<IDBCursorBackendImpl> create(PassRefPtr<IDBObjectStoreBackendImpl> objectStore, PassRefPtr<IDBKeyRange> keyRange, IDBCursor::Direction direction, PassRefPtr<IDBKey> key, PassRefPtr<SerializedScriptValue> value)
+ {
+ return adoptRef(new IDBCursorBackendImpl(objectStore, keyRange, direction, key, value));
+ }
+ virtual ~IDBCursorBackendImpl();
+
+ virtual unsigned short direction() const;
+ virtual PassRefPtr<IDBKey> key() const;
+ virtual PassRefPtr<IDBAny> value() const;
+ virtual void update(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBCallbacks>);
+ virtual void continueFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>);
+ virtual void remove(PassRefPtr<IDBCallbacks>);
+
+private:
+ IDBCursorBackendImpl(PassRefPtr<IDBObjectStoreBackendImpl>, PassRefPtr<IDBKeyRange>, IDBCursor::Direction, PassRefPtr<IDBKey>, PassRefPtr<SerializedScriptValue>);
+
+ RefPtr<IDBObjectStoreBackendImpl> m_idbObjectStore;
+ RefPtr<IDBKeyRange> m_keyRange;
+ IDBCursor::Direction m_direction;
+ RefPtr<IDBKey> m_key;
+ RefPtr<IDBAny> m_value;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+
+#endif // IDBCursorBackendImpl_h
diff --git a/WebCore/storage/IDBObjectStoreRequest.h b/WebCore/storage/IDBCursorBackendInterface.h
index bfd01f0..4b209c4 100644
--- a/WebCore/storage/IDBObjectStoreRequest.h
+++ b/WebCore/storage/IDBCursorBackendInterface.h
@@ -23,56 +23,38 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef IDBObjectStoreRequest_h
-#define IDBObjectStoreRequest_h
+#ifndef IDBCursorBackendInterface_h
+#define IDBCursorBackendInterface_h
+
+#if ENABLE(INDEXED_DATABASE)
-#include "IDBObjectStore.h"
-#include "IDBRequest.h"
-#include "PlatformString.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
-#include <wtf/RefPtr.h>
-
-#if ENABLE(INDEXED_DATABASE)
+#include <wtf/Threading.h>
namespace WebCore {
-class DOMStringList;
class IDBAny;
-class IDBIndexRequest;
+class IDBCallbacks;
class IDBKey;
+class IDBRequest;
class SerializedScriptValue;
-class IDBObjectStoreRequest : public RefCounted<IDBObjectStoreRequest> {
+class IDBCursorBackendInterface : public ThreadSafeShared<IDBCursorBackendInterface> {
public:
- static PassRefPtr<IDBObjectStoreRequest> create(PassRefPtr<IDBObjectStore> idbObjectStore)
- {
- return adoptRef(new IDBObjectStoreRequest(idbObjectStore));
- }
- ~IDBObjectStoreRequest() { }
+ virtual ~IDBCursorBackendInterface() {}
- String name() const;
- String keyPath() const;
- PassRefPtr<DOMStringList> indexNames() const;
+ virtual unsigned short direction() const = 0;
+ virtual PassRefPtr<IDBKey> key() const = 0;
+ virtual PassRefPtr<IDBAny> value() const = 0;
- PassRefPtr<IDBRequest> get(ScriptExecutionContext*, PassRefPtr<IDBKey> key);
- PassRefPtr<IDBRequest> add(ScriptExecutionContext*, PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key = 0);
- PassRefPtr<IDBRequest> put(ScriptExecutionContext*, PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key = 0);
- PassRefPtr<IDBRequest> remove(ScriptExecutionContext*, PassRefPtr<IDBKey> key);
-
- PassRefPtr<IDBRequest> createIndex(ScriptExecutionContext*, const String& name, const String& keyPath, bool unique = false);
- PassRefPtr<IDBIndex> index(const String& name);
- PassRefPtr<IDBRequest> removeIndex(ScriptExecutionContext*, const String& name);
-
-private:
- IDBObjectStoreRequest(PassRefPtr<IDBObjectStore>);
-
- RefPtr<IDBObjectStore> m_objectStore;
+ virtual void update(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBCallbacks>) = 0;
+ virtual void continueFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0;
+ virtual void remove(PassRefPtr<IDBCallbacks>) = 0;
};
} // namespace WebCore
#endif
-#endif // IDBObjectStoreRequest_h
-
+#endif // IDBCursorBackendInterface_h
diff --git a/WebCore/storage/IDBDatabase.cpp b/WebCore/storage/IDBDatabase.cpp
new file mode 100644
index 0000000..fa1807c
--- /dev/null
+++ b/WebCore/storage/IDBDatabase.cpp
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBDatabase.h"
+
+#include "IDBAny.h"
+#include "IDBFactoryBackendInterface.h"
+#include "IDBObjectStore.h"
+#include "IDBRequest.h"
+#include "IDBTransaction.h"
+#include "ScriptExecutionContext.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+IDBDatabase::IDBDatabase(PassRefPtr<IDBDatabaseBackendInterface> backend)
+ : m_backend(backend)
+{
+ // We pass a reference to this object before it can be adopted.
+ relaxAdoptionRequirement();
+}
+
+IDBDatabase::~IDBDatabase()
+{
+}
+
+PassRefPtr<IDBRequest> IDBDatabase::createObjectStore(ScriptExecutionContext* context, const String& name, const String& keyPath, bool autoIncrement)
+{
+ RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
+ m_backend->createObjectStore(name, keyPath, autoIncrement, request);
+ return request;
+}
+
+PassRefPtr<IDBObjectStore> IDBDatabase::objectStore(const String& name, unsigned short mode)
+{
+ RefPtr<IDBObjectStoreBackendInterface> objectStore = m_backend->objectStore(name, mode);
+ ASSERT(objectStore); // FIXME: If this is null, we should raise a NOT_FOUND_ERR.
+ return IDBObjectStore::create(objectStore.release());
+}
+
+PassRefPtr<IDBRequest> IDBDatabase::removeObjectStore(ScriptExecutionContext* context, const String& name)
+{
+ RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
+ m_backend->removeObjectStore(name, request);
+ return request;
+}
+
+PassRefPtr<IDBTransaction> IDBDatabase::transaction(ScriptExecutionContext* context, DOMStringList* storeNames, unsigned short mode, unsigned long timeout)
+{
+ // We need to create a new transaction synchronously. Locks are acquired asynchronously. Operations
+ // can be queued against the transaction at any point. They will start executing as soon as the
+ // appropriate locks have been acquired.
+ RefPtr<IDBTransactionBackendInterface> transactionBackend = m_backend->transaction(storeNames, mode, timeout);
+ RefPtr<IDBTransaction> transaction = IDBTransaction::create(context, transactionBackend.release(), this);
+ return transaction.release();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBDatabase.h b/WebCore/storage/IDBDatabase.h
index 0055ad1..6900efd 100644
--- a/WebCore/storage/IDBDatabase.h
+++ b/WebCore/storage/IDBDatabase.h
@@ -26,37 +26,45 @@
#ifndef IDBDatabase_h
#define IDBDatabase_h
-#include "PlatformString.h"
+#include "DOMStringList.h"
+#include "IDBDatabaseBackendInterface.h"
+#include "IDBTransaction.h"
#include <wtf/PassRefPtr.h>
-#include <wtf/Threading.h>
+#include <wtf/RefCounted.h>
+#include <wtf/RefPtr.h>
#if ENABLE(INDEXED_DATABASE)
namespace WebCore {
-class DOMStringList;
-class Frame;
-class IDBCallbacks;
+class IDBAny;
class IDBObjectStore;
+class IDBRequest;
+class ScriptExecutionContext;
-// This class is shared by IDBDatabaseRequest (async) and IDBDatabaseSync (sync).
-// This is implemented by IDBDatabaseImpl and optionally others (in order to proxy
-// calls across process barriers). All calls to these classes should be non-blocking and
-// trigger work on a background thread if necessary.
-class IDBDatabase : public ThreadSafeShared<IDBDatabase> {
+class IDBDatabase : public RefCounted<IDBDatabase> {
public:
- virtual ~IDBDatabase() { }
+ static PassRefPtr<IDBDatabase> create(PassRefPtr<IDBDatabaseBackendInterface> database)
+ {
+ return adoptRef(new IDBDatabase(database));
+ }
+ ~IDBDatabase();
- virtual String name() const = 0;
- virtual String description() const = 0;
- virtual String version() const = 0;
- virtual PassRefPtr<DOMStringList> objectStores() const = 0;
+ // Implement the IDL
+ String name() const { return m_backend->name(); }
+ String description() const { return m_backend->description(); }
+ String version() const { return m_backend->version(); }
+ PassRefPtr<DOMStringList> objectStores() const { return m_backend->objectStores(); }
- // FIXME: Add transaction and setVersion.
+ PassRefPtr<IDBRequest> createObjectStore(ScriptExecutionContext*, const String& name, const String& keyPath = String(), bool autoIncrement = false);
+ PassRefPtr<IDBObjectStore> objectStore(const String& name, unsigned short mode = IDBTransaction::READ_ONLY);
+ PassRefPtr<IDBRequest> removeObjectStore(ScriptExecutionContext*, const String& name);
+ PassRefPtr<IDBTransaction> transaction(ScriptExecutionContext*, DOMStringList* storeNames = 0, unsigned short mode = IDBTransaction::READ_ONLY,
+ unsigned long timeout = 0); // FIXME: what should the default timeout be?
+private:
+ IDBDatabase(PassRefPtr<IDBDatabaseBackendInterface>);
- virtual void createObjectStore(const String& name, const String& keyPath, bool autoIncrement, PassRefPtr<IDBCallbacks>) = 0;
- virtual PassRefPtr<IDBObjectStore> objectStore(const String& name, unsigned short mode) = 0;
- virtual void removeObjectStore(const String& name, PassRefPtr<IDBCallbacks>) = 0;
+ RefPtr<IDBDatabaseBackendInterface> m_backend;
};
} // namespace WebCore
diff --git a/WebCore/storage/IDBDatabaseRequest.idl b/WebCore/storage/IDBDatabase.idl
index 548b221..4e3f620 100644
--- a/WebCore/storage/IDBDatabaseRequest.idl
+++ b/WebCore/storage/IDBDatabase.idl
@@ -27,19 +27,19 @@ module storage {
interface [
Conditional=INDEXED_DATABASE
- ] IDBDatabaseRequest {
+ ] IDBDatabase {
readonly attribute DOMString name;
readonly attribute DOMString description;
readonly attribute DOMString version;
readonly attribute DOMStringList objectStores;
- // FIXME: Add transaction.
// FIXME: Add setVersion.
[CallWith=ScriptExecutionContext] IDBRequest createObjectStore(in DOMString name, in [Optional, ConvertNullToNullString] DOMString keyPath, in [Optional] boolean autoIncrement);
// FIXME: objectStore needs to be able to raise an IDBDatabaseException.
- IDBObjectStoreRequest objectStore(in DOMString name, in [Optional] unsigned short mode);
+ IDBObjectStore objectStore(in DOMString name, in [Optional] unsigned short mode);
[CallWith=ScriptExecutionContext] IDBRequest removeObjectStore(in DOMString name);
+ [CallWith=ScriptExecutionContext] IDBTransaction transaction (in [Optional] DOMStringList storeNames, in [Optional] unsigned short mode, in [Optional] unsigned long timeout);
};
}
diff --git a/WebCore/storage/IDBDatabaseImpl.cpp b/WebCore/storage/IDBDatabaseBackendImpl.cpp
index 162efab..09b9dee 100644
--- a/WebCore/storage/IDBDatabaseImpl.cpp
+++ b/WebCore/storage/IDBDatabaseBackendImpl.cpp
@@ -24,28 +24,28 @@
*/
#include "config.h"
-#include "IDBDatabaseImpl.h"
+#include "IDBDatabaseBackendImpl.h"
#include "DOMStringList.h"
#include "IDBDatabaseException.h"
-#include "IDBObjectStoreImpl.h"
+#include "IDBObjectStoreBackendImpl.h"
#if ENABLE(INDEXED_DATABASE)
namespace WebCore {
-IDBDatabaseImpl::IDBDatabaseImpl(const String& name, const String& description, const String& version)
+IDBDatabaseBackendImpl::IDBDatabaseBackendImpl(const String& name, const String& description, const String& version)
: m_name(name)
, m_description(description)
, m_version(version)
{
}
-IDBDatabaseImpl::~IDBDatabaseImpl()
+IDBDatabaseBackendImpl::~IDBDatabaseBackendImpl()
{
}
-PassRefPtr<DOMStringList> IDBDatabaseImpl::objectStores() const
+PassRefPtr<DOMStringList> IDBDatabaseBackendImpl::objectStores() const
{
RefPtr<DOMStringList> objectStoreNames = DOMStringList::create();
for (ObjectStoreMap::const_iterator it = m_objectStores.begin(); it != m_objectStores.end(); ++it)
@@ -53,26 +53,26 @@ PassRefPtr<DOMStringList> IDBDatabaseImpl::objectStores() const
return objectStoreNames.release();
}
-void IDBDatabaseImpl::createObjectStore(const String& name, const String& keyPath, bool autoIncrement, PassRefPtr<IDBCallbacks> callbacks)
+void IDBDatabaseBackendImpl::createObjectStore(const String& name, const String& keyPath, bool autoIncrement, PassRefPtr<IDBCallbacks> callbacks)
{
if (m_objectStores.contains(name)) {
callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::CONSTRAINT_ERR, "An objectStore with that name already exists."));
return;
}
- RefPtr<IDBObjectStore> objectStore = IDBObjectStoreImpl::create(name, keyPath, autoIncrement);
+ RefPtr<IDBObjectStoreBackendInterface> objectStore = IDBObjectStoreBackendImpl::create(name, keyPath, autoIncrement);
m_objectStores.set(name, objectStore);
callbacks->onSuccess(objectStore.release());
}
-PassRefPtr<IDBObjectStore> IDBDatabaseImpl::objectStore(const String& name, unsigned short mode)
+PassRefPtr<IDBObjectStoreBackendInterface> IDBDatabaseBackendImpl::objectStore(const String& name, unsigned short mode)
{
// FIXME: If no transaction is running, this should implicitly start one.
ASSERT_UNUSED(mode, !mode); // FIXME: Handle non-standard modes.
return m_objectStores.get(name);
}
-void IDBDatabaseImpl::removeObjectStore(const String& name, PassRefPtr<IDBCallbacks> callbacks)
+void IDBDatabaseBackendImpl::removeObjectStore(const String& name, PassRefPtr<IDBCallbacks> callbacks)
{
if (!m_objectStores.contains(name)) {
callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::NOT_FOUND_ERR, "No objectStore with that name exists."));
@@ -83,6 +83,13 @@ void IDBDatabaseImpl::removeObjectStore(const String& name, PassRefPtr<IDBCallba
callbacks->onSuccess();
}
+PassRefPtr<IDBTransactionBackendInterface> IDBDatabaseBackendImpl::transaction(DOMStringList*, unsigned short, unsigned long)
+{
+ // FIXME: Ask the transaction manager for a new IDBTransactionBackendImpl.
+ ASSERT_NOT_REACHED();
+ return 0;
+}
+
} // namespace WebCore
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBDatabaseImpl.h b/WebCore/storage/IDBDatabaseBackendImpl.h
index 7203c5a..f6ff058 100644
--- a/WebCore/storage/IDBDatabaseImpl.h
+++ b/WebCore/storage/IDBDatabaseBackendImpl.h
@@ -23,8 +23,8 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef IDBDatabaseImpl_h
-#define IDBDatabaseImpl_h
+#ifndef IDBDatabaseBackendImpl_h
+#define IDBDatabaseBackendImpl_h
#include "IDBCallbacks.h"
#include "IDBDatabase.h"
@@ -35,13 +35,13 @@
namespace WebCore {
-class IDBDatabaseImpl : public IDBDatabase {
+class IDBDatabaseBackendImpl : public IDBDatabaseBackendInterface {
public:
- static PassRefPtr<IDBDatabase> create(const String& name, const String& description, const String& version)
+ static PassRefPtr<IDBDatabaseBackendInterface> create(const String& name, const String& description, const String& version)
{
- return adoptRef(new IDBDatabaseImpl(name, description, version));
+ return adoptRef(new IDBDatabaseBackendImpl(name, description, version));
}
- virtual ~IDBDatabaseImpl();
+ virtual ~IDBDatabaseBackendImpl();
// Implements IDBDatabase
virtual String name() const { return m_name; }
@@ -50,17 +50,17 @@ public:
virtual PassRefPtr<DOMStringList> objectStores() const;
virtual void createObjectStore(const String& name, const String& keyPath, bool autoIncrement, PassRefPtr<IDBCallbacks>);
- virtual PassRefPtr<IDBObjectStore> objectStore(const String& name, unsigned short mode);
+ virtual PassRefPtr<IDBObjectStoreBackendInterface> objectStore(const String& name, unsigned short mode);
virtual void removeObjectStore(const String& name, PassRefPtr<IDBCallbacks>);
-
+ virtual PassRefPtr<IDBTransactionBackendInterface> transaction(DOMStringList* storeNames, unsigned short mode, unsigned long timeout);
private:
- IDBDatabaseImpl(const String& name, const String& description, const String& version);
+ IDBDatabaseBackendImpl(const String& name, const String& description, const String& version);
String m_name;
String m_description;
String m_version;
- typedef HashMap<String, RefPtr<IDBObjectStore> > ObjectStoreMap;
+ typedef HashMap<String, RefPtr<IDBObjectStoreBackendInterface> > ObjectStoreMap;
ObjectStoreMap m_objectStores;
};
@@ -68,4 +68,4 @@ private:
#endif
-#endif // IDBDatabaseImpl_h
+#endif // IDBDatabaseBackendImpl_h
diff --git a/WebCore/storage/IDBDatabaseBackendInterface.h b/WebCore/storage/IDBDatabaseBackendInterface.h
new file mode 100644
index 0000000..ac12bf1
--- /dev/null
+++ b/WebCore/storage/IDBDatabaseBackendInterface.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBDatabaseBackendInterface_h
+#define IDBDatabaseBackendInterface_h
+
+#include "PlatformString.h"
+#include <wtf/PassRefPtr.h>
+#include <wtf/Threading.h>
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+class DOMStringList;
+class Frame;
+class IDBCallbacks;
+class IDBObjectStoreBackendInterface;
+class IDBTransactionBackendInterface;
+
+// This class is shared by IDBDatabase (async) and IDBDatabaseSync (sync).
+// This is implemented by IDBDatabaseBackendImpl and optionally others (in order to proxy
+// calls across process barriers). All calls to these classes should be non-blocking and
+// trigger work on a background thread if necessary.
+class IDBDatabaseBackendInterface : public ThreadSafeShared<IDBDatabaseBackendInterface> {
+public:
+ virtual ~IDBDatabaseBackendInterface() { }
+
+ virtual String name() const = 0;
+ virtual String description() const = 0;
+ virtual String version() const = 0;
+ virtual PassRefPtr<DOMStringList> objectStores() const = 0;
+
+ // FIXME: Add transaction and setVersion.
+
+ virtual void createObjectStore(const String& name, const String& keyPath, bool autoIncrement, PassRefPtr<IDBCallbacks>) = 0;
+ virtual PassRefPtr<IDBObjectStoreBackendInterface> objectStore(const String& name, unsigned short mode) = 0;
+ virtual void removeObjectStore(const String& name, PassRefPtr<IDBCallbacks>) = 0;
+ virtual PassRefPtr<IDBTransactionBackendInterface> transaction(DOMStringList* storeNames, unsigned short mode, unsigned long timeout) = 0;
+};
+
+} // namespace WebCore
+
+#endif
+
+#endif // IDBDatabaseBackendInterface_h
diff --git a/WebCore/storage/IDBFactoryBackendImpl.cpp b/WebCore/storage/IDBFactoryBackendImpl.cpp
index e965c3f..7bdd70d 100644
--- a/WebCore/storage/IDBFactoryBackendImpl.cpp
+++ b/WebCore/storage/IDBFactoryBackendImpl.cpp
@@ -30,7 +30,7 @@
#include "IDBFactoryBackendImpl.h"
#include "DOMStringList.h"
-#include "IDBDatabaseImpl.h"
+#include "IDBDatabaseBackendImpl.h"
#include "SecurityOrigin.h"
#include <wtf/Threading.h>
#include <wtf/UnusedParam.h>
@@ -54,16 +54,16 @@ IDBFactoryBackendImpl::~IDBFactoryBackendImpl()
void IDBFactoryBackendImpl::open(const String& name, const String& description, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<SecurityOrigin>, Frame*)
{
- RefPtr<IDBDatabase> database;
- IDBDatabaseMap::iterator it = m_databaseMap.find(name);
- if (it == m_databaseMap.end()) {
+ RefPtr<IDBDatabaseBackendInterface> databaseBackend;
+ IDBDatabaseBackendMap::iterator it = m_databaseBackendMap.find(name);
+ if (it == m_databaseBackendMap.end()) {
// FIXME: What should the version be? The spec doesn't define it yet.
- database = IDBDatabaseImpl::create(name, description, "");
- m_databaseMap.set(name, database);
+ databaseBackend = IDBDatabaseBackendImpl::create(name, description, "");
+ m_databaseBackendMap.set(name, databaseBackend);
} else
- database = it->second;
+ databaseBackend = it->second;
- callbacks->onSuccess(database.release());
+ callbacks->onSuccess(databaseBackend.release());
}
} // namespace WebCore
diff --git a/WebCore/storage/IDBFactoryBackendImpl.h b/WebCore/storage/IDBFactoryBackendImpl.h
index bb28b6d..bbcc537 100644
--- a/WebCore/storage/IDBFactoryBackendImpl.h
+++ b/WebCore/storage/IDBFactoryBackendImpl.h
@@ -48,8 +48,8 @@ public:
private:
IDBFactoryBackendImpl();
- typedef HashMap<String, RefPtr<IDBDatabase> > IDBDatabaseMap;
- IDBDatabaseMap m_databaseMap;
+ typedef HashMap<String, RefPtr<IDBDatabaseBackendInterface> > IDBDatabaseBackendMap;
+ IDBDatabaseBackendMap m_databaseBackendMap;
// We only create one instance of this class at a time.
static IDBFactoryBackendImpl* idbFactoryBackendImpl;
diff --git a/WebCore/storage/IDBObjectStoreRequest.cpp b/WebCore/storage/IDBObjectStore.cpp
index 0778214..b457cd1 100644
--- a/WebCore/storage/IDBObjectStoreRequest.cpp
+++ b/WebCore/storage/IDBObjectStore.cpp
@@ -24,12 +24,13 @@
*/
#include "config.h"
-#include "IDBObjectStoreRequest.h"
+#include "IDBObjectStore.h"
#include "DOMStringList.h"
#include "IDBAny.h"
#include "IDBIndex.h"
#include "IDBKey.h"
+#include "IDBKeyRange.h"
#include "SerializedScriptValue.h"
#include <wtf/UnusedParam.h>
@@ -37,77 +38,84 @@
namespace WebCore {
-IDBObjectStoreRequest::IDBObjectStoreRequest(PassRefPtr<IDBObjectStore> idbObjectStore)
+IDBObjectStore::IDBObjectStore(PassRefPtr<IDBObjectStoreBackendInterface> idbObjectStore)
: m_objectStore(idbObjectStore)
{
// We pass a reference to this object before it can be adopted.
relaxAdoptionRequirement();
}
-String IDBObjectStoreRequest::name() const
+String IDBObjectStore::name() const
{
return m_objectStore->name();
}
-String IDBObjectStoreRequest::keyPath() const
+String IDBObjectStore::keyPath() const
{
return m_objectStore->keyPath();
}
-PassRefPtr<DOMStringList> IDBObjectStoreRequest::indexNames() const
+PassRefPtr<DOMStringList> IDBObjectStore::indexNames() const
{
return m_objectStore->indexNames();
}
-PassRefPtr<IDBRequest> IDBObjectStoreRequest::get(ScriptExecutionContext* context, PassRefPtr<IDBKey> key)
+PassRefPtr<IDBRequest> IDBObjectStore::get(ScriptExecutionContext* context, PassRefPtr<IDBKey> key)
{
RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
m_objectStore->get(key, request);
return request;
}
-PassRefPtr<IDBRequest> IDBObjectStoreRequest::add(ScriptExecutionContext* context, PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key)
+PassRefPtr<IDBRequest> IDBObjectStore::add(ScriptExecutionContext* context, PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key)
{
RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
m_objectStore->put(value, key, true, request);
return request;
}
-PassRefPtr<IDBRequest> IDBObjectStoreRequest::put(ScriptExecutionContext* context, PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key)
+PassRefPtr<IDBRequest> IDBObjectStore::put(ScriptExecutionContext* context, PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key)
{
RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
m_objectStore->put(value, key, false, request);
return request;
}
-PassRefPtr<IDBRequest> IDBObjectStoreRequest::remove(ScriptExecutionContext* context, PassRefPtr<IDBKey> key)
+PassRefPtr<IDBRequest> IDBObjectStore::remove(ScriptExecutionContext* context, PassRefPtr<IDBKey> key)
{
RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
m_objectStore->remove(key, request);
return request;
}
-PassRefPtr<IDBRequest> IDBObjectStoreRequest::createIndex(ScriptExecutionContext* context, const String& name, const String& keyPath, bool unique)
+PassRefPtr<IDBRequest> IDBObjectStore::createIndex(ScriptExecutionContext* context, const String& name, const String& keyPath, bool unique)
{
RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
m_objectStore->createIndex(name, keyPath, unique, request);
return request;
}
-PassRefPtr<IDBIndex> IDBObjectStoreRequest::index(const String& name)
+PassRefPtr<IDBIndex> IDBObjectStore::index(const String& name)
{
RefPtr<IDBIndexBackendInterface> index = m_objectStore->index(name);
ASSERT(index); // FIXME: If this is null, we should raise a NOT_FOUND_ERR.
return IDBIndex::create(index.release());
}
-PassRefPtr<IDBRequest> IDBObjectStoreRequest::removeIndex(ScriptExecutionContext* context, const String& name)
+PassRefPtr<IDBRequest> IDBObjectStore::removeIndex(ScriptExecutionContext* context, const String& name)
{
RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
m_objectStore->removeIndex(name, request);
return request;
}
+PassRefPtr<IDBRequest> IDBObjectStore::openCursor(ScriptExecutionContext* context, PassRefPtr<IDBKeyRange> range, unsigned short direction)
+{
+ RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this));
+ m_objectStore->openCursor(range, direction, request);
+ return request.release();
+}
+
} // namespace WebCore
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBObjectStore.h b/WebCore/storage/IDBObjectStore.h
index 4a53eb4..035f5d8 100644
--- a/WebCore/storage/IDBObjectStore.h
+++ b/WebCore/storage/IDBObjectStore.h
@@ -26,34 +26,52 @@
#ifndef IDBObjectStore_h
#define IDBObjectStore_h
+#include "IDBCursor.h"
+#include "IDBKeyRange.h"
+#include "IDBObjectStoreBackendInterface.h"
+#include "IDBRequest.h"
#include "PlatformString.h"
-#include <wtf/Threading.h>
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+#include <wtf/RefPtr.h>
#if ENABLE(INDEXED_DATABASE)
namespace WebCore {
class DOMStringList;
-class IDBCallbacks;
-class IDBIndexBackendInterface;
+class IDBAny;
+class IDBIndexRequest;
class IDBKey;
class SerializedScriptValue;
-class IDBObjectStore : public ThreadSafeShared<IDBObjectStore> {
+class IDBObjectStore : public RefCounted<IDBObjectStore> {
public:
- virtual ~IDBObjectStore() { }
+ static PassRefPtr<IDBObjectStore> create(PassRefPtr<IDBObjectStoreBackendInterface> idbObjectStore)
+ {
+ return adoptRef(new IDBObjectStore(idbObjectStore));
+ }
+ ~IDBObjectStore() { }
- virtual String name() const = 0;
- virtual String keyPath() const = 0;
- virtual PassRefPtr<DOMStringList> indexNames() const = 0;
+ String name() const;
+ String keyPath() const;
+ PassRefPtr<DOMStringList> indexNames() const;
- virtual void get(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0;
- virtual void put(PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key, bool addOnly, PassRefPtr<IDBCallbacks>) = 0;
- virtual void remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0;
+ PassRefPtr<IDBRequest> get(ScriptExecutionContext*, PassRefPtr<IDBKey> key);
+ PassRefPtr<IDBRequest> add(ScriptExecutionContext*, PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key = 0);
+ PassRefPtr<IDBRequest> put(ScriptExecutionContext*, PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key = 0);
+ PassRefPtr<IDBRequest> remove(ScriptExecutionContext*, PassRefPtr<IDBKey> key);
- virtual void createIndex(const String& name, const String& keyPath, bool unique, PassRefPtr<IDBCallbacks>) = 0;
- virtual PassRefPtr<IDBIndexBackendInterface> index(const String& name) = 0;
- virtual void removeIndex(const String& name, PassRefPtr<IDBCallbacks>) = 0;
+ PassRefPtr<IDBRequest> createIndex(ScriptExecutionContext*, const String& name, const String& keyPath, bool unique = false);
+ PassRefPtr<IDBIndex> index(const String& name);
+ PassRefPtr<IDBRequest> removeIndex(ScriptExecutionContext*, const String& name);
+
+ PassRefPtr<IDBRequest> openCursor(ScriptExecutionContext*, PassRefPtr<IDBKeyRange> = 0, unsigned short direction = IDBCursor::NEXT);
+
+private:
+ IDBObjectStore(PassRefPtr<IDBObjectStoreBackendInterface>);
+
+ RefPtr<IDBObjectStoreBackendInterface> m_objectStore;
};
} // namespace WebCore
diff --git a/WebCore/storage/IDBObjectStoreRequest.idl b/WebCore/storage/IDBObjectStore.idl
index 6db6ad8..1649a1d 100644
--- a/WebCore/storage/IDBObjectStoreRequest.idl
+++ b/WebCore/storage/IDBObjectStore.idl
@@ -27,7 +27,7 @@ module storage {
interface [
Conditional=INDEXED_DATABASE
- ] IDBObjectStoreRequest {
+ ] IDBObjectStore {
[CallWith=ScriptExecutionContext] IDBRequest get(in IDBKey key);
// FIXME: Come to concensus re getAll.
// FIXME: SerializedScriptValue raises an exception if you pass in something that can't be serialized.
@@ -41,6 +41,8 @@ module storage {
IDBIndex index(in DOMString name);
[CallWith=ScriptExecutionContext] IDBRequest removeIndex(in DOMString name);
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in [Optional] IDBKeyRange range, in [Optional] unsigned short direction);
+
readonly attribute DOMString name;
readonly attribute [ConvertNullStringTo=Null] DOMString keyPath;
readonly attribute DOMStringList indexNames;
diff --git a/WebCore/storage/IDBObjectStoreImpl.cpp b/WebCore/storage/IDBObjectStoreBackendImpl.cpp
index 8c6444a..9732bc1 100755
--- a/WebCore/storage/IDBObjectStoreImpl.cpp
+++ b/WebCore/storage/IDBObjectStoreBackendImpl.cpp
@@ -24,24 +24,26 @@
*/
#include "config.h"
-#include "IDBObjectStoreImpl.h"
+#include "IDBObjectStoreBackendImpl.h"
#include "DOMStringList.h"
#include "IDBBindingUtilities.h"
#include "IDBCallbacks.h"
+#include "IDBCursorBackendImpl.h"
#include "IDBDatabaseException.h"
#include "IDBIndexBackendImpl.h"
+#include "IDBKeyRange.h"
#include "IDBKeyTree.h"
#if ENABLE(INDEXED_DATABASE)
namespace WebCore {
-IDBObjectStoreImpl::~IDBObjectStoreImpl()
+IDBObjectStoreBackendImpl::~IDBObjectStoreBackendImpl()
{
}
-IDBObjectStoreImpl::IDBObjectStoreImpl(const String& name, const String& keyPath, bool autoIncrement)
+IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl(const String& name, const String& keyPath, bool autoIncrement)
: m_name(name)
, m_keyPath(keyPath)
, m_autoIncrement(autoIncrement)
@@ -49,7 +51,7 @@ IDBObjectStoreImpl::IDBObjectStoreImpl(const String& name, const String& keyPath
{
}
-PassRefPtr<DOMStringList> IDBObjectStoreImpl::indexNames() const
+PassRefPtr<DOMStringList> IDBObjectStoreBackendImpl::indexNames() const
{
RefPtr<DOMStringList> indexNames = DOMStringList::create();
for (IndexMap::const_iterator it = m_indexes.begin(); it != m_indexes.end(); ++it)
@@ -57,7 +59,7 @@ PassRefPtr<DOMStringList> IDBObjectStoreImpl::indexNames() const
return indexNames.release();
}
-void IDBObjectStoreImpl::get(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
+void IDBObjectStoreBackendImpl::get(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
{
RefPtr<SerializedScriptValue> value = m_tree->get(key.get());
if (!value) {
@@ -67,7 +69,7 @@ void IDBObjectStoreImpl::get(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> ca
callbacks->onSuccess(value.get());
}
-void IDBObjectStoreImpl::put(PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> prpKey, bool addOnly, PassRefPtr<IDBCallbacks> callbacks)
+void IDBObjectStoreBackendImpl::put(PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> prpKey, bool addOnly, PassRefPtr<IDBCallbacks> callbacks)
{
RefPtr<IDBKey> key = prpKey;
@@ -95,13 +97,13 @@ void IDBObjectStoreImpl::put(PassRefPtr<SerializedScriptValue> value, PassRefPtr
callbacks->onSuccess(key.get());
}
-void IDBObjectStoreImpl::remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
+void IDBObjectStoreBackendImpl::remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
{
m_tree->remove(key.get());
callbacks->onSuccess();
}
-void IDBObjectStoreImpl::createIndex(const String& name, const String& keyPath, bool unique, PassRefPtr<IDBCallbacks> callbacks)
+void IDBObjectStoreBackendImpl::createIndex(const String& name, const String& keyPath, bool unique, PassRefPtr<IDBCallbacks> callbacks)
{
if (m_indexes.contains(name)) {
callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::CONSTRAINT_ERR, "Index name already exists."));
@@ -114,12 +116,12 @@ void IDBObjectStoreImpl::createIndex(const String& name, const String& keyPath,
callbacks->onSuccess(index.release());
}
-PassRefPtr<IDBIndexBackendInterface> IDBObjectStoreImpl::index(const String& name)
+PassRefPtr<IDBIndexBackendInterface> IDBObjectStoreBackendImpl::index(const String& name)
{
return m_indexes.get(name);
}
-void IDBObjectStoreImpl::removeIndex(const String& name, PassRefPtr<IDBCallbacks> callbacks)
+void IDBObjectStoreBackendImpl::removeIndex(const String& name, PassRefPtr<IDBCallbacks> callbacks)
{
if (!m_indexes.contains(name)) {
callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::NOT_FOUND_ERR, "Index name does not exist."));
@@ -130,6 +132,16 @@ void IDBObjectStoreImpl::removeIndex(const String& name, PassRefPtr<IDBCallbacks
callbacks->onSuccess();
}
+void IDBObjectStoreBackendImpl::openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks> callbacks)
+{
+ RefPtr<IDBKey> key = range->left();
+ RefPtr<SerializedScriptValue> value = m_tree->get(key.get());
+ if (value) {
+ RefPtr<IDBCursorBackendInterface> cursor = IDBCursorBackendImpl::create(this, range, static_cast<IDBCursor::Direction>(direction), key, value);
+ callbacks->onSuccess(cursor.release());
+ } else
+ callbacks->onSuccess();
+}
} // namespace WebCore
diff --git a/WebCore/storage/IDBObjectStoreImpl.h b/WebCore/storage/IDBObjectStoreBackendImpl.h
index f2c2e03..fc63658 100644
--- a/WebCore/storage/IDBObjectStoreImpl.h
+++ b/WebCore/storage/IDBObjectStoreBackendImpl.h
@@ -23,10 +23,10 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef IDBObjectStoreImpl_h
-#define IDBObjectStoreImpl_h
+#ifndef IDBObjectStoreBackendImpl_h
+#define IDBObjectStoreBackendImpl_h
-#include "IDBObjectStore.h"
+#include "IDBObjectStoreBackendInterface.h"
#include "StringHash.h"
#include <wtf/HashMap.h>
@@ -36,13 +36,13 @@ namespace WebCore {
template <typename ValueType> class IDBKeyTree;
-class IDBObjectStoreImpl : public IDBObjectStore {
+class IDBObjectStoreBackendImpl : public IDBObjectStoreBackendInterface {
public:
- static PassRefPtr<IDBObjectStore> create(const String& name, const String& keyPath, bool autoIncrement)
+ static PassRefPtr<IDBObjectStoreBackendInterface> create(const String& name, const String& keyPath, bool autoIncrement)
{
- return adoptRef(new IDBObjectStoreImpl(name, keyPath, autoIncrement));
+ return adoptRef(new IDBObjectStoreBackendImpl(name, keyPath, autoIncrement));
}
- ~IDBObjectStoreImpl();
+ ~IDBObjectStoreBackendImpl();
String name() const { return m_name; }
String keyPath() const { return m_keyPath; }
@@ -56,8 +56,10 @@ public:
PassRefPtr<IDBIndexBackendInterface> index(const String& name);
void removeIndex(const String& name, PassRefPtr<IDBCallbacks>);
+ void openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks>);
+
private:
- IDBObjectStoreImpl(const String& name, const String& keyPath, bool autoIncrement);
+ IDBObjectStoreBackendImpl(const String& name, const String& keyPath, bool autoIncrement);
String m_name;
String m_keyPath;
@@ -74,4 +76,4 @@ private:
#endif
-#endif // IDBObjectStoreImpl_h
+#endif // IDBObjectStoreBackendImpl_h
diff --git a/WebCore/storage/IDBObjectStoreBackendInterface.h b/WebCore/storage/IDBObjectStoreBackendInterface.h
new file mode 100644
index 0000000..200ac29
--- /dev/null
+++ b/WebCore/storage/IDBObjectStoreBackendInterface.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBObjectStoreBackendInterface_h
+#define IDBObjectStoreBackendInterface_h
+
+#include "PlatformString.h"
+#include <wtf/Threading.h>
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+class DOMStringList;
+class IDBCallbacks;
+class IDBIndexBackendInterface;
+class IDBKey;
+class IDBKeyRange;
+class SerializedScriptValue;
+
+class IDBObjectStoreBackendInterface : public ThreadSafeShared<IDBObjectStoreBackendInterface> {
+public:
+ virtual ~IDBObjectStoreBackendInterface() { }
+
+ virtual String name() const = 0;
+ virtual String keyPath() const = 0;
+ virtual PassRefPtr<DOMStringList> indexNames() const = 0;
+
+ virtual void get(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0;
+ virtual void put(PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBKey> key, bool addOnly, PassRefPtr<IDBCallbacks>) = 0;
+ virtual void remove(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks>) = 0;
+
+ virtual void createIndex(const String& name, const String& keyPath, bool unique, PassRefPtr<IDBCallbacks>) = 0;
+ virtual PassRefPtr<IDBIndexBackendInterface> index(const String& name) = 0;
+ virtual void removeIndex(const String& name, PassRefPtr<IDBCallbacks>) = 0;
+
+ virtual void openCursor(PassRefPtr<IDBKeyRange>, unsigned short direction, PassRefPtr<IDBCallbacks>) = 0;
+};
+
+} // namespace WebCore
+
+#endif
+
+#endif // IDBObjectStoreBackendInterface_h
+
diff --git a/WebCore/storage/IDBRequest.cpp b/WebCore/storage/IDBRequest.cpp
index b836cc3..94ef7e5 100644
--- a/WebCore/storage/IDBRequest.cpp
+++ b/WebCore/storage/IDBRequest.cpp
@@ -35,10 +35,11 @@
#include "EventException.h"
#include "EventListener.h"
#include "EventNames.h"
-#include "IDBDatabaseRequest.h"
+#include "IDBCursor.h"
+#include "IDBDatabase.h"
#include "IDBIndex.h"
#include "IDBErrorEvent.h"
-#include "IDBObjectStoreRequest.h"
+#include "IDBObjectStore.h"
#include "IDBSuccessEvent.h"
#include "ScriptExecutionContext.h"
@@ -49,7 +50,6 @@ IDBRequest::IDBRequest(ScriptExecutionContext* context, PassRefPtr<IDBAny> sourc
, m_source(source)
, m_result(IDBAny::create())
, m_timer(this, &IDBRequest::timerFired)
- , m_stopped(false)
, m_aborted(false)
, m_readyState(INITIAL)
{
@@ -73,10 +73,16 @@ void IDBRequest::onSuccess()
m_result->set();
}
-void IDBRequest::onSuccess(PassRefPtr<IDBDatabase> idbDatabase)
+void IDBRequest::onSuccess(PassRefPtr<IDBCursorBackendInterface> backend)
{
onEventCommon();
- m_result->set(IDBDatabaseRequest::create(idbDatabase));
+ m_result->set(IDBCursor::create(backend));
+}
+
+void IDBRequest::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backend)
+{
+ onEventCommon();
+ m_result->set(IDBDatabase::create(backend));
}
void IDBRequest::onSuccess(PassRefPtr<IDBIndexBackendInterface> backend)
@@ -91,10 +97,10 @@ void IDBRequest::onSuccess(PassRefPtr<IDBKey> idbKey)
m_result->set(idbKey);
}
-void IDBRequest::onSuccess(PassRefPtr<IDBObjectStore> idbObjectStore)
+void IDBRequest::onSuccess(PassRefPtr<IDBObjectStoreBackendInterface> backend)
{
onEventCommon();
- m_result->set(IDBObjectStoreRequest::create(idbObjectStore));
+ m_result->set(IDBObjectStore::create(backend));
}
void IDBRequest::onSuccess(PassRefPtr<SerializedScriptValue> serializedScriptValue)
@@ -115,24 +121,11 @@ ScriptExecutionContext* IDBRequest::scriptExecutionContext() const
return ActiveDOMObject::scriptExecutionContext();
}
-void IDBRequest::stop()
-{
- abort();
- m_selfRef = 0; // Could trigger a delete.
-}
-
-void IDBRequest::suspend()
-{
- m_timer.stop();
- m_stopped = true;
-}
-
-void IDBRequest::resume()
+bool IDBRequest::canSuspend() const
{
- m_stopped = false;
- // We only hold our self ref when we're waiting to dispatch an event.
- if (m_selfRef && !m_aborted)
- m_timer.startOneShot(0);
+ // IDBTransactions cannot be suspended at the moment. We therefore
+ // disallow the back/forward cache for pages that use IndexedDatabase.
+ return false;
}
EventTargetData* IDBRequest::eventTargetData()
@@ -149,7 +142,6 @@ void IDBRequest::timerFired(Timer<IDBRequest>*)
{
ASSERT(m_readyState == DONE);
ASSERT(m_selfRef);
- ASSERT(!m_stopped);
ASSERT(!m_aborted);
// We need to keep self-referencing ourself, otherwise it's possible we'll be deleted.
@@ -162,7 +154,7 @@ void IDBRequest::timerFired(Timer<IDBRequest>*)
dispatchEvent(IDBErrorEvent::create(m_source, *m_error));
} else {
ASSERT(m_result->type() != IDBAny::UndefinedType);
- dispatchEvent(IDBSuccessEvent::create(m_source, m_result));
+ dispatchEvent(IDBSuccessEvent::create(m_source, m_result));
}
}
@@ -179,8 +171,7 @@ void IDBRequest::onEventCommon()
m_readyState = DONE;
m_selfRef = this;
- if (!m_stopped)
- m_timer.startOneShot(0);
+ m_timer.startOneShot(0);
}
} // namespace WebCore
diff --git a/WebCore/storage/IDBRequest.h b/WebCore/storage/IDBRequest.h
index 39f6a51..ddfdcf3 100644
--- a/WebCore/storage/IDBRequest.h
+++ b/WebCore/storage/IDBRequest.h
@@ -41,8 +41,6 @@
namespace WebCore {
-class IDBDatabaseRequest;
-
class IDBRequest : public IDBCallbacks, public EventTarget, public ActiveDOMObject {
public:
static PassRefPtr<IDBRequest> create(ScriptExecutionContext* context, PassRefPtr<IDBAny> source) { return adoptRef(new IDBRequest(context, source)); }
@@ -64,10 +62,11 @@ public:
// IDBCallbacks
virtual void onError(PassRefPtr<IDBDatabaseError>);
virtual void onSuccess(); // For "null".
- virtual void onSuccess(PassRefPtr<IDBDatabase>);
+ virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>);
+ virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>);
virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>);
virtual void onSuccess(PassRefPtr<IDBKey>);
- virtual void onSuccess(PassRefPtr<IDBObjectStore>);
+ virtual void onSuccess(PassRefPtr<IDBObjectStoreBackendInterface>);
virtual void onSuccess(PassRefPtr<SerializedScriptValue>);
// EventTarget
@@ -75,9 +74,7 @@ public:
// ActiveDOMObject
virtual ScriptExecutionContext* scriptExecutionContext() const;
- virtual void stop();
- virtual void suspend();
- virtual void resume();
+ virtual bool canSuspend() const;
using RefCounted<IDBCallbacks>::ref;
using RefCounted<IDBCallbacks>::deref;
@@ -103,7 +100,6 @@ private:
Timer<IDBRequest> m_timer;
RefPtr<IDBRequest> m_selfRef; // This is set to us iff there's an event pending.
- bool m_stopped;
bool m_aborted;
ReadyState m_readyState;
EventTargetData m_eventTargetData;
diff --git a/WebCore/storage/IDBTransaction.cpp b/WebCore/storage/IDBTransaction.cpp
new file mode 100644
index 0000000..1bc059a
--- /dev/null
+++ b/WebCore/storage/IDBTransaction.cpp
@@ -0,0 +1,72 @@
+#include "config.h"
+#include "IDBTransaction.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "Event.h"
+#include "EventException.h"
+#include "IDBDatabase.h"
+#include "IDBObjectStore.h"
+#include "IDBObjectStoreBackendInterface.h"
+#include "ScriptExecutionContext.h"
+
+namespace WebCore {
+
+IDBTransaction::IDBTransaction(ScriptExecutionContext* context, PassRefPtr<IDBTransactionBackendInterface> backend, IDBDatabase* db)
+ : ActiveDOMObject(context, this)
+ , m_backend(backend)
+ , m_database(db)
+{
+}
+
+IDBTransaction::~IDBTransaction()
+{
+}
+
+unsigned short IDBTransaction::mode() const
+{
+ return m_backend->mode();
+}
+
+IDBDatabase* IDBTransaction::db()
+{
+ return m_database.get();
+}
+
+PassRefPtr<IDBObjectStore> IDBTransaction::objectStore(const String& name, const ExceptionCode&)
+{
+ RefPtr<IDBObjectStoreBackendInterface> objectStoreBackend = m_backend->objectStore(name);
+ RefPtr<IDBObjectStore> objectStore = IDBObjectStore::create(objectStoreBackend);
+ return objectStore.release();
+}
+
+void IDBTransaction::abort()
+{
+ m_backend->abort();
+}
+
+ScriptExecutionContext* IDBTransaction::scriptExecutionContext() const
+{
+ return ActiveDOMObject::scriptExecutionContext();
+}
+
+bool IDBTransaction::canSuspend() const
+{
+ // We may be in the middle of a transaction so we cannot suspend our object.
+ // Instead, we simply don't allow the owner page to go into the back/forward cache.
+ return false;
+}
+
+EventTargetData* IDBTransaction::eventTargetData()
+{
+ return &m_eventTargetData;
+}
+
+EventTargetData* IDBTransaction::ensureEventTargetData()
+{
+ return &m_eventTargetData;
+}
+
+}
+
+#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebCore/storage/IDBTransaction.h b/WebCore/storage/IDBTransaction.h
new file mode 100644
index 0000000..2e3167c
--- /dev/null
+++ b/WebCore/storage/IDBTransaction.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBTransaction_h
+#define IDBTransaction_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "ActiveDOMObject.h"
+#include "DOMStringList.h"
+#include "EventListener.h"
+#include "EventNames.h"
+#include "EventTarget.h"
+#include "IDBTransactionBackendInterface.h"
+
+namespace WebCore {
+
+class IDBDatabase;
+class IDBObjectStore;
+
+class IDBTransaction : public EventTarget, public ActiveDOMObject {
+public:
+ static PassRefPtr<IDBTransaction> create(ScriptExecutionContext* context, PassRefPtr<IDBTransactionBackendInterface> backend, IDBDatabase* db)
+ {
+ return adoptRef(new IDBTransaction(context, backend, db));
+ }
+ virtual ~IDBTransaction();
+
+ enum Mode {
+ READ_WRITE = 0,
+ READ_ONLY = 1,
+ SNAPSHOT_READ = 2
+ };
+
+ unsigned short mode() const;
+ IDBDatabase* db();
+ PassRefPtr<IDBObjectStore> objectStore(const String& name, const ExceptionCode&);
+ void abort();
+
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(abort);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(complete);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(timeout);
+
+ // EventTarget
+ virtual IDBTransaction* toIDBTransaction() { return this; }
+
+ // ActiveDOMObject
+ virtual ScriptExecutionContext* scriptExecutionContext() const;
+ virtual bool canSuspend() const;
+
+private:
+ IDBTransaction(ScriptExecutionContext*, PassRefPtr<IDBTransactionBackendInterface>, IDBDatabase*);
+
+ // EventTarget
+ virtual void refEventTarget() { ref(); }
+ virtual void derefEventTarget() { deref(); }
+ virtual EventTargetData* eventTargetData();
+ virtual EventTargetData* ensureEventTargetData();
+
+ EventTargetData m_eventTargetData;
+ RefPtr<IDBTransactionBackendInterface> m_backend;
+ RefPtr<IDBDatabase> m_database;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+
+#endif // IDBTransaction_h
diff --git a/WebCore/storage/IDBTransaction.idl b/WebCore/storage/IDBTransaction.idl
new file mode 100644
index 0000000..a3907dc
--- /dev/null
+++ b/WebCore/storage/IDBTransaction.idl
@@ -0,0 +1,57 @@
+ /*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ EventTarget
+ ] IDBTransaction {
+ // Modes
+ const unsigned short READ_WRITE = 0;
+ const unsigned short READ_ONLY = 1;
+ const unsigned short SNAPSHOT_READ = 2;
+ // Properties
+ readonly attribute unsigned short mode;
+ readonly attribute IDBDatabase db;
+ // Methods
+ IDBObjectStore objectStore (in DOMString name)
+ raises (IDBDatabaseException);
+ void abort ();
+ // Events
+ attribute EventListener onabort;
+ attribute EventListener oncomplete;
+ attribute EventListener ontimeout;
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/WebCore/storage/IDBTransactionBackendInterface.h b/WebCore/storage/IDBTransactionBackendInterface.h
new file mode 100644
index 0000000..dff2bd7
--- /dev/null
+++ b/WebCore/storage/IDBTransactionBackendInterface.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBTransactionBackendInterface_h
+#define IDBTransactionBackendInterface_h
+
+#include "ExceptionCode.h"
+#include "IDBCallbacks.h"
+#include "PlatformString.h"
+#include "ScriptExecutionContext.h"
+#include <wtf/Threading.h>
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+class IDBObjectStoreBackendInterface;
+class SQLiteDatabase;
+
+// This class is shared by IDBTransaction (async) and IDBTransactionSync (sync).
+// This is implemented by IDBTransactionBackendImpl and optionally others (in order to proxy
+// calls across process barriers). All calls to these classes should be non-blocking and
+// trigger work on a background thread if necessary.
+class IDBTransactionBackendInterface : public ThreadSafeShared<IDBTransactionBackendInterface> {
+public:
+ virtual ~IDBTransactionBackendInterface() { }
+
+ virtual PassRefPtr<IDBObjectStoreBackendInterface> objectStore(const String& name) = 0;
+ virtual unsigned short mode() const = 0;
+ virtual void scheduleTask(PassOwnPtr<ScriptExecutionContext::Task>) = 0;
+ virtual void abort() = 0;
+ virtual SQLiteDatabase* sqliteDatabase() = 0;
+};
+
+} // namespace WebCore
+
+#endif
+
+#endif // IDBTransactionBackendInterface_h
+
diff --git a/WebCore/storage/MetadataCallback.h b/WebCore/storage/MetadataCallback.h
index 96e4c91..3d57400 100644
--- a/WebCore/storage/MetadataCallback.h
+++ b/WebCore/storage/MetadataCallback.h
@@ -43,7 +43,7 @@ class ScriptExecutionContext;
class MetadataCallback : public RefCounted<MetadataCallback> {
public:
virtual ~MetadataCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, Metadata*) = 0;
+ virtual bool handleEvent(Metadata*) = 0;
};
} // namespace
diff --git a/WebCore/storage/OriginUsageRecord.cpp b/WebCore/storage/OriginUsageRecord.cpp
index 8128a1b..eac08fd 100644
--- a/WebCore/storage/OriginUsageRecord.cpp
+++ b/WebCore/storage/OriginUsageRecord.cpp
@@ -42,8 +42,8 @@ OriginUsageRecord::OriginUsageRecord()
void OriginUsageRecord::addDatabase(const String& identifier, const String& fullPath)
{
ASSERT(!m_databaseMap.contains(identifier));
- ASSERT_ARG(identifier, identifier.impl()->hasOneRef());
- ASSERT_ARG(fullPath, fullPath.impl()->hasOneRef());
+ ASSERT_ARG(identifier, identifier.impl()->hasOneRef() || identifier.isEmpty());
+ ASSERT_ARG(fullPath, fullPath.impl()->hasOneRef() || fullPath.isEmpty());
m_databaseMap.set(identifier, DatabaseEntry(fullPath));
m_unknownSet.add(identifier);
@@ -63,7 +63,7 @@ void OriginUsageRecord::removeDatabase(const String& identifier)
void OriginUsageRecord::markDatabase(const String& identifier)
{
ASSERT(m_databaseMap.contains(identifier));
- ASSERT_ARG(identifier, identifier.impl()->hasOneRef());
+ ASSERT_ARG(identifier, identifier.impl()->hasOneRef() || identifier.isEmpty());
m_unknownSet.add(identifier);
m_cachedDiskUsageIsValid = false;
diff --git a/WebCore/storage/SQLStatement.cpp b/WebCore/storage/SQLStatement.cpp
index 9dd249a..3973157 100644
--- a/WebCore/storage/SQLStatement.cpp
+++ b/WebCore/storage/SQLStatement.cpp
@@ -170,9 +170,9 @@ bool SQLStatement::performCallback(SQLTransaction* transaction)
// because then we need to jump to the transaction error callback.
if (m_error) {
ASSERT(m_statementErrorCallback);
- callbackError = m_statementErrorCallback->handleEvent(transaction->database()->scriptExecutionContext(), transaction, m_error.get());
+ callbackError = m_statementErrorCallback->handleEvent(transaction, m_error.get());
} else if (m_statementCallback)
- callbackError = !m_statementCallback->handleEvent(transaction->database()->scriptExecutionContext(), transaction, m_resultSet.get());
+ callbackError = !m_statementCallback->handleEvent(transaction, m_resultSet.get());
// Now release our callbacks, to break reference cycles.
m_statementCallback = 0;
diff --git a/WebCore/storage/SQLStatementCallback.h b/WebCore/storage/SQLStatementCallback.h
index 4bb2e06..f86e29f 100644
--- a/WebCore/storage/SQLStatementCallback.h
+++ b/WebCore/storage/SQLStatementCallback.h
@@ -34,14 +34,13 @@
namespace WebCore {
-class ScriptExecutionContext;
class SQLTransaction;
class SQLResultSet;
class SQLStatementCallback : public ThreadSafeShared<SQLStatementCallback> {
public:
virtual ~SQLStatementCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, SQLTransaction*, SQLResultSet*) = 0;
+ virtual bool handleEvent(SQLTransaction*, SQLResultSet*) = 0;
};
}
diff --git a/WebCore/storage/SQLStatementErrorCallback.h b/WebCore/storage/SQLStatementErrorCallback.h
index 7c45afd..acb8f64 100644
--- a/WebCore/storage/SQLStatementErrorCallback.h
+++ b/WebCore/storage/SQLStatementErrorCallback.h
@@ -35,14 +35,13 @@
namespace WebCore {
-class ScriptExecutionContext;
class SQLTransaction;
class SQLError;
class SQLStatementErrorCallback : public ThreadSafeShared<SQLStatementErrorCallback> {
public:
virtual ~SQLStatementErrorCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, SQLTransaction*, SQLError*) = 0;
+ virtual bool handleEvent(SQLTransaction*, SQLError*) = 0;
};
}
diff --git a/WebCore/storage/SQLTransaction.cpp b/WebCore/storage/SQLTransaction.cpp
index 454ea63..c9f6609 100644
--- a/WebCore/storage/SQLTransaction.cpp
+++ b/WebCore/storage/SQLTransaction.cpp
@@ -295,7 +295,7 @@ void SQLTransaction::deliverTransactionCallback()
if (m_callback) {
m_executeSqlAllowed = true;
- shouldDeliverErrorCallback = !m_callback->handleEvent(m_database->scriptExecutionContext(), this);
+ shouldDeliverErrorCallback = !m_callback->handleEvent(this);
m_executeSqlAllowed = false;
m_callback = 0;
}
@@ -553,7 +553,7 @@ void SQLTransaction::deliverTransactionErrorCallback()
// Transaction Step 12 - If exists, invoke error callback with the last
// error to have occurred in this transaction.
if (m_errorCallback) {
- m_errorCallback->handleEvent(m_database->scriptExecutionContext(), m_transactionError.get());
+ m_errorCallback->handleEvent(m_transactionError.get());
m_errorCallback = 0;
}
diff --git a/WebCore/storage/SQLTransaction.h b/WebCore/storage/SQLTransaction.h
index 2eb200b..3eb1fd5 100644
--- a/WebCore/storage/SQLTransaction.h
+++ b/WebCore/storage/SQLTransaction.h
@@ -48,7 +48,6 @@ class SQLTransaction;
class SQLTransactionCallback;
class SQLTransactionErrorCallback;
class SQLValue;
-class String;
class VoidCallback;
class SQLTransactionWrapper : public ThreadSafeShared<SQLTransactionWrapper> {
diff --git a/WebCore/storage/SQLTransactionCallback.h b/WebCore/storage/SQLTransactionCallback.h
index 73123ee..aff6233 100644
--- a/WebCore/storage/SQLTransactionCallback.h
+++ b/WebCore/storage/SQLTransactionCallback.h
@@ -35,13 +35,12 @@
namespace WebCore {
-class ScriptExecutionContext;
class SQLTransaction;
class SQLTransactionCallback : public ThreadSafeShared<SQLTransactionCallback> {
public:
virtual ~SQLTransactionCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, SQLTransaction*) = 0;
+ virtual bool handleEvent(SQLTransaction*) = 0;
};
}
diff --git a/WebCore/storage/SQLTransactionErrorCallback.h b/WebCore/storage/SQLTransactionErrorCallback.h
index 71580eb..4095d6a 100644
--- a/WebCore/storage/SQLTransactionErrorCallback.h
+++ b/WebCore/storage/SQLTransactionErrorCallback.h
@@ -35,13 +35,12 @@
namespace WebCore {
-class ScriptExecutionContext;
class SQLError;
class SQLTransactionErrorCallback : public ThreadSafeShared<SQLTransactionErrorCallback> {
public:
virtual ~SQLTransactionErrorCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, SQLError*) = 0;
+ virtual bool handleEvent(SQLError*) = 0;
};
}
diff --git a/WebCore/storage/SQLTransactionSync.cpp b/WebCore/storage/SQLTransactionSync.cpp
index 883721c..e56d7b4 100644
--- a/WebCore/storage/SQLTransactionSync.cpp
+++ b/WebCore/storage/SQLTransactionSync.cpp
@@ -150,7 +150,7 @@ ExceptionCode SQLTransactionSync::begin()
ExceptionCode SQLTransactionSync::execute()
{
ASSERT(m_database->scriptExecutionContext()->isContextThread());
- if (!m_database->opened() || (m_callback && !m_callback->handleEvent(m_database->scriptExecutionContext(), this))) {
+ if (!m_database->opened() || (m_callback && !m_callback->handleEvent(this))) {
m_callback = 0;
return SQLException::UNKNOWN_ERR;
}
diff --git a/WebCore/storage/SQLTransactionSync.h b/WebCore/storage/SQLTransactionSync.h
index 025215b..e66c876 100644
--- a/WebCore/storage/SQLTransactionSync.h
+++ b/WebCore/storage/SQLTransactionSync.h
@@ -46,7 +46,6 @@ class SQLTransactionClient;
class SQLTransactionSyncCallback;
class SQLValue;
class SQLiteTransaction;
-class String;
// Instances of this class should be created and used only on the worker's context thread.
class SQLTransactionSync : public RefCounted<SQLTransactionSync> {
diff --git a/WebCore/storage/SQLTransactionSyncCallback.h b/WebCore/storage/SQLTransactionSyncCallback.h
index 557db86..f22e62f 100644
--- a/WebCore/storage/SQLTransactionSyncCallback.h
+++ b/WebCore/storage/SQLTransactionSyncCallback.h
@@ -37,14 +37,13 @@
namespace WebCore {
-class ScriptExecutionContext;
class SQLTransactionSync;
// Instances of this class should be created and used only on the worker's context thread.
class SQLTransactionSyncCallback : public RefCounted<SQLTransactionSyncCallback> {
public:
virtual ~SQLTransactionSyncCallback() { }
- virtual bool handleEvent(ScriptExecutionContext*, SQLTransactionSync*) = 0;
+ virtual bool handleEvent(SQLTransactionSync*) = 0;
};
}
diff --git a/WebCore/storage/Storage.h b/WebCore/storage/Storage.h
index 06cc97b..c81481a 100644
--- a/WebCore/storage/Storage.h
+++ b/WebCore/storage/Storage.h
@@ -36,7 +36,6 @@ namespace WebCore {
class Frame;
class StorageArea;
- class String;
typedef int ExceptionCode;
class Storage : public RefCounted<Storage> {
diff --git a/WebCore/storage/chromium/DatabaseObserver.h b/WebCore/storage/chromium/DatabaseObserver.h
index 96b5972..deb8036 100644
--- a/WebCore/storage/chromium/DatabaseObserver.h
+++ b/WebCore/storage/chromium/DatabaseObserver.h
@@ -33,11 +33,12 @@
#if ENABLE(DATABASE)
+#include <wtf/Forward.h>
+
namespace WebCore {
class AbstractDatabase;
class ScriptExecutionContext;
-class String;
// The implementation of this class is in the WebKit API (Chromium source tree)
// in WebKit/chromium/src/DatabaseObserver.cpp.
diff --git a/WebCore/svg/ColorDistance.cpp b/WebCore/svg/ColorDistance.cpp
index 9e632ae..c2fd1a6 100644
--- a/WebCore/svg/ColorDistance.cpp
+++ b/WebCore/svg/ColorDistance.cpp
@@ -1,22 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/ColorDistance.h b/WebCore/svg/ColorDistance.h
index b7cc029..de52df3 100644
--- a/WebCore/svg/ColorDistance.h
+++ b/WebCore/svg/ColorDistance.h
@@ -1,22 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef ColorDistance_h
diff --git a/WebCore/svg/ElementTimeControl.h b/WebCore/svg/ElementTimeControl.h
index 4800cb1..c0b4fdb 100644
--- a/WebCore/svg/ElementTimeControl.h
+++ b/WebCore/svg/ElementTimeControl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
* Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
*
* Redistribution and use in source and binary forms, with or without
diff --git a/WebCore/svg/ElementTimeControl.idl b/WebCore/svg/ElementTimeControl.idl
index 4ac01c4..3e2cef4 100644
--- a/WebCore/svg/ElementTimeControl.idl
+++ b/WebCore/svg/ElementTimeControl.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
* Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
*
* Redistribution and use in source and binary forms, with or without
diff --git a/WebCore/svg/GradientAttributes.h b/WebCore/svg/GradientAttributes.h
index 473c1b9..4b02fae 100644
--- a/WebCore/svg/GradientAttributes.h
+++ b/WebCore/svg/GradientAttributes.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef GradientAttributes_h
#define GradientAttributes_h
diff --git a/WebCore/svg/LinearGradientAttributes.h b/WebCore/svg/LinearGradientAttributes.h
index af16b8a..9f37860 100644
--- a/WebCore/svg/LinearGradientAttributes.h
+++ b/WebCore/svg/LinearGradientAttributes.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef LinearGradientAttributes_h
#define LinearGradientAttributes_h
diff --git a/WebCore/svg/PatternAttributes.h b/WebCore/svg/PatternAttributes.h
index feaabd9..613ab94 100644
--- a/WebCore/svg/PatternAttributes.h
+++ b/WebCore/svg/PatternAttributes.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef PatternAttributes_h
#define PatternAttributes_h
diff --git a/WebCore/svg/RadialGradientAttributes.h b/WebCore/svg/RadialGradientAttributes.h
index b461854..7e2875b 100644
--- a/WebCore/svg/RadialGradientAttributes.h
+++ b/WebCore/svg/RadialGradientAttributes.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef RadialGradientAttributes_h
#define RadialGradientAttributes_h
diff --git a/WebCore/svg/SVGAElement.cpp b/WebCore/svg/SVGAElement.cpp
index da2190b..a2a4e73 100644
--- a/WebCore/svg/SVGAElement.cpp
+++ b/WebCore/svg/SVGAElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
- 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGAElement.h b/WebCore/svg/SVGAElement.h
index d9d7fa7..3debf8a 100644
--- a/WebCore/svg/SVGAElement.h
+++ b/WebCore/svg/SVGAElement.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAElement_h
#define SVGAElement_h
diff --git a/WebCore/svg/SVGAElement.idl b/WebCore/svg/SVGAElement.idl
index 88b46fc..8f2dc24 100644
--- a/WebCore/svg/SVGAElement.idl
+++ b/WebCore/svg/SVGAElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAllInOne.cpp b/WebCore/svg/SVGAllInOne.cpp
index 0ad4932..6bcf945 100644
--- a/WebCore/svg/SVGAllInOne.cpp
+++ b/WebCore/svg/SVGAllInOne.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2009 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -108,8 +108,12 @@
#include "SVGPaint.cpp"
#include "SVGParserUtilities.cpp"
#include "SVGPathBuilder.cpp"
+#include "SVGPathByteStreamBuilder.cpp"
+#include "SVGPathByteStreamSource.cpp"
#include "SVGPathElement.cpp"
#include "SVGPathParser.cpp"
+#include "SVGPathParserFactory.cpp"
+#include "SVGPathSeg.cpp"
#include "SVGPathSegArc.cpp"
#include "SVGPathSegClosePath.cpp"
#include "SVGPathSegCurvetoCubic.cpp"
@@ -121,7 +125,10 @@
#include "SVGPathSegLinetoVertical.cpp"
#include "SVGPathSegList.cpp"
#include "SVGPathSegListBuilder.cpp"
+#include "SVGPathSegListSource.cpp"
#include "SVGPathSegMoveto.cpp"
+#include "SVGPathStringBuilder.cpp"
+#include "SVGPathStringSource.cpp"
#include "SVGPatternElement.cpp"
#include "SVGPointList.cpp"
#include "SVGPolyElement.cpp"
diff --git a/WebCore/svg/SVGAltGlyphElement.cpp b/WebCore/svg/SVGAltGlyphElement.cpp
index 8371867..16808b9 100644
--- a/WebCore/svg/SVGAltGlyphElement.cpp
+++ b/WebCore/svg/SVGAltGlyphElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2008 Apple Computer, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGAltGlyphElement.h b/WebCore/svg/SVGAltGlyphElement.h
index a28bbad..8cba5bd 100644
--- a/WebCore/svg/SVGAltGlyphElement.h
+++ b/WebCore/svg/SVGAltGlyphElement.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2008 Apple Computer, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAltGlyphElement_h
#define SVGAltGlyphElement_h
diff --git a/WebCore/svg/SVGAltGlyphElement.idl b/WebCore/svg/SVGAltGlyphElement.idl
index a00e346..83ddc0e 100644
--- a/WebCore/svg/SVGAltGlyphElement.idl
+++ b/WebCore/svg/SVGAltGlyphElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Computer, Inc.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAngle.cpp b/WebCore/svg/SVGAngle.cpp
index a0cffa0..4d65ad0 100644
--- a/WebCore/svg/SVGAngle.cpp
+++ b/WebCore/svg/SVGAngle.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#include "SVGAngle.h"
diff --git a/WebCore/svg/SVGAngle.h b/WebCore/svg/SVGAngle.h
index 3d0bdeb..289b8c6 100644
--- a/WebCore/svg/SVGAngle.h
+++ b/WebCore/svg/SVGAngle.h
@@ -1,29 +1,28 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAngle_h
#define SVGAngle_h
#if ENABLE(SVG)
#include "PlatformString.h"
-#include "SVGNames.h"
namespace WebCore {
diff --git a/WebCore/svg/SVGAngle.idl b/WebCore/svg/SVGAngle.idl
index 023fb39..cb5148c 100644
--- a/WebCore/svg/SVGAngle.idl
+++ b/WebCore/svg/SVGAngle.idl
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGAnimateColorElement.cpp b/WebCore/svg/SVGAnimateColorElement.cpp
index ab48f18..d5166cf 100644
--- a/WebCore/svg/SVGAnimateColorElement.cpp
+++ b/WebCore/svg/SVGAnimateColorElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG_ANIMATION)
diff --git a/WebCore/svg/SVGAnimateColorElement.h b/WebCore/svg/SVGAnimateColorElement.h
index 9071185..ad9a774 100644
--- a/WebCore/svg/SVGAnimateColorElement.h
+++ b/WebCore/svg/SVGAnimateColorElement.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimateColorElement_h
#define SVGAnimateColorElement_h
diff --git a/WebCore/svg/SVGAnimateColorElement.idl b/WebCore/svg/SVGAnimateColorElement.idl
index 4df1847..b184332 100644
--- a/WebCore/svg/SVGAnimateColorElement.idl
+++ b/WebCore/svg/SVGAnimateColorElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimateElement.cpp b/WebCore/svg/SVGAnimateElement.cpp
index fa4a4cf..2723804 100644
--- a/WebCore/svg/SVGAnimateElement.cpp
+++ b/WebCore/svg/SVGAnimateElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2008 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG) && ENABLE(SVG_ANIMATION)
@@ -27,8 +27,8 @@
#include "FloatConversion.h"
#include "SVGColor.h"
#include "SVGParserUtilities.h"
+#include "SVGPathParserFactory.h"
#include "SVGPathSegList.h"
-#include "SVGPathSegListBuilder.h"
#include "SVGPointList.h"
#include <math.h>
@@ -190,11 +190,10 @@ bool SVGAnimateElement::calculateFromAndToValues(const String& fromString, const
}
} else if (m_propertyType == PathProperty) {
m_fromPath = SVGPathSegList::create(SVGNames::dAttr);
- SVGPathSegListBuilder fromParser(m_fromPath.get());
- if (fromParser.build(fromString, UnalteredParsing)) {
+ SVGPathParserFactory* factory = SVGPathParserFactory::self();
+ if (factory->buildSVGPathSegListFromString(fromString, m_fromPath.get(), UnalteredParsing)) {
m_toPath = SVGPathSegList::create(SVGNames::dAttr);
- SVGPathSegListBuilder toParser(m_toPath.get());
- if (toParser.build(toString, UnalteredParsing))
+ if (factory->buildSVGPathSegListFromString(toString, m_toPath.get(), UnalteredParsing))
return true;
}
m_fromPath.clear();
@@ -280,12 +279,8 @@ void SVGAnimateElement::applyResultsToTarget()
// "processed" paths where complex shapes are replaced with simpler ones. Path
// morphing needs to be done with unprocessed paths.
// FIXME: This could be optimized if paths were not processed at parse time.
- unsigned itemCount = m_animatedPath->numberOfItems();
- ExceptionCode ec;
- for (unsigned n = 0; n < itemCount; ++n) {
- RefPtr<SVGPathSeg> segment = m_animatedPath->getItem(n, ec);
- valueToApply.append(segment->toString() + " ");
- }
+ SVGPathParserFactory* factory = SVGPathParserFactory::self();
+ factory->buildStringFromSVGPathSegList(m_animatedPath.get(), valueToApply, UnalteredParsing);
}
} else if (m_propertyType == PointsProperty) {
if (!m_animatedPoints || !m_animatedPoints->numberOfItems())
diff --git a/WebCore/svg/SVGAnimateElement.h b/WebCore/svg/SVGAnimateElement.h
index f6e0b1d..5c8d1e5 100644
--- a/WebCore/svg/SVGAnimateElement.h
+++ b/WebCore/svg/SVGAnimateElement.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2008 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimateElement_h
#define SVGAnimateElement_h
diff --git a/WebCore/svg/SVGAnimateElement.idl b/WebCore/svg/SVGAnimateElement.idl
index aaf7791..a5e1201 100644
--- a/WebCore/svg/SVGAnimateElement.idl
+++ b/WebCore/svg/SVGAnimateElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimateMotionElement.cpp b/WebCore/svg/SVGAnimateMotionElement.cpp
index a3f4ef9..4ddda73 100644
--- a/WebCore/svg/SVGAnimateMotionElement.cpp
+++ b/WebCore/svg/SVGAnimateMotionElement.cpp
@@ -1,25 +1,23 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- (C) 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2008 Apple Inc. All Rights Reserved.
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -32,7 +30,7 @@
#include "SVGElementInstance.h"
#include "SVGMPathElement.h"
#include "SVGParserUtilities.h"
-#include "SVGPathBuilder.h"
+#include "SVGPathParserFactory.h"
#include "SVGPathElement.h"
#include "SVGTransformList.h"
#include <math.h>
@@ -89,9 +87,8 @@ void SVGAnimateMotionElement::parseMappedAttribute(Attribute* attr)
{
if (attr->name() == SVGNames::pathAttr) {
m_path = Path();
- SVGPathBuilder builder(m_path);
- // FIXME: We should analyse the returned value.
- builder.build(attr->value());
+ SVGPathParserFactory* factory = SVGPathParserFactory::self();
+ factory->buildPathFromString(attr->value(), m_path);
} else
SVGAnimationElement::parseMappedAttribute(attr);
}
diff --git a/WebCore/svg/SVGAnimateMotionElement.h b/WebCore/svg/SVGAnimateMotionElement.h
index 385e3b3..ec189f9 100644
--- a/WebCore/svg/SVGAnimateMotionElement.h
+++ b/WebCore/svg/SVGAnimateMotionElement.h
@@ -1,23 +1,21 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2008 Apple Inc. All Rights Reserved.
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGAnimateMotionElement_h
diff --git a/WebCore/svg/SVGAnimateTransformElement.cpp b/WebCore/svg/SVGAnimateTransformElement.cpp
index 6ca9447..0c27f0a 100644
--- a/WebCore/svg/SVGAnimateTransformElement.cpp
+++ b/WebCore/svg/SVGAnimateTransformElement.cpp
@@ -1,26 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2008 Apple Inc. All Rights Reserved.
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGAnimateTransformElement.h b/WebCore/svg/SVGAnimateTransformElement.h
index a06953a..bf3de36 100644
--- a/WebCore/svg/SVGAnimateTransformElement.h
+++ b/WebCore/svg/SVGAnimateTransformElement.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2008 Apple Inc. All Rights Reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimateTransformElement_h
#define SVGAnimateTransformElement_h
diff --git a/WebCore/svg/SVGAnimateTransformElement.idl b/WebCore/svg/SVGAnimateTransformElement.idl
index 80d8108..d993450 100644
--- a/WebCore/svg/SVGAnimateTransformElement.idl
+++ b/WebCore/svg/SVGAnimateTransformElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedAngle.idl b/WebCore/svg/SVGAnimatedAngle.idl
index c400c19..76d4b71 100644
--- a/WebCore/svg/SVGAnimatedAngle.idl
+++ b/WebCore/svg/SVGAnimatedAngle.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedBoolean.idl b/WebCore/svg/SVGAnimatedBoolean.idl
index 4664991..e4b831e 100644
--- a/WebCore/svg/SVGAnimatedBoolean.idl
+++ b/WebCore/svg/SVGAnimatedBoolean.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedEnumeration.idl b/WebCore/svg/SVGAnimatedEnumeration.idl
index 5a3988a..26d5064 100644
--- a/WebCore/svg/SVGAnimatedEnumeration.idl
+++ b/WebCore/svg/SVGAnimatedEnumeration.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedInteger.idl b/WebCore/svg/SVGAnimatedInteger.idl
index 1119008..6ea9138 100644
--- a/WebCore/svg/SVGAnimatedInteger.idl
+++ b/WebCore/svg/SVGAnimatedInteger.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedLength.idl b/WebCore/svg/SVGAnimatedLength.idl
index a6a85e4..7ace261 100644
--- a/WebCore/svg/SVGAnimatedLength.idl
+++ b/WebCore/svg/SVGAnimatedLength.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedLengthList.idl b/WebCore/svg/SVGAnimatedLengthList.idl
index 358920f..a68724a 100644
--- a/WebCore/svg/SVGAnimatedLengthList.idl
+++ b/WebCore/svg/SVGAnimatedLengthList.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedNumber.idl b/WebCore/svg/SVGAnimatedNumber.idl
index 3c3a161..dea9d96 100644
--- a/WebCore/svg/SVGAnimatedNumber.idl
+++ b/WebCore/svg/SVGAnimatedNumber.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedNumberList.idl b/WebCore/svg/SVGAnimatedNumberList.idl
index aaa5919..a207ac1 100644
--- a/WebCore/svg/SVGAnimatedNumberList.idl
+++ b/WebCore/svg/SVGAnimatedNumberList.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedPathData.cpp b/WebCore/svg/SVGAnimatedPathData.cpp
index 0f43f2c..8ae4acd 100644
--- a/WebCore/svg/SVGAnimatedPathData.cpp
+++ b/WebCore/svg/SVGAnimatedPathData.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGAnimatedPathData.h b/WebCore/svg/SVGAnimatedPathData.h
index 79bd586..399b61b 100644
--- a/WebCore/svg/SVGAnimatedPathData.h
+++ b/WebCore/svg/SVGAnimatedPathData.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimatedPathData_h
#define SVGAnimatedPathData_h
diff --git a/WebCore/svg/SVGAnimatedPathData.idl b/WebCore/svg/SVGAnimatedPathData.idl
index 63a5209..eae1340 100644
--- a/WebCore/svg/SVGAnimatedPathData.idl
+++ b/WebCore/svg/SVGAnimatedPathData.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedPoints.cpp b/WebCore/svg/SVGAnimatedPoints.cpp
index 57101b3..1b73309 100644
--- a/WebCore/svg/SVGAnimatedPoints.cpp
+++ b/WebCore/svg/SVGAnimatedPoints.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGAnimatedPoints.h b/WebCore/svg/SVGAnimatedPoints.h
index 9f44e1f..ec2f2ae 100644
--- a/WebCore/svg/SVGAnimatedPoints.h
+++ b/WebCore/svg/SVGAnimatedPoints.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimatedPoints_h
#define SVGAnimatedPoints_h
diff --git a/WebCore/svg/SVGAnimatedPoints.idl b/WebCore/svg/SVGAnimatedPoints.idl
index 056b139..11314df 100644
--- a/WebCore/svg/SVGAnimatedPoints.idl
+++ b/WebCore/svg/SVGAnimatedPoints.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl b/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl
index b98ae36..204c145 100644
--- a/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl
+++ b/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedProperty.h b/WebCore/svg/SVGAnimatedProperty.h
index b963265..d9cbeec 100644
--- a/WebCore/svg/SVGAnimatedProperty.h
+++ b/WebCore/svg/SVGAnimatedProperty.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimatedProperty_h
#define SVGAnimatedProperty_h
diff --git a/WebCore/svg/SVGAnimatedPropertySynchronizer.h b/WebCore/svg/SVGAnimatedPropertySynchronizer.h
index ddd0493..55f77b1 100644
--- a/WebCore/svg/SVGAnimatedPropertySynchronizer.h
+++ b/WebCore/svg/SVGAnimatedPropertySynchronizer.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimatedPropertySynchronizer_h
#define SVGAnimatedPropertySynchronizer_h
diff --git a/WebCore/svg/SVGAnimatedPropertyTraits.h b/WebCore/svg/SVGAnimatedPropertyTraits.h
index 4e34dbe..5cc69a9 100644
--- a/WebCore/svg/SVGAnimatedPropertyTraits.h
+++ b/WebCore/svg/SVGAnimatedPropertyTraits.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimatedPropertyTraits_h
#define SVGAnimatedPropertyTraits_h
diff --git a/WebCore/svg/SVGAnimatedRect.idl b/WebCore/svg/SVGAnimatedRect.idl
index 1ba4e29..a825c40 100644
--- a/WebCore/svg/SVGAnimatedRect.idl
+++ b/WebCore/svg/SVGAnimatedRect.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedString.idl b/WebCore/svg/SVGAnimatedString.idl
index 1531942..3430c2c 100644
--- a/WebCore/svg/SVGAnimatedString.idl
+++ b/WebCore/svg/SVGAnimatedString.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimatedTemplate.h b/WebCore/svg/SVGAnimatedTemplate.h
index 589d724..307c66a 100644
--- a/WebCore/svg/SVGAnimatedTemplate.h
+++ b/WebCore/svg/SVGAnimatedTemplate.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimatedTemplate_h
#define SVGAnimatedTemplate_h
#if ENABLE(SVG)
#include "SVGAnimatedPropertyTraits.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
namespace WebCore {
@@ -33,7 +34,6 @@ namespace WebCore {
class SVGNumberList;
class SVGPreserveAspectRatio;
class SVGTransformList;
- class String;
class QualifiedName;
struct SVGAnimatedTypeWrapperKey {
diff --git a/WebCore/svg/SVGAnimatedTransformList.idl b/WebCore/svg/SVGAnimatedTransformList.idl
index 280960e..72614a1 100644
--- a/WebCore/svg/SVGAnimatedTransformList.idl
+++ b/WebCore/svg/SVGAnimatedTransformList.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGAnimationElement.cpp b/WebCore/svg/SVGAnimationElement.cpp
index 48e0880..513274e 100644
--- a/WebCore/svg/SVGAnimationElement.cpp
+++ b/WebCore/svg/SVGAnimationElement.cpp
@@ -1,26 +1,26 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2008 Apple Inc. All rights reserved.
- Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGAnimationElement.h b/WebCore/svg/SVGAnimationElement.h
index 74148c5..8e49460 100644
--- a/WebCore/svg/SVGAnimationElement.h
+++ b/WebCore/svg/SVGAnimationElement.h
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2008 Apple Inc. All rights reserved.
- Copyright (C) 2008 Cameron McCormack <cam@mcc.id.au>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Cameron McCormack <cam@mcc.id.au>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGAnimationElement_h
#define SVGAnimationElement_h
diff --git a/WebCore/svg/SVGAnimationElement.idl b/WebCore/svg/SVGAnimationElement.idl
index e221545..f39f0b8 100644
--- a/WebCore/svg/SVGAnimationElement.idl
+++ b/WebCore/svg/SVGAnimationElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGCircleElement.cpp b/WebCore/svg/SVGCircleElement.cpp
index f8c9ccd..ffbaa7b 100644
--- a/WebCore/svg/SVGCircleElement.cpp
+++ b/WebCore/svg/SVGCircleElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGCircleElement.h b/WebCore/svg/SVGCircleElement.h
index 0ffb934..f436b3c 100644
--- a/WebCore/svg/SVGCircleElement.h
+++ b/WebCore/svg/SVGCircleElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGCircleElement_h
#define SVGCircleElement_h
diff --git a/WebCore/svg/SVGCircleElement.idl b/WebCore/svg/SVGCircleElement.idl
index a6cb2b2..8381a61 100644
--- a/WebCore/svg/SVGCircleElement.idl
+++ b/WebCore/svg/SVGCircleElement.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGClipPathElement.cpp b/WebCore/svg/SVGClipPathElement.cpp
index 5c23031..baaae96 100644
--- a/WebCore/svg/SVGClipPathElement.cpp
+++ b/WebCore/svg/SVGClipPathElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org>
- Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org>
+ * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGClipPathElement.h b/WebCore/svg/SVGClipPathElement.h
index 11b07fb..85dd05e 100644
--- a/WebCore/svg/SVGClipPathElement.h
+++ b/WebCore/svg/SVGClipPathElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGClipPathElement_h
#define SVGClipPathElement_h
diff --git a/WebCore/svg/SVGClipPathElement.idl b/WebCore/svg/SVGClipPathElement.idl
index 40eca87..3dbc609 100644
--- a/WebCore/svg/SVGClipPathElement.idl
+++ b/WebCore/svg/SVGClipPathElement.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGColor.cpp b/WebCore/svg/SVGColor.cpp
index 803753d..bacead9 100644
--- a/WebCore/svg/SVGColor.cpp
+++ b/WebCore/svg/SVGColor.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGColor.h b/WebCore/svg/SVGColor.h
index 406166b..c181b6b 100644
--- a/WebCore/svg/SVGColor.h
+++ b/WebCore/svg/SVGColor.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGColor_h
#define SVGColor_h
diff --git a/WebCore/svg/SVGColor.idl b/WebCore/svg/SVGColor.idl
index f4e17ab..d7af0e9 100644
--- a/WebCore/svg/SVGColor.idl
+++ b/WebCore/svg/SVGColor.idl
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGComponentTransferFunctionElement.cpp b/WebCore/svg/SVGComponentTransferFunctionElement.cpp
index 5169411..7c6cb85 100644
--- a/WebCore/svg/SVGComponentTransferFunctionElement.cpp
+++ b/WebCore/svg/SVGComponentTransferFunctionElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGComponentTransferFunctionElement.h b/WebCore/svg/SVGComponentTransferFunctionElement.h
index 1c719f9..91f0767 100644
--- a/WebCore/svg/SVGComponentTransferFunctionElement.h
+++ b/WebCore/svg/SVGComponentTransferFunctionElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGComponentTransferFunctionElement_h
#define SVGComponentTransferFunctionElement_h
diff --git a/WebCore/svg/SVGComponentTransferFunctionElement.idl b/WebCore/svg/SVGComponentTransferFunctionElement.idl
index 0a9e05d..e4a2596 100644
--- a/WebCore/svg/SVGComponentTransferFunctionElement.idl
+++ b/WebCore/svg/SVGComponentTransferFunctionElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGCursorElement.cpp b/WebCore/svg/SVGCursorElement.cpp
index 2c51925..cc3dfd1 100644
--- a/WebCore/svg/SVGCursorElement.cpp
+++ b/WebCore/svg/SVGCursorElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGCursorElement.h b/WebCore/svg/SVGCursorElement.h
index f10f464..fe2d647 100644
--- a/WebCore/svg/SVGCursorElement.h
+++ b/WebCore/svg/SVGCursorElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGCursorElement_h
#define SVGCursorElement_h
diff --git a/WebCore/svg/SVGCursorElement.idl b/WebCore/svg/SVGCursorElement.idl
index f307933..3ff701f 100644
--- a/WebCore/svg/SVGCursorElement.idl
+++ b/WebCore/svg/SVGCursorElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGDefsElement.cpp b/WebCore/svg/SVGDefsElement.cpp
index e7bf51d..660e0d1 100644
--- a/WebCore/svg/SVGDefsElement.cpp
+++ b/WebCore/svg/SVGDefsElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGDefsElement.h b/WebCore/svg/SVGDefsElement.h
index cb62d45..1d84dd5 100644
--- a/WebCore/svg/SVGDefsElement.h
+++ b/WebCore/svg/SVGDefsElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGDefsElement_h
#define SVGDefsElement_h
diff --git a/WebCore/svg/SVGDefsElement.idl b/WebCore/svg/SVGDefsElement.idl
index ed432cc..e90b0b6 100644
--- a/WebCore/svg/SVGDefsElement.idl
+++ b/WebCore/svg/SVGDefsElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGDescElement.cpp b/WebCore/svg/SVGDescElement.cpp
index 319dfda..58a7e01 100644
--- a/WebCore/svg/SVGDescElement.cpp
+++ b/WebCore/svg/SVGDescElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGDescElement.h b/WebCore/svg/SVGDescElement.h
index 846a23e..23374ef 100644
--- a/WebCore/svg/SVGDescElement.h
+++ b/WebCore/svg/SVGDescElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGDescElement_h
#define SVGDescElement_h
diff --git a/WebCore/svg/SVGDescElement.idl b/WebCore/svg/SVGDescElement.idl
index 720f487..eceab2d 100644
--- a/WebCore/svg/SVGDescElement.idl
+++ b/WebCore/svg/SVGDescElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGDocument.cpp b/WebCore/svg/SVGDocument.cpp
index b449390..c31ca9e 100644
--- a/WebCore/svg/SVGDocument.cpp
+++ b/WebCore/svg/SVGDocument.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGDocument.h b/WebCore/svg/SVGDocument.h
index 49e2746..b5d4076 100644
--- a/WebCore/svg/SVGDocument.h
+++ b/WebCore/svg/SVGDocument.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGDocument_h
#define SVGDocument_h
diff --git a/WebCore/svg/SVGDocument.idl b/WebCore/svg/SVGDocument.idl
index 812665e..fbf02ea 100644
--- a/WebCore/svg/SVGDocument.idl
+++ b/WebCore/svg/SVGDocument.idl
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGDocumentExtensions.cpp b/WebCore/svg/SVGDocumentExtensions.cpp
index 325bcc7..22ab399 100644
--- a/WebCore/svg/SVGDocumentExtensions.cpp
+++ b/WebCore/svg/SVGDocumentExtensions.cpp
@@ -1,25 +1,23 @@
/*
- Copyright (C) 2006 Apple Computer, Inc.
- 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2007 Rob Buis <buis@kde.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGDocumentExtensions.h b/WebCore/svg/SVGDocumentExtensions.h
index bfe48d1..ad2fb60 100644
--- a/WebCore/svg/SVGDocumentExtensions.h
+++ b/WebCore/svg/SVGDocumentExtensions.h
@@ -1,24 +1,22 @@
/*
- Copyright (C) 2006 Apple Computer, Inc.
- 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGDocumentExtensions_h
#define SVGDocumentExtensions_h
@@ -27,6 +25,7 @@
#include "AtomicStringHash.h"
#include "SVGResourcesCache.h"
#include "StringImpl.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
#include <wtf/PassOwnPtr.h>
@@ -35,7 +34,6 @@ namespace WebCore {
class Document;
class RenderSVGResourceContainer;
-class String;
class SVGStyledElement;
class SVGSMILElement;
class SVGSVGElement;
diff --git a/WebCore/svg/SVGElement.cpp b/WebCore/svg/SVGElement.cpp
index 0497edf..055efcc 100644
--- a/WebCore/svg/SVGElement.cpp
+++ b/WebCore/svg/SVGElement.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
- Copyright (C) 2008 Apple Inc. All rights reserved.
- Copyright (C) 2008 Alp Toker <alp@atoker.com>
- Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Alp Toker <alp@atoker.com>
+ * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGElement.h b/WebCore/svg/SVGElement.h
index eccf03e..255c7be 100644
--- a/WebCore/svg/SVGElement.h
+++ b/WebCore/svg/SVGElement.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2009 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGElement_h
#define SVGElement_h
diff --git a/WebCore/svg/SVGElement.idl b/WebCore/svg/SVGElement.idl
index cecaa18..956fa32 100644
--- a/WebCore/svg/SVGElement.idl
+++ b/WebCore/svg/SVGElement.idl
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGElementInstance.cpp b/WebCore/svg/SVGElementInstance.cpp
index cd9b966..f2812dd 100644
--- a/WebCore/svg/SVGElementInstance.cpp
+++ b/WebCore/svg/SVGElementInstance.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGElementInstance.h b/WebCore/svg/SVGElementInstance.h
index 58152be..54471c1 100644
--- a/WebCore/svg/SVGElementInstance.h
+++ b/WebCore/svg/SVGElementInstance.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGElementInstance_h
#define SVGElementInstance_h
diff --git a/WebCore/svg/SVGElementInstance.idl b/WebCore/svg/SVGElementInstance.idl
index 519070b..f5c2cb8 100644
--- a/WebCore/svg/SVGElementInstance.idl
+++ b/WebCore/svg/SVGElementInstance.idl
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGElementInstanceList.cpp b/WebCore/svg/SVGElementInstanceList.cpp
index 9404734..0c04e10 100644
--- a/WebCore/svg/SVGElementInstanceList.cpp
+++ b/WebCore/svg/SVGElementInstanceList.cpp
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGElementInstanceList.h b/WebCore/svg/SVGElementInstanceList.h
index 9da4cdc..4a4bbcb 100644
--- a/WebCore/svg/SVGElementInstanceList.h
+++ b/WebCore/svg/SVGElementInstanceList.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGElementInstanceList_h
#define SVGElementInstanceList_h
diff --git a/WebCore/svg/SVGElementInstanceList.idl b/WebCore/svg/SVGElementInstanceList.idl
index 434ad19..ea26fc2 100644
--- a/WebCore/svg/SVGElementInstanceList.idl
+++ b/WebCore/svg/SVGElementInstanceList.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGElementRareData.h b/WebCore/svg/SVGElementRareData.h
index 4e7f671..4276c4a 100644
--- a/WebCore/svg/SVGElementRareData.h
+++ b/WebCore/svg/SVGElementRareData.h
@@ -15,7 +15,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#ifndef SVGElementRareData_h
diff --git a/WebCore/svg/SVGEllipseElement.cpp b/WebCore/svg/SVGEllipseElement.cpp
index 963b4b0..128b5e0 100644
--- a/WebCore/svg/SVGEllipseElement.cpp
+++ b/WebCore/svg/SVGEllipseElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGEllipseElement.h b/WebCore/svg/SVGEllipseElement.h
index 5a5060e..85ec4c8 100644
--- a/WebCore/svg/SVGEllipseElement.h
+++ b/WebCore/svg/SVGEllipseElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGEllipseElement_h
#define SVGEllipseElement_h
diff --git a/WebCore/svg/SVGEllipseElement.idl b/WebCore/svg/SVGEllipseElement.idl
index d3b2422..bb9f95c 100644
--- a/WebCore/svg/SVGEllipseElement.idl
+++ b/WebCore/svg/SVGEllipseElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGException.h b/WebCore/svg/SVGException.h
index b82adf7..ef54080 100644
--- a/WebCore/svg/SVGException.h
+++ b/WebCore/svg/SVGException.h
@@ -16,7 +16,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#ifndef SVGException_h
diff --git a/WebCore/svg/SVGExternalResourcesRequired.cpp b/WebCore/svg/SVGExternalResourcesRequired.cpp
index b82b113..981b056 100644
--- a/WebCore/svg/SVGExternalResourcesRequired.cpp
+++ b/WebCore/svg/SVGExternalResourcesRequired.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGExternalResourcesRequired.h b/WebCore/svg/SVGExternalResourcesRequired.h
index 971c65c..44b6ae7 100644
--- a/WebCore/svg/SVGExternalResourcesRequired.h
+++ b/WebCore/svg/SVGExternalResourcesRequired.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGExternalResourcesRequired_h
#define SVGExternalResourcesRequired_h
diff --git a/WebCore/svg/SVGExternalResourcesRequired.idl b/WebCore/svg/SVGExternalResourcesRequired.idl
index c1a0352..62e2c5d 100644
--- a/WebCore/svg/SVGExternalResourcesRequired.idl
+++ b/WebCore/svg/SVGExternalResourcesRequired.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEBlendElement.cpp b/WebCore/svg/SVGFEBlendElement.cpp
index c97feed..e944d61 100644
--- a/WebCore/svg/SVGFEBlendElement.cpp
+++ b/WebCore/svg/SVGFEBlendElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEBlendElement.h b/WebCore/svg/SVGFEBlendElement.h
index 6a7b52f..2ffa93e 100644
--- a/WebCore/svg/SVGFEBlendElement.h
+++ b/WebCore/svg/SVGFEBlendElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEBlendElement_h
#define SVGFEBlendElement_h
diff --git a/WebCore/svg/SVGFEBlendElement.idl b/WebCore/svg/SVGFEBlendElement.idl
index 0c08603..03a5543 100644
--- a/WebCore/svg/SVGFEBlendElement.idl
+++ b/WebCore/svg/SVGFEBlendElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEColorMatrixElement.cpp b/WebCore/svg/SVGFEColorMatrixElement.cpp
index 6ac1496..d7c10d1 100644
--- a/WebCore/svg/SVGFEColorMatrixElement.cpp
+++ b/WebCore/svg/SVGFEColorMatrixElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEColorMatrixElement.h b/WebCore/svg/SVGFEColorMatrixElement.h
index a0b1abb..6701eea 100644
--- a/WebCore/svg/SVGFEColorMatrixElement.h
+++ b/WebCore/svg/SVGFEColorMatrixElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEColorMatrixElement_h
#define SVGFEColorMatrixElement_h
diff --git a/WebCore/svg/SVGFEColorMatrixElement.idl b/WebCore/svg/SVGFEColorMatrixElement.idl
index 61c5b4a..01f57fd 100644
--- a/WebCore/svg/SVGFEColorMatrixElement.idl
+++ b/WebCore/svg/SVGFEColorMatrixElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEComponentTransferElement.cpp b/WebCore/svg/SVGFEComponentTransferElement.cpp
index 805431c..9f85a0b 100644
--- a/WebCore/svg/SVGFEComponentTransferElement.cpp
+++ b/WebCore/svg/SVGFEComponentTransferElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEComponentTransferElement.h b/WebCore/svg/SVGFEComponentTransferElement.h
index 62677e6..785dc68 100644
--- a/WebCore/svg/SVGFEComponentTransferElement.h
+++ b/WebCore/svg/SVGFEComponentTransferElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEComponentTransferElement_h
#define SVGFEComponentTransferElement_h
diff --git a/WebCore/svg/SVGFEComponentTransferElement.idl b/WebCore/svg/SVGFEComponentTransferElement.idl
index 7ec0741..af340c9 100644
--- a/WebCore/svg/SVGFEComponentTransferElement.idl
+++ b/WebCore/svg/SVGFEComponentTransferElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFECompositeElement.cpp b/WebCore/svg/SVGFECompositeElement.cpp
index 1571122..dfa335d 100644
--- a/WebCore/svg/SVGFECompositeElement.cpp
+++ b/WebCore/svg/SVGFECompositeElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFECompositeElement.h b/WebCore/svg/SVGFECompositeElement.h
index 642330f..b229cc5 100644
--- a/WebCore/svg/SVGFECompositeElement.h
+++ b/WebCore/svg/SVGFECompositeElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFECompositeElement_h
#define SVGFECompositeElement_h
diff --git a/WebCore/svg/SVGFECompositeElement.idl b/WebCore/svg/SVGFECompositeElement.idl
index af1d5cf..dc7fd8d 100644
--- a/WebCore/svg/SVGFECompositeElement.idl
+++ b/WebCore/svg/SVGFECompositeElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEConvolveMatrixElement.cpp b/WebCore/svg/SVGFEConvolveMatrixElement.cpp
index 63d1365..ed6910e 100644
--- a/WebCore/svg/SVGFEConvolveMatrixElement.cpp
+++ b/WebCore/svg/SVGFEConvolveMatrixElement.cpp
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEConvolveMatrixElement.h b/WebCore/svg/SVGFEConvolveMatrixElement.h
index 56ae788..5f505d7 100644
--- a/WebCore/svg/SVGFEConvolveMatrixElement.h
+++ b/WebCore/svg/SVGFEConvolveMatrixElement.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEConvolveMatrixElement_h
#define SVGFEConvolveMatrixElement_h
diff --git a/WebCore/svg/SVGFEConvolveMatrixElement.idl b/WebCore/svg/SVGFEConvolveMatrixElement.idl
index afe859d..5fdc55c 100644
--- a/WebCore/svg/SVGFEConvolveMatrixElement.idl
+++ b/WebCore/svg/SVGFEConvolveMatrixElement.idl
@@ -10,17 +10,17 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
module svg {
diff --git a/WebCore/svg/SVGFEDiffuseLightingElement.cpp b/WebCore/svg/SVGFEDiffuseLightingElement.cpp
index 1bb274d..81144c6 100644
--- a/WebCore/svg/SVGFEDiffuseLightingElement.cpp
+++ b/WebCore/svg/SVGFEDiffuseLightingElement.cpp
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
@@ -23,7 +23,6 @@
#include "SVGFEDiffuseLightingElement.h"
#include "Attr.h"
-#include "RenderObject.h"
#include "SVGColor.h"
#include "SVGFEDiffuseLighting.h"
#include "SVGFELightElement.h"
@@ -75,7 +74,7 @@ void SVGFEDiffuseLightingElement::svgAttributeChanged(const QualifiedName& attrN
|| attrName == SVGNames::diffuseConstantAttr
|| attrName == SVGNames::kernelUnitLengthAttr
|| attrName == SVGNames::lighting_colorAttr)
- invalidateFilter();
+ SVGFilterElement::invalidateFilter(this);
}
void SVGFEDiffuseLightingElement::synchronizeProperty(const QualifiedName& attrName)
diff --git a/WebCore/svg/SVGFEDiffuseLightingElement.h b/WebCore/svg/SVGFEDiffuseLightingElement.h
index ec9002e..c5bedf1 100644
--- a/WebCore/svg/SVGFEDiffuseLightingElement.h
+++ b/WebCore/svg/SVGFEDiffuseLightingElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Oliver Hunt <oliver@nerget.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Oliver Hunt <oliver@nerget.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFEDiffuseLightingElement_h
diff --git a/WebCore/svg/SVGFEDiffuseLightingElement.idl b/WebCore/svg/SVGFEDiffuseLightingElement.idl
index c48a4f1..bbab929 100644
--- a/WebCore/svg/SVGFEDiffuseLightingElement.idl
+++ b/WebCore/svg/SVGFEDiffuseLightingElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEDisplacementMapElement.cpp b/WebCore/svg/SVGFEDisplacementMapElement.cpp
index 82004dc..2706c78 100644
--- a/WebCore/svg/SVGFEDisplacementMapElement.cpp
+++ b/WebCore/svg/SVGFEDisplacementMapElement.cpp
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2006 Oliver Hunt <oliver@nerget.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2006 Oliver Hunt <oliver@nerget.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFEDisplacementMapElement.h b/WebCore/svg/SVGFEDisplacementMapElement.h
index 40457ff..445c631 100644
--- a/WebCore/svg/SVGFEDisplacementMapElement.h
+++ b/WebCore/svg/SVGFEDisplacementMapElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2006 Oliver Hunt <oliver@nerget.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2006 Oliver Hunt <oliver@nerget.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFEDisplacementMapElement_h
diff --git a/WebCore/svg/SVGFEDisplacementMapElement.idl b/WebCore/svg/SVGFEDisplacementMapElement.idl
index 1eb9440..0fb4e63 100644
--- a/WebCore/svg/SVGFEDisplacementMapElement.idl
+++ b/WebCore/svg/SVGFEDisplacementMapElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEDistantLightElement.cpp b/WebCore/svg/SVGFEDistantLightElement.cpp
index 8322a3a..3a056af 100644
--- a/WebCore/svg/SVGFEDistantLightElement.cpp
+++ b/WebCore/svg/SVGFEDistantLightElement.cpp
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFEDistantLightElement.h b/WebCore/svg/SVGFEDistantLightElement.h
index 3d0c039..a625c04 100644
--- a/WebCore/svg/SVGFEDistantLightElement.h
+++ b/WebCore/svg/SVGFEDistantLightElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFEDistantLightElement_h
diff --git a/WebCore/svg/SVGFEDistantLightElement.idl b/WebCore/svg/SVGFEDistantLightElement.idl
index 16e7467..d9d1be9 100644
--- a/WebCore/svg/SVGFEDistantLightElement.idl
+++ b/WebCore/svg/SVGFEDistantLightElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEFloodElement.cpp b/WebCore/svg/SVGFEFloodElement.cpp
index 13ae32f..050f2d4 100644
--- a/WebCore/svg/SVGFEFloodElement.cpp
+++ b/WebCore/svg/SVGFEFloodElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEFloodElement.h b/WebCore/svg/SVGFEFloodElement.h
index e7b70bc..73aa0ee 100644
--- a/WebCore/svg/SVGFEFloodElement.h
+++ b/WebCore/svg/SVGFEFloodElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEFloodElement_h
#define SVGFEFloodElement_h
diff --git a/WebCore/svg/SVGFEFloodElement.idl b/WebCore/svg/SVGFEFloodElement.idl
index 59b9751..6adbefb 100644
--- a/WebCore/svg/SVGFEFloodElement.idl
+++ b/WebCore/svg/SVGFEFloodElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEFuncAElement.cpp b/WebCore/svg/SVGFEFuncAElement.cpp
index a02b0e5..3722826 100644
--- a/WebCore/svg/SVGFEFuncAElement.cpp
+++ b/WebCore/svg/SVGFEFuncAElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEFuncAElement.h b/WebCore/svg/SVGFEFuncAElement.h
index 55a3c9d..500d630 100644
--- a/WebCore/svg/SVGFEFuncAElement.h
+++ b/WebCore/svg/SVGFEFuncAElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEFuncAElement_h
#define SVGFEFuncAElement_h
diff --git a/WebCore/svg/SVGFEFuncAElement.idl b/WebCore/svg/SVGFEFuncAElement.idl
index 8901551..8bde3a7 100644
--- a/WebCore/svg/SVGFEFuncAElement.idl
+++ b/WebCore/svg/SVGFEFuncAElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEFuncBElement.cpp b/WebCore/svg/SVGFEFuncBElement.cpp
index 2bf939b..3ea448f 100644
--- a/WebCore/svg/SVGFEFuncBElement.cpp
+++ b/WebCore/svg/SVGFEFuncBElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEFuncBElement.h b/WebCore/svg/SVGFEFuncBElement.h
index 177ed26..85f9500 100644
--- a/WebCore/svg/SVGFEFuncBElement.h
+++ b/WebCore/svg/SVGFEFuncBElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEFuncBElement_h
#define SVGFEFuncBElement_h
diff --git a/WebCore/svg/SVGFEFuncBElement.idl b/WebCore/svg/SVGFEFuncBElement.idl
index fada028..2575ab5 100644
--- a/WebCore/svg/SVGFEFuncBElement.idl
+++ b/WebCore/svg/SVGFEFuncBElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEFuncGElement.cpp b/WebCore/svg/SVGFEFuncGElement.cpp
index e0d60f4..c74a9ce 100644
--- a/WebCore/svg/SVGFEFuncGElement.cpp
+++ b/WebCore/svg/SVGFEFuncGElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEFuncGElement.h b/WebCore/svg/SVGFEFuncGElement.h
index 4eeafa0..9950a53 100644
--- a/WebCore/svg/SVGFEFuncGElement.h
+++ b/WebCore/svg/SVGFEFuncGElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEFuncGElement_h
#define SVGFEFuncGElement_h
diff --git a/WebCore/svg/SVGFEFuncGElement.idl b/WebCore/svg/SVGFEFuncGElement.idl
index 33fc9a0..16f7811 100644
--- a/WebCore/svg/SVGFEFuncGElement.idl
+++ b/WebCore/svg/SVGFEFuncGElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEFuncRElement.cpp b/WebCore/svg/SVGFEFuncRElement.cpp
index e8e6b99..ce3355d 100644
--- a/WebCore/svg/SVGFEFuncRElement.cpp
+++ b/WebCore/svg/SVGFEFuncRElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEFuncRElement.h b/WebCore/svg/SVGFEFuncRElement.h
index 196cfa3..8e78091 100644
--- a/WebCore/svg/SVGFEFuncRElement.h
+++ b/WebCore/svg/SVGFEFuncRElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEFuncRElement_h
#define SVGFEFuncRElement_h
diff --git a/WebCore/svg/SVGFEFuncRElement.idl b/WebCore/svg/SVGFEFuncRElement.idl
index e9b8e26..c3c742a 100644
--- a/WebCore/svg/SVGFEFuncRElement.idl
+++ b/WebCore/svg/SVGFEFuncRElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEGaussianBlurElement.cpp b/WebCore/svg/SVGFEGaussianBlurElement.cpp
index f8dd1a5..2e5578a 100644
--- a/WebCore/svg/SVGFEGaussianBlurElement.cpp
+++ b/WebCore/svg/SVGFEGaussianBlurElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEGaussianBlurElement.h b/WebCore/svg/SVGFEGaussianBlurElement.h
index fb196d1..10c0f5a 100644
--- a/WebCore/svg/SVGFEGaussianBlurElement.h
+++ b/WebCore/svg/SVGFEGaussianBlurElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEGaussianBlurElement_h
#define SVGFEGaussianBlurElement_h
diff --git a/WebCore/svg/SVGFEGaussianBlurElement.idl b/WebCore/svg/SVGFEGaussianBlurElement.idl
index efa09b8..52478d8 100644
--- a/WebCore/svg/SVGFEGaussianBlurElement.idl
+++ b/WebCore/svg/SVGFEGaussianBlurElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEImageElement.cpp b/WebCore/svg/SVGFEImageElement.cpp
index 1f7164f..f481892 100644
--- a/WebCore/svg/SVGFEImageElement.cpp
+++ b/WebCore/svg/SVGFEImageElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2010 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2010 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEImageElement.h b/WebCore/svg/SVGFEImageElement.h
index 561044b..2128c6d 100644
--- a/WebCore/svg/SVGFEImageElement.h
+++ b/WebCore/svg/SVGFEImageElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEImageElement_h
#define SVGFEImageElement_h
diff --git a/WebCore/svg/SVGFEImageElement.idl b/WebCore/svg/SVGFEImageElement.idl
index 0ebe53e..6c7363c 100644
--- a/WebCore/svg/SVGFEImageElement.idl
+++ b/WebCore/svg/SVGFEImageElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFELightElement.cpp b/WebCore/svg/SVGFELightElement.cpp
index 7534df2..5975033 100644
--- a/WebCore/svg/SVGFELightElement.cpp
+++ b/WebCore/svg/SVGFELightElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- 2005 Oliver Hunt <oliver@nerget.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Oliver Hunt <oliver@nerget.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -25,6 +25,7 @@
#include "SVGFELightElement.h"
#include "Attribute.h"
+#include "SVGFilterElement.h"
#include "SVGNames.h"
namespace WebCore {
@@ -66,6 +67,23 @@ void SVGFELightElement::parseMappedAttribute(Attribute* attr)
SVGElement::parseMappedAttribute(attr);
}
+void SVGFELightElement::svgAttributeChanged(const QualifiedName& attrName)
+{
+ SVGElement::svgAttributeChanged(attrName);
+
+ if (attrName == SVGNames::azimuthAttr
+ || attrName == SVGNames::elevationAttr
+ || attrName == SVGNames::xAttr
+ || attrName == SVGNames::yAttr
+ || attrName == SVGNames::zAttr
+ || attrName == SVGNames::pointsAtXAttr
+ || attrName == SVGNames::pointsAtYAttr
+ || attrName == SVGNames::pointsAtZAttr
+ || attrName == SVGNames::specularExponentAttr
+ || attrName == SVGNames::limitingConeAngleAttr)
+ SVGFilterElement::invalidateFilter(this);
+}
+
void SVGFELightElement::synchronizeProperty(const QualifiedName& attrName)
{
SVGElement::synchronizeProperty(attrName);
@@ -106,6 +124,14 @@ void SVGFELightElement::synchronizeProperty(const QualifiedName& attrName)
synchronizeLimitingConeAngle();
}
+void SVGFELightElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
+{
+ SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+
+ if (!changedByParser)
+ SVGFilterElement::invalidateFilter(this);
+}
+
}
#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGFELightElement.h b/WebCore/svg/SVGFELightElement.h
index 9d3a269..d0874cb 100644
--- a/WebCore/svg/SVGFELightElement.h
+++ b/WebCore/svg/SVGFELightElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- 2005 Oliver Hunt <oliver@nerget.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Oliver Hunt <oliver@nerget.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFELightElement_h
@@ -29,27 +29,29 @@
namespace WebCore {
- class SVGFELightElement : public SVGElement {
- public:
- SVGFELightElement(const QualifiedName&, Document*);
- virtual ~SVGFELightElement();
+class SVGFELightElement : public SVGElement {
+public:
+ SVGFELightElement(const QualifiedName&, Document*);
+ virtual ~SVGFELightElement();
- virtual PassRefPtr<LightSource> lightSource() const = 0;
- virtual void parseMappedAttribute(Attribute*);
- virtual void synchronizeProperty(const QualifiedName&);
-
- private:
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::azimuthAttr, float, Azimuth, azimuth)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::elevationAttr, float, Elevation, elevation)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::xAttr, float, X, x)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::yAttr, float, Y, y)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::zAttr, float, Z, z)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtXAttr, float, PointsAtX, pointsAtX)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtYAttr, float, PointsAtY, pointsAtY)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtZAttr, float, PointsAtZ, pointsAtZ)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::specularExponentAttr, float, SpecularExponent, specularExponent)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::limitingConeAngleAttr, float, LimitingConeAngle, limitingConeAngle)
- };
+ virtual PassRefPtr<LightSource> lightSource() const = 0;
+ virtual void parseMappedAttribute(Attribute*);
+ virtual void svgAttributeChanged(const QualifiedName&);
+ virtual void synchronizeProperty(const QualifiedName&);
+ virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
+
+private:
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::azimuthAttr, float, Azimuth, azimuth)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::elevationAttr, float, Elevation, elevation)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::xAttr, float, X, x)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::yAttr, float, Y, y)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::zAttr, float, Z, z)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtXAttr, float, PointsAtX, pointsAtX)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtYAttr, float, PointsAtY, pointsAtY)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtZAttr, float, PointsAtZ, pointsAtZ)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::specularExponentAttr, float, SpecularExponent, specularExponent)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::limitingConeAngleAttr, float, LimitingConeAngle, limitingConeAngle)
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGFEMergeElement.cpp b/WebCore/svg/SVGFEMergeElement.cpp
index 1fe070a..bbdfd52 100644
--- a/WebCore/svg/SVGFEMergeElement.cpp
+++ b/WebCore/svg/SVGFEMergeElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEMergeElement.h b/WebCore/svg/SVGFEMergeElement.h
index 2feaa25..1ae6eb4 100644
--- a/WebCore/svg/SVGFEMergeElement.h
+++ b/WebCore/svg/SVGFEMergeElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEMergeElement_h
#define SVGFEMergeElement_h
diff --git a/WebCore/svg/SVGFEMergeElement.idl b/WebCore/svg/SVGFEMergeElement.idl
index 0b03845..a648598 100644
--- a/WebCore/svg/SVGFEMergeElement.idl
+++ b/WebCore/svg/SVGFEMergeElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEMergeNodeElement.cpp b/WebCore/svg/SVGFEMergeNodeElement.cpp
index 64a1226..65f7a1d 100644
--- a/WebCore/svg/SVGFEMergeNodeElement.cpp
+++ b/WebCore/svg/SVGFEMergeNodeElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEMergeNodeElement.h b/WebCore/svg/SVGFEMergeNodeElement.h
index 3367f79..944081f 100644
--- a/WebCore/svg/SVGFEMergeNodeElement.h
+++ b/WebCore/svg/SVGFEMergeNodeElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEMergeNodeElement_h
#define SVGFEMergeNodeElement_h
diff --git a/WebCore/svg/SVGFEMergeNodeElement.idl b/WebCore/svg/SVGFEMergeNodeElement.idl
index 4bddcb2..7463461 100644
--- a/WebCore/svg/SVGFEMergeNodeElement.idl
+++ b/WebCore/svg/SVGFEMergeNodeElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEMorphologyElement.cpp b/WebCore/svg/SVGFEMorphologyElement.cpp
index dc12f04..739517f 100644
--- a/WebCore/svg/SVGFEMorphologyElement.cpp
+++ b/WebCore/svg/SVGFEMorphologyElement.cpp
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFEMorphologyElement.h b/WebCore/svg/SVGFEMorphologyElement.h
index 4377213..d976b92 100644
--- a/WebCore/svg/SVGFEMorphologyElement.h
+++ b/WebCore/svg/SVGFEMorphologyElement.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEMorphologyElement_h
#define SVGFEMorphologyElement_h
diff --git a/WebCore/svg/SVGFEMorphologyElement.idl b/WebCore/svg/SVGFEMorphologyElement.idl
index 64023e8..36746c1 100644
--- a/WebCore/svg/SVGFEMorphologyElement.idl
+++ b/WebCore/svg/SVGFEMorphologyElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEOffsetElement.cpp b/WebCore/svg/SVGFEOffsetElement.cpp
index ce26599..006bb3b 100644
--- a/WebCore/svg/SVGFEOffsetElement.cpp
+++ b/WebCore/svg/SVGFEOffsetElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -56,7 +56,7 @@ void SVGFEOffsetElement::svgAttributeChanged(const QualifiedName& attrName)
if (attrName == SVGNames::inAttr
|| attrName == SVGNames::dxAttr
|| attrName == SVGNames::dyAttr)
- invalidateFilter();
+ SVGFilterElement::invalidateFilter(this);
}
void SVGFEOffsetElement::synchronizeProperty(const QualifiedName& attrName)
diff --git a/WebCore/svg/SVGFEOffsetElement.h b/WebCore/svg/SVGFEOffsetElement.h
index 6bf0d43..8f93526 100644
--- a/WebCore/svg/SVGFEOffsetElement.h
+++ b/WebCore/svg/SVGFEOffsetElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEOffsetElement_h
#define SVGFEOffsetElement_h
diff --git a/WebCore/svg/SVGFEOffsetElement.idl b/WebCore/svg/SVGFEOffsetElement.idl
index ba3ee4e..9308573 100644
--- a/WebCore/svg/SVGFEOffsetElement.idl
+++ b/WebCore/svg/SVGFEOffsetElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFEPointLightElement.cpp b/WebCore/svg/SVGFEPointLightElement.cpp
index 36ed2e9..46568ff 100644
--- a/WebCore/svg/SVGFEPointLightElement.cpp
+++ b/WebCore/svg/SVGFEPointLightElement.cpp
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFEPointLightElement.h b/WebCore/svg/SVGFEPointLightElement.h
index 9b1f997..d734f9e 100644
--- a/WebCore/svg/SVGFEPointLightElement.h
+++ b/WebCore/svg/SVGFEPointLightElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFEPointLightElement_h
diff --git a/WebCore/svg/SVGFEPointLightElement.idl b/WebCore/svg/SVGFEPointLightElement.idl
index f5ad94c..09e0b56 100644
--- a/WebCore/svg/SVGFEPointLightElement.idl
+++ b/WebCore/svg/SVGFEPointLightElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFESpecularLightingElement.cpp b/WebCore/svg/SVGFESpecularLightingElement.cpp
index 3a82502..afbdefe 100644
--- a/WebCore/svg/SVGFESpecularLightingElement.cpp
+++ b/WebCore/svg/SVGFESpecularLightingElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- 2005 Oliver Hunt <oliver@nerget.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Oliver Hunt <oliver@nerget.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -25,7 +25,6 @@
#include "SVGFESpecularLightingElement.h"
#include "Attribute.h"
-#include "RenderObject.h"
#include "SVGColor.h"
#include "SVGFELightElement.h"
#include "SVGNames.h"
diff --git a/WebCore/svg/SVGFESpecularLightingElement.h b/WebCore/svg/SVGFESpecularLightingElement.h
index c85ce09..a506cf7 100644
--- a/WebCore/svg/SVGFESpecularLightingElement.h
+++ b/WebCore/svg/SVGFESpecularLightingElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- 2005 Oliver Hunt <oliver@nerget.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Oliver Hunt <oliver@nerget.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFESpecularLightingElement_h
diff --git a/WebCore/svg/SVGFESpecularLightingElement.idl b/WebCore/svg/SVGFESpecularLightingElement.idl
index 5fce7fa..fa7da96 100644
--- a/WebCore/svg/SVGFESpecularLightingElement.idl
+++ b/WebCore/svg/SVGFESpecularLightingElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFESpotLightElement.cpp b/WebCore/svg/SVGFESpotLightElement.cpp
index 0814a40..26d0e16 100644
--- a/WebCore/svg/SVGFESpotLightElement.cpp
+++ b/WebCore/svg/SVGFESpotLightElement.cpp
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFESpotLightElement.h b/WebCore/svg/SVGFESpotLightElement.h
index d54e232..6903c0b 100644
--- a/WebCore/svg/SVGFESpotLightElement.h
+++ b/WebCore/svg/SVGFESpotLightElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2005 Oliver Hunt <ojh16@student.canterbury.ac.nz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFESpotLightElement_h
diff --git a/WebCore/svg/SVGFESpotLightElement.idl b/WebCore/svg/SVGFESpotLightElement.idl
index 5a41202..1c553a7 100644
--- a/WebCore/svg/SVGFESpotLightElement.idl
+++ b/WebCore/svg/SVGFESpotLightElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFETileElement.cpp b/WebCore/svg/SVGFETileElement.cpp
index 2c23061..f3f5eaf 100644
--- a/WebCore/svg/SVGFETileElement.cpp
+++ b/WebCore/svg/SVGFETileElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFETileElement.h b/WebCore/svg/SVGFETileElement.h
index 60b4d29..41355e2 100644
--- a/WebCore/svg/SVGFETileElement.h
+++ b/WebCore/svg/SVGFETileElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFETileElement_h
#define SVGFETileElement_h
diff --git a/WebCore/svg/SVGFETileElement.idl b/WebCore/svg/SVGFETileElement.idl
index 4a59a05..8d54991 100644
--- a/WebCore/svg/SVGFETileElement.idl
+++ b/WebCore/svg/SVGFETileElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFETurbulenceElement.cpp b/WebCore/svg/SVGFETurbulenceElement.cpp
index e4987c5..0415e89 100644
--- a/WebCore/svg/SVGFETurbulenceElement.cpp
+++ b/WebCore/svg/SVGFETurbulenceElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFETurbulenceElement.h b/WebCore/svg/SVGFETurbulenceElement.h
index d8b5304..c5820c8 100644
--- a/WebCore/svg/SVGFETurbulenceElement.h
+++ b/WebCore/svg/SVGFETurbulenceElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFETurbulenceElement_h
#define SVGFETurbulenceElement_h
diff --git a/WebCore/svg/SVGFETurbulenceElement.idl b/WebCore/svg/SVGFETurbulenceElement.idl
index f011d99..bd538bd 100644
--- a/WebCore/svg/SVGFETurbulenceElement.idl
+++ b/WebCore/svg/SVGFETurbulenceElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFilterElement.cpp b/WebCore/svg/SVGFilterElement.cpp
index 0d55bb1..eb633c0 100644
--- a/WebCore/svg/SVGFilterElement.cpp
+++ b/WebCore/svg/SVGFilterElement.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFilterElement.h b/WebCore/svg/SVGFilterElement.h
index cdb2297..ddcd953 100644
--- a/WebCore/svg/SVGFilterElement.h
+++ b/WebCore/svg/SVGFilterElement.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFilterElement_h
#define SVGFilterElement_h
@@ -55,6 +55,22 @@ public:
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
+ static void invalidateFilter(SVGElement* element)
+ {
+ ASSERT(element);
+ if (!element->inDocument())
+ return;
+ Node* parent = element->parentNode();
+ while (parent && !parent->hasTagName(SVGNames::filterTag))
+ parent = parent->parentNode();
+
+ if (!parent)
+ return;
+
+ if (RenderObject* object = parent->renderer())
+ object->setNeedsLayout(true);
+ }
+
private:
virtual bool selfHasRelativeLengths() const;
diff --git a/WebCore/svg/SVGFilterElement.idl b/WebCore/svg/SVGFilterElement.idl
index 10b4f5e..1a74b7e 100644
--- a/WebCore/svg/SVGFilterElement.idl
+++ b/WebCore/svg/SVGFilterElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
index 042d93b..e91c0a1 100644
--- a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
+++ b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -74,7 +74,7 @@ void SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(const QualifiedNa
|| attrName == SVGNames::widthAttr
|| attrName == SVGNames::heightAttr
|| attrName == SVGNames::resultAttr)
- invalidateFilter();
+ SVGFilterElement::invalidateFilter(this);
}
void SVGFilterPrimitiveStandardAttributes::synchronizeProperty(const QualifiedName& attrName)
@@ -107,7 +107,7 @@ void SVGFilterPrimitiveStandardAttributes::childrenChanged(bool changedByParser,
SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
if (!changedByParser)
- invalidateFilter();
+ SVGFilterElement::invalidateFilter(this);
}
void SVGFilterPrimitiveStandardAttributes::setStandardAttributes(bool primitiveBoundingBoxMode, FilterEffect* filterEffect) const
diff --git a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
index 19f6f3a..8754c6a 100644
--- a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
+++ b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFilterPrimitiveStandardAttributes_h
#define SVGFilterPrimitiveStandardAttributes_h
@@ -50,15 +50,6 @@ public:
void setStandardAttributes(bool, FilterEffect*) const;
-protected:
- void invalidateFilter()
- {
- if (!inDocument() || !parentNode()->hasTagName(SVGNames::filterTag))
- return;
- if (RenderObject* object = parentNode()->renderer())
- object->setNeedsLayout(true);
- }
-
private:
DECLARE_ANIMATED_PROPERTY(SVGFilterPrimitiveStandardAttributes, SVGNames::xAttr, SVGLength, X, x)
DECLARE_ANIMATED_PROPERTY(SVGFilterPrimitiveStandardAttributes, SVGNames::yAttr, SVGLength, Y, y)
diff --git a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
index 194147c..8e43f90 100644
--- a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
+++ b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFitToViewBox.cpp b/WebCore/svg/SVGFitToViewBox.cpp
index 1c1521a..83fd952 100644
--- a/WebCore/svg/SVGFitToViewBox.cpp
+++ b/WebCore/svg/SVGFitToViewBox.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007, 2010 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007, 2010 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFitToViewBox.h b/WebCore/svg/SVGFitToViewBox.h
index 32ecc29..ca0fec8 100644
--- a/WebCore/svg/SVGFitToViewBox.h
+++ b/WebCore/svg/SVGFitToViewBox.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007, 2010 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007, 2010 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFitToViewBox_h
#define SVGFitToViewBox_h
diff --git a/WebCore/svg/SVGFitToViewBox.idl b/WebCore/svg/SVGFitToViewBox.idl
index d456cf8..af6efda 100644
--- a/WebCore/svg/SVGFitToViewBox.idl
+++ b/WebCore/svg/SVGFitToViewBox.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFont.cpp b/WebCore/svg/SVGFont.cpp
index 6abea60..ee7c192 100644
--- a/WebCore/svg/SVGFont.cpp
+++ b/WebCore/svg/SVGFont.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
@@ -16,7 +16,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFontData.cpp b/WebCore/svg/SVGFontData.cpp
index dc8ae4e..a88de66 100644
--- a/WebCore/svg/SVGFontData.cpp
+++ b/WebCore/svg/SVGFontData.cpp
@@ -15,7 +15,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#include "config.h"
@@ -34,6 +33,7 @@ SVGFontData::SVGFontData(SVGFontFaceElement* fontFaceElement)
, m_verticalOriginY(fontFaceElement->verticalOriginY())
, m_verticalAdvanceY(fontFaceElement->verticalAdvanceY())
{
+ ASSERT_ARG(fontFaceElement, fontFaceElement);
}
SVGFontData::~SVGFontData()
diff --git a/WebCore/svg/SVGFontData.h b/WebCore/svg/SVGFontData.h
index 3f17e3e..c66aa23 100644
--- a/WebCore/svg/SVGFontData.h
+++ b/WebCore/svg/SVGFontData.h
@@ -15,7 +15,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#ifndef SVGFontData_h
diff --git a/WebCore/svg/SVGFontElement.cpp b/WebCore/svg/SVGFontElement.cpp
index b9e8c0e..2d29042 100644
--- a/WebCore/svg/SVGFontElement.cpp
+++ b/WebCore/svg/SVGFontElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFontElement.h b/WebCore/svg/SVGFontElement.h
index 068f55c..24c2fc5 100644
--- a/WebCore/svg/SVGFontElement.h
+++ b/WebCore/svg/SVGFontElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFontElement_h
diff --git a/WebCore/svg/SVGFontElement.idl b/WebCore/svg/SVGFontElement.idl
index 92bd512..71967bf 100644
--- a/WebCore/svg/SVGFontElement.idl
+++ b/WebCore/svg/SVGFontElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFontFaceElement.cpp b/WebCore/svg/SVGFontFaceElement.cpp
index cf77d5b..42c1c75 100644
--- a/WebCore/svg/SVGFontFaceElement.cpp
+++ b/WebCore/svg/SVGFontFaceElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2008 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGFontFaceElement.h b/WebCore/svg/SVGFontFaceElement.h
index 035a6ed..7d1f457 100644
--- a/WebCore/svg/SVGFontFaceElement.h
+++ b/WebCore/svg/SVGFontFaceElement.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2008 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFontFaceElement_h
#define SVGFontFaceElement_h
diff --git a/WebCore/svg/SVGFontFaceElement.idl b/WebCore/svg/SVGFontFaceElement.idl
index 0097f49..e7e6980 100644
--- a/WebCore/svg/SVGFontFaceElement.idl
+++ b/WebCore/svg/SVGFontFaceElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFontFaceFormatElement.cpp b/WebCore/svg/SVGFontFaceFormatElement.cpp
index e6dd94b..d6e3a3d 100644
--- a/WebCore/svg/SVGFontFaceFormatElement.cpp
+++ b/WebCore/svg/SVGFontFaceFormatElement.cpp
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFontFaceFormatElement.h b/WebCore/svg/SVGFontFaceFormatElement.h
index 97828cb..eae22bf 100644
--- a/WebCore/svg/SVGFontFaceFormatElement.h
+++ b/WebCore/svg/SVGFontFaceFormatElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFontFaceFormatElement_h
diff --git a/WebCore/svg/SVGFontFaceFormatElement.idl b/WebCore/svg/SVGFontFaceFormatElement.idl
index cac29d7..6053c98 100644
--- a/WebCore/svg/SVGFontFaceFormatElement.idl
+++ b/WebCore/svg/SVGFontFaceFormatElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFontFaceNameElement.cpp b/WebCore/svg/SVGFontFaceNameElement.cpp
index 91002e1..b9657b3 100644
--- a/WebCore/svg/SVGFontFaceNameElement.cpp
+++ b/WebCore/svg/SVGFontFaceNameElement.cpp
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFontFaceNameElement.h b/WebCore/svg/SVGFontFaceNameElement.h
index 1e07b13..ab71b7d 100644
--- a/WebCore/svg/SVGFontFaceNameElement.h
+++ b/WebCore/svg/SVGFontFaceNameElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFontFaceNameElement_h
diff --git a/WebCore/svg/SVGFontFaceNameElement.idl b/WebCore/svg/SVGFontFaceNameElement.idl
index 0dd0c90..4292a28 100644
--- a/WebCore/svg/SVGFontFaceNameElement.idl
+++ b/WebCore/svg/SVGFontFaceNameElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFontFaceSrcElement.cpp b/WebCore/svg/SVGFontFaceSrcElement.cpp
index 0d72c74..77b2e5e 100644
--- a/WebCore/svg/SVGFontFaceSrcElement.cpp
+++ b/WebCore/svg/SVGFontFaceSrcElement.cpp
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFontFaceSrcElement.h b/WebCore/svg/SVGFontFaceSrcElement.h
index b86f689..0277e9a 100644
--- a/WebCore/svg/SVGFontFaceSrcElement.h
+++ b/WebCore/svg/SVGFontFaceSrcElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFontFaceSrcElement_h
diff --git a/WebCore/svg/SVGFontFaceSrcElement.idl b/WebCore/svg/SVGFontFaceSrcElement.idl
index 4887bb8..addfc0e 100644
--- a/WebCore/svg/SVGFontFaceSrcElement.idl
+++ b/WebCore/svg/SVGFontFaceSrcElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGFontFaceUriElement.cpp b/WebCore/svg/SVGFontFaceUriElement.cpp
index ad70b40..a7ad370 100644
--- a/WebCore/svg/SVGFontFaceUriElement.cpp
+++ b/WebCore/svg/SVGFontFaceUriElement.cpp
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2009 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGFontFaceUriElement.h b/WebCore/svg/SVGFontFaceUriElement.h
index 03e44d6..b026160 100644
--- a/WebCore/svg/SVGFontFaceUriElement.h
+++ b/WebCore/svg/SVGFontFaceUriElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFontFaceUriElement_h
diff --git a/WebCore/svg/SVGFontFaceUriElement.idl b/WebCore/svg/SVGFontFaceUriElement.idl
index 6c194ba..ae34a91 100644
--- a/WebCore/svg/SVGFontFaceUriElement.idl
+++ b/WebCore/svg/SVGFontFaceUriElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGForeignObjectElement.cpp b/WebCore/svg/SVGForeignObjectElement.cpp
index 2157c5e..3e9e90e 100644
--- a/WebCore/svg/SVGForeignObjectElement.cpp
+++ b/WebCore/svg/SVGForeignObjectElement.cpp
@@ -1,24 +1,22 @@
/*
- Copyright (C) 2006 Apple Computer, Inc.
- (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGForeignObjectElement.h b/WebCore/svg/SVGForeignObjectElement.h
index 737addb..5ce16fd 100644
--- a/WebCore/svg/SVGForeignObjectElement.h
+++ b/WebCore/svg/SVGForeignObjectElement.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2006 Apple Computer, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGForeignObjectElement_h
#define SVGForeignObjectElement_h
diff --git a/WebCore/svg/SVGForeignObjectElement.idl b/WebCore/svg/SVGForeignObjectElement.idl
index f5226e3..0d3fc25 100644
--- a/WebCore/svg/SVGForeignObjectElement.idl
+++ b/WebCore/svg/SVGForeignObjectElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGGElement.cpp b/WebCore/svg/SVGGElement.cpp
index a830096..0c85a03 100644
--- a/WebCore/svg/SVGGElement.cpp
+++ b/WebCore/svg/SVGGElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGGElement.h b/WebCore/svg/SVGGElement.h
index aaed269..107fa3c 100644
--- a/WebCore/svg/SVGGElement.h
+++ b/WebCore/svg/SVGGElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGGElement_h
#define SVGGElement_h
diff --git a/WebCore/svg/SVGGElement.idl b/WebCore/svg/SVGGElement.idl
index d03466d..5c539f7 100644
--- a/WebCore/svg/SVGGElement.idl
+++ b/WebCore/svg/SVGGElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGGlyphElement.cpp b/WebCore/svg/SVGGlyphElement.cpp
index 054db11..2c84841 100644
--- a/WebCore/svg/SVGGlyphElement.cpp
+++ b/WebCore/svg/SVGGlyphElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -29,7 +29,7 @@
#include "SVGFontElement.h"
#include "SVGFontFaceElement.h"
#include "SVGNames.h"
-#include "SVGPathBuilder.h"
+#include "SVGPathParserFactory.h"
#include "SimpleFontData.h"
#include "XMLNames.h"
@@ -102,10 +102,8 @@ static inline SVGGlyphIdentifier::Orientation parseOrientation(const AtomicStrin
static inline Path parsePathData(const AtomicString& value)
{
Path result;
- SVGPathBuilder builder(result);
- // FIXME: We should analyse the returned value.
- builder.build(value);
-
+ SVGPathParserFactory* factory = SVGPathParserFactory::self();
+ factory->buildPathFromString(value, result);
return result;
}
diff --git a/WebCore/svg/SVGGlyphElement.h b/WebCore/svg/SVGGlyphElement.h
index a5edd67..5b5408d 100644
--- a/WebCore/svg/SVGGlyphElement.h
+++ b/WebCore/svg/SVGGlyphElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGGlyphElement_h
@@ -24,13 +24,13 @@
#if ENABLE(SVG_FONTS)
#include "SVGStyledElement.h"
+#include <wtf/Forward.h>
#include <limits>
#include "Path.h"
namespace WebCore {
- class AtomicString;
class SVGFontData;
// Describe a SVG <glyph> element
diff --git a/WebCore/svg/SVGGlyphElement.idl b/WebCore/svg/SVGGlyphElement.idl
index 2d77fcd..2d68698 100644
--- a/WebCore/svg/SVGGlyphElement.idl
+++ b/WebCore/svg/SVGGlyphElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGGlyphMap.h b/WebCore/svg/SVGGlyphMap.h
index b58b155..aba0c86 100644
--- a/WebCore/svg/SVGGlyphMap.h
+++ b/WebCore/svg/SVGGlyphMap.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2008 Apple, Inc
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGGlyphMap_h
diff --git a/WebCore/svg/SVGGradientElement.cpp b/WebCore/svg/SVGGradientElement.cpp
index 0d06955..f2d9712 100644
--- a/WebCore/svg/SVGGradientElement.cpp
+++ b/WebCore/svg/SVGGradientElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGGradientElement.h b/WebCore/svg/SVGGradientElement.h
index 11a13e4..9976d7d 100644
--- a/WebCore/svg/SVGGradientElement.h
+++ b/WebCore/svg/SVGGradientElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGGradientElement_h
#define SVGGradientElement_h
diff --git a/WebCore/svg/SVGGradientElement.idl b/WebCore/svg/SVGGradientElement.idl
index 16ac636..853081f 100644
--- a/WebCore/svg/SVGGradientElement.idl
+++ b/WebCore/svg/SVGGradientElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGHKernElement.cpp b/WebCore/svg/SVGHKernElement.cpp
index 491bd77..eb8a4b5 100644
--- a/WebCore/svg/SVGHKernElement.cpp
+++ b/WebCore/svg/SVGHKernElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2008 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGHKernElement.h b/WebCore/svg/SVGHKernElement.h
index 59d59ac..bd893d8 100644
--- a/WebCore/svg/SVGHKernElement.h
+++ b/WebCore/svg/SVGHKernElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2008 Apple, Inc
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGHKernElement_h
@@ -26,12 +26,12 @@
#include "SVGFontElement.h"
#include "SVGParserUtilities.h"
#include "SVGStyledElement.h"
+#include <wtf/Forward.h>
#include <limits>
namespace WebCore {
- class AtomicString;
class SVGFontData;
class SVGHKernElement : public SVGElement {
diff --git a/WebCore/svg/SVGHKernElement.idl b/WebCore/svg/SVGHKernElement.idl
index 7706578..7e042ff 100644
--- a/WebCore/svg/SVGHKernElement.idl
+++ b/WebCore/svg/SVGHKernElement.idl
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2008 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGImageElement.cpp b/WebCore/svg/SVGImageElement.cpp
index 75f05cf..df867f3 100644
--- a/WebCore/svg/SVGImageElement.cpp
+++ b/WebCore/svg/SVGImageElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007, 2008, 2009 Rob Buis <buis@kde.org>
- 2006 Alexander Kellett <lypanov@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGImageElement.h b/WebCore/svg/SVGImageElement.h
index da3800a..cf4cf88 100644
--- a/WebCore/svg/SVGImageElement.h
+++ b/WebCore/svg/SVGImageElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGImageElement_h
#define SVGImageElement_h
diff --git a/WebCore/svg/SVGImageElement.idl b/WebCore/svg/SVGImageElement.idl
index 8e2e140..5ea8671 100644
--- a/WebCore/svg/SVGImageElement.idl
+++ b/WebCore/svg/SVGImageElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGImageLoader.cpp b/WebCore/svg/SVGImageLoader.cpp
index 5d5d3bc..3d04863 100644
--- a/WebCore/svg/SVGImageLoader.cpp
+++ b/WebCore/svg/SVGImageLoader.cpp
@@ -1,24 +1,22 @@
/*
- Copyright (C) 2005, 2005 Alexander Kellett <lypanov@kde.org>
- 2008 Rob Buis <buis@kde.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2005, 2005 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGImageLoader.h b/WebCore/svg/SVGImageLoader.h
index a838db8..807a9bc 100644
--- a/WebCore/svg/SVGImageLoader.h
+++ b/WebCore/svg/SVGImageLoader.h
@@ -1,23 +1,21 @@
/*
- Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGImageLoader_h
#define SVGImageLoader_h
diff --git a/WebCore/svg/SVGLangSpace.cpp b/WebCore/svg/SVGLangSpace.cpp
index 21bb643..4ac7c00 100644
--- a/WebCore/svg/SVGLangSpace.cpp
+++ b/WebCore/svg/SVGLangSpace.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGLangSpace.h b/WebCore/svg/SVGLangSpace.h
index f76b990..e2a5635 100644
--- a/WebCore/svg/SVGLangSpace.h
+++ b/WebCore/svg/SVGLangSpace.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGLangSpace_h
#define SVGLangSpace_h
diff --git a/WebCore/svg/SVGLangSpace.idl b/WebCore/svg/SVGLangSpace.idl
index b982dc5..a62b49b 100644
--- a/WebCore/svg/SVGLangSpace.idl
+++ b/WebCore/svg/SVGLangSpace.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGLength.cpp b/WebCore/svg/SVGLength.cpp
index e342acf..415dc79 100644
--- a/WebCore/svg/SVGLength.cpp
+++ b/WebCore/svg/SVGLength.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- 2007 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -118,6 +118,23 @@ SVGLength::SVGLength(SVGLengthMode mode, const String& valueAsString)
setValueAsString(valueAsString);
}
+SVGLength::SVGLength(const SVGLength& other)
+ : m_valueInSpecifiedUnits(other.m_valueInSpecifiedUnits)
+ , m_unit(other.m_unit)
+{
+}
+
+bool SVGLength::operator==(const SVGLength& other) const
+{
+ return m_unit == other.m_unit
+ && m_valueInSpecifiedUnits == other.m_valueInSpecifiedUnits;
+}
+
+bool SVGLength::operator!=(const SVGLength& other) const
+{
+ return !operator==(other);
+}
+
SVGLengthType SVGLength::unitType() const
{
return extractType(m_unit);
@@ -258,7 +275,8 @@ String SVGLength::valueAsString() const
void SVGLength::newValueSpecifiedUnits(unsigned short type, float value)
{
- ASSERT(type <= LengthTypePC);
+ if (type == LengthTypeUnknown || type > LengthTypePC)
+ return;
m_unit = storeUnit(extractMode(m_unit), (SVGLengthType) type);
m_valueInSpecifiedUnits = value;
@@ -266,7 +284,8 @@ void SVGLength::newValueSpecifiedUnits(unsigned short type, float value)
void SVGLength::convertToSpecifiedUnits(unsigned short type, const SVGElement* context)
{
- ASSERT(type <= LengthTypePC);
+ if (type == LengthTypeUnknown || type > LengthTypePC)
+ return;
float valueInUserUnits = value(context);
m_unit = storeUnit(extractMode(m_unit), (SVGLengthType) type);
@@ -319,6 +338,99 @@ float SVGLength::PercentageOfViewport(float value, const SVGElement* context, SV
return 0.0f;
}
+SVGLength SVGLength::fromCSSPrimitiveValue(CSSPrimitiveValue* value)
+{
+ ASSERT(value);
+
+ SVGLengthType svgType;
+ switch (value->primitiveType()) {
+ case CSSPrimitiveValue::CSS_NUMBER:
+ svgType = LengthTypeNumber;
+ break;
+ case CSSPrimitiveValue::CSS_PERCENTAGE:
+ svgType = LengthTypePercentage;
+ break;
+ case CSSPrimitiveValue::CSS_EMS:
+ svgType = LengthTypeEMS;
+ break;
+ case CSSPrimitiveValue::CSS_EXS:
+ svgType = LengthTypeEXS;
+ break;
+ case CSSPrimitiveValue::CSS_PX:
+ svgType = LengthTypePX;
+ break;
+ case CSSPrimitiveValue::CSS_CM:
+ svgType = LengthTypeCM;
+ break;
+ case CSSPrimitiveValue::CSS_MM:
+ svgType = LengthTypeMM;
+ break;
+ case CSSPrimitiveValue::CSS_IN:
+ svgType = LengthTypeIN;
+ break;
+ case CSSPrimitiveValue::CSS_PT:
+ svgType = LengthTypePT;
+ break;
+ case CSSPrimitiveValue::CSS_PC:
+ svgType = LengthTypePC;
+ break;
+ case CSSPrimitiveValue::CSS_UNKNOWN:
+ default:
+ svgType = LengthTypeUnknown;
+ break;
+ };
+
+ if (svgType == LengthTypeUnknown)
+ return SVGLength();
+
+ SVGLength length;
+ length.newValueSpecifiedUnits(svgType, value->getFloatValue());
+ return length;
+}
+
+PassRefPtr<CSSPrimitiveValue> SVGLength::toCSSPrimitiveValue(const SVGLength& length)
+{
+ CSSPrimitiveValue::UnitTypes cssType = CSSPrimitiveValue::CSS_UNKNOWN;
+ switch (length.unitType()) {
+ case LengthTypeUnknown:
+ break;
+ case LengthTypeNumber:
+ cssType = CSSPrimitiveValue::CSS_NUMBER;
+ break;
+ case LengthTypePercentage:
+ cssType = CSSPrimitiveValue::CSS_PERCENTAGE;
+ break;
+ case LengthTypeEMS:
+ cssType = CSSPrimitiveValue::CSS_EMS;
+ break;
+ case LengthTypeEXS:
+ cssType = CSSPrimitiveValue::CSS_EXS;
+ break;
+ case LengthTypePX:
+ cssType = CSSPrimitiveValue::CSS_PX;
+ break;
+ case LengthTypeCM:
+ cssType = CSSPrimitiveValue::CSS_CM;
+ break;
+ case LengthTypeMM:
+ cssType = CSSPrimitiveValue::CSS_MM;
+ break;
+ case LengthTypeIN:
+ cssType = CSSPrimitiveValue::CSS_IN;
+ break;
+ case LengthTypePT:
+ cssType = CSSPrimitiveValue::CSS_PT;
+ break;
+ case LengthTypePC:
+ cssType = CSSPrimitiveValue::CSS_PC;
+ break;
+ default:
+ ASSERT_NOT_REACHED();
+ };
+
+ return CSSPrimitiveValue::create(length.valueInSpecifiedUnits(), cssType);
+}
+
}
#endif
diff --git a/WebCore/svg/SVGLength.h b/WebCore/svg/SVGLength.h
index a14bc68..a0551f7 100644
--- a/WebCore/svg/SVGLength.h
+++ b/WebCore/svg/SVGLength.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGLength_h
#define SVGLength_h
@@ -26,76 +26,85 @@
namespace WebCore {
- enum SVGLengthType {
- LengthTypeUnknown = 0,
- LengthTypeNumber = 1,
- LengthTypePercentage = 2,
- LengthTypeEMS = 3,
- LengthTypeEXS = 4,
- LengthTypePX = 5,
- LengthTypeCM = 6,
- LengthTypeMM = 7,
- LengthTypeIN = 8,
- LengthTypePT = 9,
- LengthTypePC = 10
+class CSSPrimitiveValue;
+
+enum SVGLengthType {
+ LengthTypeUnknown = 0,
+ LengthTypeNumber = 1,
+ LengthTypePercentage = 2,
+ LengthTypeEMS = 3,
+ LengthTypeEXS = 4,
+ LengthTypePX = 5,
+ LengthTypeCM = 6,
+ LengthTypeMM = 7,
+ LengthTypeIN = 8,
+ LengthTypePT = 9,
+ LengthTypePC = 10
+};
+
+enum SVGLengthMode {
+ LengthModeWidth = 0,
+ LengthModeHeight,
+ LengthModeOther
+};
+
+class SVGElement;
+
+class SVGLength {
+public:
+ // Forward declare these enums in the w3c naming scheme, for IDL generation
+ enum {
+ SVG_LENGTHTYPE_UNKNOWN = LengthTypeUnknown,
+ SVG_LENGTHTYPE_NUMBER = LengthTypeNumber,
+ SVG_LENGTHTYPE_PERCENTAGE = LengthTypePercentage,
+ SVG_LENGTHTYPE_EMS = LengthTypeEMS,
+ SVG_LENGTHTYPE_EXS = LengthTypeEXS,
+ SVG_LENGTHTYPE_PX = LengthTypePX,
+ SVG_LENGTHTYPE_CM = LengthTypeCM,
+ SVG_LENGTHTYPE_MM = LengthTypeMM,
+ SVG_LENGTHTYPE_IN = LengthTypeIN,
+ SVG_LENGTHTYPE_PT = LengthTypePT,
+ SVG_LENGTHTYPE_PC = LengthTypePC
};
- enum SVGLengthMode {
- LengthModeWidth = 0,
- LengthModeHeight,
- LengthModeOther
- };
+ SVGLength(SVGLengthMode mode = LengthModeOther, const String& valueAsString = String());
+ SVGLength(const SVGLength&);
- class SVGElement;
-
- class SVGLength {
- public:
- // Forward declare these enums in the w3c naming scheme, for IDL generation
- enum {
- SVG_LENGTHTYPE_UNKNOWN = LengthTypeUnknown,
- SVG_LENGTHTYPE_NUMBER = LengthTypeNumber,
- SVG_LENGTHTYPE_PERCENTAGE = LengthTypePercentage,
- SVG_LENGTHTYPE_EMS = LengthTypeEMS,
- SVG_LENGTHTYPE_EXS = LengthTypeEXS,
- SVG_LENGTHTYPE_PX = LengthTypePX,
- SVG_LENGTHTYPE_CM = LengthTypeCM,
- SVG_LENGTHTYPE_MM = LengthTypeMM,
- SVG_LENGTHTYPE_IN = LengthTypeIN,
- SVG_LENGTHTYPE_PT = LengthTypePT,
- SVG_LENGTHTYPE_PC = LengthTypePC
- };
-
- SVGLength(SVGLengthMode mode = LengthModeOther, const String& valueAsString = String());
-
- SVGLengthType unitType() const;
-
- float value(const SVGElement* context) const;
- void setValue(float);
-
- float valueInSpecifiedUnits() const;
- void setValueInSpecifiedUnits(float);
-
- float valueAsPercentage() const;
-
- String valueAsString() const;
- bool setValueAsString(const String&);
-
- void newValueSpecifiedUnits(unsigned short, float valueInSpecifiedUnits);
- void convertToSpecifiedUnits(unsigned short, const SVGElement* context);
-
- // Helper functions
- static float PercentageOfViewport(float value, const SVGElement* context, SVGLengthMode);
-
- inline bool isRelative() const
- {
- SVGLengthType type = unitType();
- return (type == LengthTypePercentage || type == LengthTypeEMS || type == LengthTypeEXS);
- }
-
- private:
- float m_valueInSpecifiedUnits;
- unsigned int m_unit;
- };
+ SVGLengthType unitType() const;
+
+ bool operator==(const SVGLength&) const;
+ bool operator!=(const SVGLength&) const;
+
+ float value(const SVGElement* context) const;
+ void setValue(float);
+
+ float valueInSpecifiedUnits() const;
+ void setValueInSpecifiedUnits(float);
+
+ float valueAsPercentage() const;
+
+ String valueAsString() const;
+ bool setValueAsString(const String&);
+
+ void newValueSpecifiedUnits(unsigned short, float valueInSpecifiedUnits);
+ void convertToSpecifiedUnits(unsigned short, const SVGElement* context);
+
+ // Helper functions
+ static float PercentageOfViewport(float value, const SVGElement* context, SVGLengthMode);
+
+ inline bool isRelative() const
+ {
+ SVGLengthType type = unitType();
+ return (type == LengthTypePercentage || type == LengthTypeEMS || type == LengthTypeEXS);
+ }
+
+ static SVGLength fromCSSPrimitiveValue(CSSPrimitiveValue*);
+ static PassRefPtr<CSSPrimitiveValue> toCSSPrimitiveValue(const SVGLength&);
+
+private:
+ float m_valueInSpecifiedUnits;
+ unsigned int m_unit;
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGLength.idl b/WebCore/svg/SVGLength.idl
index a349c47..d1cb572 100644
--- a/WebCore/svg/SVGLength.idl
+++ b/WebCore/svg/SVGLength.idl
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGLengthList.cpp b/WebCore/svg/SVGLengthList.cpp
index 367befb..d144ca0 100644
--- a/WebCore/svg/SVGLengthList.cpp
+++ b/WebCore/svg/SVGLengthList.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGLengthList.h b/WebCore/svg/SVGLengthList.h
index 00fc3f8..bbabf62 100644
--- a/WebCore/svg/SVGLengthList.h
+++ b/WebCore/svg/SVGLengthList.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGLengthList_h
#define SVGLengthList_h
diff --git a/WebCore/svg/SVGLengthList.idl b/WebCore/svg/SVGLengthList.idl
index b11811b..a5771d2 100644
--- a/WebCore/svg/SVGLengthList.idl
+++ b/WebCore/svg/SVGLengthList.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGLineElement.cpp b/WebCore/svg/SVGLineElement.cpp
index 0898319..ebbcdf6 100644
--- a/WebCore/svg/SVGLineElement.cpp
+++ b/WebCore/svg/SVGLineElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGLineElement.h b/WebCore/svg/SVGLineElement.h
index d07ee6d..cdfa2aa 100644
--- a/WebCore/svg/SVGLineElement.h
+++ b/WebCore/svg/SVGLineElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGLineElement_h
#define SVGLineElement_h
diff --git a/WebCore/svg/SVGLineElement.idl b/WebCore/svg/SVGLineElement.idl
index 28ed228..56270a1 100644
--- a/WebCore/svg/SVGLineElement.idl
+++ b/WebCore/svg/SVGLineElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGLinearGradientElement.cpp b/WebCore/svg/SVGLinearGradientElement.cpp
index 37f380b..d3c81b0 100644
--- a/WebCore/svg/SVGLinearGradientElement.cpp
+++ b/WebCore/svg/SVGLinearGradientElement.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- 2008 Eric Seidel <eric@webkit.org>
- 2008 Dirk Schulze <krit@webkit.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2008 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGLinearGradientElement.h b/WebCore/svg/SVGLinearGradientElement.h
index 62b972f..b329d8b 100644
--- a/WebCore/svg/SVGLinearGradientElement.h
+++ b/WebCore/svg/SVGLinearGradientElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGLinearGradientElement_h
#define SVGLinearGradientElement_h
diff --git a/WebCore/svg/SVGLinearGradientElement.idl b/WebCore/svg/SVGLinearGradientElement.idl
index eb3eac1..0ef8197 100644
--- a/WebCore/svg/SVGLinearGradientElement.idl
+++ b/WebCore/svg/SVGLinearGradientElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGList.h b/WebCore/svg/SVGList.h
index e1249e2..6ae5191 100644
--- a/WebCore/svg/SVGList.h
+++ b/WebCore/svg/SVGList.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGList_h
#define SVGList_h
diff --git a/WebCore/svg/SVGListTraits.h b/WebCore/svg/SVGListTraits.h
index f58b9b9..0f60c75 100644
--- a/WebCore/svg/SVGListTraits.h
+++ b/WebCore/svg/SVGListTraits.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2006 Nikolas Zimmermann <wildfox@kde.org>
- 2006 Apple Computer Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGListTraits_h
#define SVGListTraits_h
diff --git a/WebCore/svg/SVGLocatable.cpp b/WebCore/svg/SVGLocatable.cpp
index e03ef93..8147a88 100644
--- a/WebCore/svg/SVGLocatable.cpp
+++ b/WebCore/svg/SVGLocatable.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- Copyright (C) 2009 Google, Inc. All rights reserved.
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Google, Inc. All rights reserved.
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGLocatable.h b/WebCore/svg/SVGLocatable.h
index 1800fc8..28df512 100644
--- a/WebCore/svg/SVGLocatable.h
+++ b/WebCore/svg/SVGLocatable.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGLocatable_h
#define SVGLocatable_h
diff --git a/WebCore/svg/SVGLocatable.idl b/WebCore/svg/SVGLocatable.idl
index 72db8f4..247f390 100644
--- a/WebCore/svg/SVGLocatable.idl
+++ b/WebCore/svg/SVGLocatable.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGMPathElement.cpp b/WebCore/svg/SVGMPathElement.cpp
index 65b2cc2..7165c11 100644
--- a/WebCore/svg/SVGMPathElement.cpp
+++ b/WebCore/svg/SVGMPathElement.cpp
@@ -1,22 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGMPathElement.h b/WebCore/svg/SVGMPathElement.h
index b25fc19..7543b6e 100644
--- a/WebCore/svg/SVGMPathElement.h
+++ b/WebCore/svg/SVGMPathElement.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGMPathElement_h
#define SVGMPathElement_h
diff --git a/WebCore/svg/SVGMarkerElement.cpp b/WebCore/svg/SVGMarkerElement.cpp
index 195e91d..8e6296d 100644
--- a/WebCore/svg/SVGMarkerElement.cpp
+++ b/WebCore/svg/SVGMarkerElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGMarkerElement.h b/WebCore/svg/SVGMarkerElement.h
index 7b13d34..436aaa7 100644
--- a/WebCore/svg/SVGMarkerElement.h
+++ b/WebCore/svg/SVGMarkerElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGMarkerElement_h
#define SVGMarkerElement_h
diff --git a/WebCore/svg/SVGMarkerElement.idl b/WebCore/svg/SVGMarkerElement.idl
index c715d70..3870941 100644
--- a/WebCore/svg/SVGMarkerElement.idl
+++ b/WebCore/svg/SVGMarkerElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGMaskElement.cpp b/WebCore/svg/SVGMaskElement.cpp
index a87c28e..4f245ce 100644
--- a/WebCore/svg/SVGMaskElement.cpp
+++ b/WebCore/svg/SVGMaskElement.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- 2005 Alexander Kellett <lypanov@kde.org>
- 2009 Dirk Schulze <krit@webkit.org>
- Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGMaskElement.h b/WebCore/svg/SVGMaskElement.h
index 2df8f31..91d9bc9 100644
--- a/WebCore/svg/SVGMaskElement.h
+++ b/WebCore/svg/SVGMaskElement.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2005 Alexander Kellett <lypanov@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2005 Alexander Kellett <lypanov@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGMaskElement_h
#define SVGMaskElement_h
diff --git a/WebCore/svg/SVGMaskElement.idl b/WebCore/svg/SVGMaskElement.idl
index 19bdc14..1bb9752 100644
--- a/WebCore/svg/SVGMaskElement.idl
+++ b/WebCore/svg/SVGMaskElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGMatrix.idl b/WebCore/svg/SVGMatrix.idl
index 1b91d53..c6e996d 100644
--- a/WebCore/svg/SVGMatrix.idl
+++ b/WebCore/svg/SVGMatrix.idl
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGMetadataElement.cpp b/WebCore/svg/SVGMetadataElement.cpp
index 2cefc7d..28a34d6 100644
--- a/WebCore/svg/SVGMetadataElement.cpp
+++ b/WebCore/svg/SVGMetadataElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGMetadataElement.h b/WebCore/svg/SVGMetadataElement.h
index afa6a8e..6323f12 100644
--- a/WebCore/svg/SVGMetadataElement.h
+++ b/WebCore/svg/SVGMetadataElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGMetadataElement_h
#define SVGMetadataElement_h
diff --git a/WebCore/svg/SVGMetadataElement.idl b/WebCore/svg/SVGMetadataElement.idl
index 9434f4d..8714a15 100644
--- a/WebCore/svg/SVGMetadataElement.idl
+++ b/WebCore/svg/SVGMetadataElement.idl
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGMissingGlyphElement.cpp b/WebCore/svg/SVGMissingGlyphElement.cpp
index 5d31e82..3fe531c 100644
--- a/WebCore/svg/SVGMissingGlyphElement.cpp
+++ b/WebCore/svg/SVGMissingGlyphElement.cpp
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGMissingGlyphElement.h b/WebCore/svg/SVGMissingGlyphElement.h
index 468ad9d..9dde843 100644
--- a/WebCore/svg/SVGMissingGlyphElement.h
+++ b/WebCore/svg/SVGMissingGlyphElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGMissingGlyphElement_h
diff --git a/WebCore/svg/SVGMissingGlyphElement.idl b/WebCore/svg/SVGMissingGlyphElement.idl
index 232c6b9..23d7628 100644
--- a/WebCore/svg/SVGMissingGlyphElement.idl
+++ b/WebCore/svg/SVGMissingGlyphElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGNumber.idl b/WebCore/svg/SVGNumber.idl
index 7e1a117..f57ff40 100644
--- a/WebCore/svg/SVGNumber.idl
+++ b/WebCore/svg/SVGNumber.idl
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGNumberList.cpp b/WebCore/svg/SVGNumberList.cpp
index 11aebde..0603af7 100644
--- a/WebCore/svg/SVGNumberList.cpp
+++ b/WebCore/svg/SVGNumberList.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGNumberList.h b/WebCore/svg/SVGNumberList.h
index 329968b..fa29356 100644
--- a/WebCore/svg/SVGNumberList.h
+++ b/WebCore/svg/SVGNumberList.h
@@ -1,34 +1,33 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGNumberList_h
#define SVGNumberList_h
#if ENABLE(SVG)
#include "SVGList.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
- class String;
-
class SVGNumberList : public SVGPODList<float> {
public:
static PassRefPtr<SVGNumberList> create(const QualifiedName& attributeName) { return adoptRef(new SVGNumberList(attributeName)); }
diff --git a/WebCore/svg/SVGNumberList.idl b/WebCore/svg/SVGNumberList.idl
index 427a249..58bbcf4 100644
--- a/WebCore/svg/SVGNumberList.idl
+++ b/WebCore/svg/SVGNumberList.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPaint.cpp b/WebCore/svg/SVGPaint.cpp
index 6d60979..a2100aa 100644
--- a/WebCore/svg/SVGPaint.cpp
+++ b/WebCore/svg/SVGPaint.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPaint.h b/WebCore/svg/SVGPaint.h
index aa696d1..e86c315 100644
--- a/WebCore/svg/SVGPaint.h
+++ b/WebCore/svg/SVGPaint.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig (sam.weinig@gmial.com)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmial.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPaint_h
#define SVGPaint_h
diff --git a/WebCore/svg/SVGPaint.idl b/WebCore/svg/SVGPaint.idl
index 392ae33..426b762 100644
--- a/WebCore/svg/SVGPaint.idl
+++ b/WebCore/svg/SVGPaint.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGParserUtilities.cpp b/WebCore/svg/SVGParserUtilities.cpp
index b5e695b..5bf2fbc 100644
--- a/WebCore/svg/SVGParserUtilities.cpp
+++ b/WebCore/svg/SVGParserUtilities.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2002, 2003 The Karbon Developers
- 2006 Alexander Kellett <lypanov@kde.org>
- 2006, 2007 Rob Buis <buis@kde.org>
- Copyrigth (C) 2007, 2009 Apple, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2002, 2003 The Karbon Developers
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGParserUtilities.h b/WebCore/svg/SVGParserUtilities.h
index 69d6b12..4e9362d 100644
--- a/WebCore/svg/SVGParserUtilities.h
+++ b/WebCore/svg/SVGParserUtilities.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2002, 2003 The Karbon Developers
- 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2002, 2003 The Karbon Developers
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGParserUtilities_h
#define SVGParserUtilities_h
diff --git a/WebCore/svg/SVGPathBuilder.cpp b/WebCore/svg/SVGPathBuilder.cpp
index 916c7d0..85fbd65 100644
--- a/WebCore/svg/SVGPathBuilder.cpp
+++ b/WebCore/svg/SVGPathBuilder.cpp
@@ -1,8 +1,8 @@
/*
* Copyright (C) 2002, 2003 The Karbon Developers
- * 2006 Alexander Kellett <lypanov@kde.org>
- * 2006, 2007 Rob Buis <buis@kde.org>
- * Copyrigth (C) 2007, 2009 Apple, Inc. All rights reserved.
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* This library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#include "config.h"
@@ -27,49 +26,45 @@
#if ENABLE(SVG)
#include "SVGPathBuilder.h"
-#include "SVGPathParser.h"
-
namespace WebCore {
-SVGPathBuilder::SVGPathBuilder(Path& path)
- : m_path(path)
-{
-}
-
-bool SVGPathBuilder::build(const String& d)
+SVGPathBuilder::SVGPathBuilder()
+ : m_path(0)
{
- SVGPathParser parser(this);
- return parser.parsePathDataString(d, true);
}
-void SVGPathBuilder::moveTo(const FloatPoint& point, bool closed, PathCoordinateMode mode)
+void SVGPathBuilder::moveTo(const FloatPoint& targetPoint, bool closed, PathCoordinateMode mode)
{
- m_current = mode == AbsoluteCoordinates ? point : m_current + point;
+ ASSERT(m_path);
+ m_current = mode == AbsoluteCoordinates ? targetPoint : m_current + targetPoint;
if (closed)
- m_path.closeSubpath();
- m_path.moveTo(m_current);
+ m_path->closeSubpath();
+ m_path->moveTo(m_current);
}
-void SVGPathBuilder::lineTo(const FloatPoint& point, PathCoordinateMode mode)
+void SVGPathBuilder::lineTo(const FloatPoint& targetPoint, PathCoordinateMode mode)
{
- m_current = mode == AbsoluteCoordinates ? point : m_current + point;
- m_path.addLineTo(m_current);
+ ASSERT(m_path);
+ m_current = mode == AbsoluteCoordinates ? targetPoint : m_current + targetPoint;
+ m_path->addLineTo(m_current);
}
-void SVGPathBuilder::curveToCubic(const FloatPoint& point1, const FloatPoint& point2, const FloatPoint& point, PathCoordinateMode mode)
+void SVGPathBuilder::curveToCubic(const FloatPoint& point1, const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
+ ASSERT(m_path);
if (mode == RelativeCoordinates) {
- m_path.addBezierCurveTo(m_current + point1, m_current + point2, m_current + point);
- m_current += point;
+ m_path->addBezierCurveTo(m_current + point1, m_current + point2, m_current + targetPoint);
+ m_current += targetPoint;
} else {
- m_current = point;
- m_path.addBezierCurveTo(point1, point2, m_current);
+ m_current = targetPoint;
+ m_path->addBezierCurveTo(point1, point2, m_current);
}
}
void SVGPathBuilder::closePath()
{
- m_path.closeSubpath();
+ ASSERT(m_path);
+ m_path->closeSubpath();
}
}
diff --git a/WebCore/svg/SVGPathBuilder.h b/WebCore/svg/SVGPathBuilder.h
index c47e69d..3a1088d 100644
--- a/WebCore/svg/SVGPathBuilder.h
+++ b/WebCore/svg/SVGPathBuilder.h
@@ -1,8 +1,8 @@
/*
* Copyright (C) 2002, 2003 The Karbon Developers
- * 2006 Alexander Kellett <lypanov@kde.org>
- * 2006, 2007 Rob Buis <buis@kde.org>
- * Copyrigth (C) 2007, 2009 Apple, Inc. All rights reserved.
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* This library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#ifndef SVGPathBuilder_h
@@ -32,10 +31,12 @@
namespace WebCore {
-class SVGPathBuilder : private SVGPathConsumer {
+class SVGPathBuilder : public SVGPathConsumer {
public:
- SVGPathBuilder(Path&);
- bool build(const String&);
+ SVGPathBuilder();
+
+ void setCurrentPath(Path* path) { m_path = path; }
+ virtual void cleanup() { m_path = 0; }
private:
// Used in UnalteredParisng/NormalizedParsing modes.
@@ -51,9 +52,9 @@ private:
virtual void curveToCubicSmooth(const FloatPoint&, const FloatPoint&, PathCoordinateMode) { ASSERT_NOT_REACHED(); }
virtual void curveToQuadratic(const FloatPoint&, const FloatPoint&, PathCoordinateMode) { ASSERT_NOT_REACHED(); }
virtual void curveToQuadraticSmooth(const FloatPoint&, PathCoordinateMode) { ASSERT_NOT_REACHED(); }
- virtual void arcTo(const FloatPoint&, float, float, float, bool, bool, PathCoordinateMode) { ASSERT_NOT_REACHED(); }
+ virtual void arcTo(float, float, float, bool, bool, const FloatPoint&, PathCoordinateMode) { ASSERT_NOT_REACHED(); }
- Path& m_path;
+ Path* m_path;
FloatPoint m_current;
};
diff --git a/WebCore/svg/SVGPathByteStream.h b/WebCore/svg/SVGPathByteStream.h
new file mode 100644
index 0000000..b8882b6
--- /dev/null
+++ b/WebCore/svg/SVGPathByteStream.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGPathByteStream_h
+#define SVGPathByteStream_h
+
+#if ENABLE(SVG)
+#include <wtf/Noncopyable.h>
+#include <wtf/PassOwnPtr.h>
+#include <wtf/Vector.h>
+
+namespace WebCore {
+
+// Type definitions for the byte stream data
+typedef union {
+ bool value;
+ unsigned char bytes[sizeof(bool)];
+} BoolByte;
+
+typedef union {
+ float value;
+ unsigned char bytes[sizeof(float)];
+} FloatByte;
+
+typedef union {
+ unsigned short value;
+ unsigned char bytes[sizeof(unsigned short)];
+} UnsignedShortByte;
+
+class SVGPathByteStream : public Noncopyable {
+public:
+ static PassOwnPtr<SVGPathByteStream> create()
+ {
+ return adoptPtr(new SVGPathByteStream);
+ }
+
+ typedef Vector<unsigned char> Data;
+ typedef Data::const_iterator DataIterator;
+
+ DataIterator begin() { return m_data.begin(); }
+ DataIterator end() { return m_data.end(); }
+ void append(unsigned char byte) { m_data.append(byte); }
+ void clear() { m_data.clear(); }
+ bool isEmpty() const { return !m_data.size(); }
+
+private:
+ SVGPathByteStream() { }
+ Data m_data;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGPathByteStream_h
diff --git a/WebCore/svg/SVGPathByteStreamBuilder.cpp b/WebCore/svg/SVGPathByteStreamBuilder.cpp
new file mode 100644
index 0000000..cf939f0
--- /dev/null
+++ b/WebCore/svg/SVGPathByteStreamBuilder.cpp
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathByteStreamBuilder.h"
+
+#include "SVGPathParser.h"
+#include "SVGPathSeg.h"
+#include "SVGPathStringSource.h"
+#include <wtf/OwnPtr.h>
+
+namespace WebCore {
+
+SVGPathByteStreamBuilder::SVGPathByteStreamBuilder()
+ : m_byteStream(0)
+{
+}
+
+void SVGPathByteStreamBuilder::moveTo(const FloatPoint& targetPoint, bool, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegMoveToRel : PathSegMoveToAbs);
+ writeFloatPoint(targetPoint);
+}
+
+void SVGPathByteStreamBuilder::lineTo(const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegLineToRel : PathSegLineToAbs);
+ writeFloatPoint(targetPoint);
+}
+
+void SVGPathByteStreamBuilder::lineToHorizontal(float x, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegLineToHorizontalRel : PathSegLineToHorizontalAbs);
+ writeFloat(x);
+}
+
+void SVGPathByteStreamBuilder::lineToVertical(float y, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegLineToVerticalRel : PathSegLineToVerticalAbs);
+ writeFloat(y);
+}
+
+void SVGPathByteStreamBuilder::curveToCubic(const FloatPoint& point1, const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegCurveToCubicRel : PathSegCurveToCubicAbs);
+ writeFloatPoint(point1);
+ writeFloatPoint(point2);
+ writeFloatPoint(targetPoint);
+}
+
+void SVGPathByteStreamBuilder::curveToCubicSmooth(const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegCurveToCubicSmoothRel : PathSegCurveToCubicSmoothAbs);
+ writeFloatPoint(point2);
+ writeFloatPoint(targetPoint);
+}
+
+void SVGPathByteStreamBuilder::curveToQuadratic(const FloatPoint& point1, const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegCurveToQuadraticRel : PathSegCurveToQuadraticAbs);
+ writeFloatPoint(point1);
+ writeFloatPoint(targetPoint);
+}
+
+void SVGPathByteStreamBuilder::curveToQuadraticSmooth(const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegCurveToQuadraticSmoothRel : PathSegCurveToQuadraticSmoothAbs);
+ writeFloatPoint(targetPoint);
+}
+
+void SVGPathByteStreamBuilder::arcTo(float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(mode == RelativeCoordinates ? PathSegArcRel : PathSegArcAbs);
+ writeFloat(r1);
+ writeFloat(r2);
+ writeFloat(angle);
+ writeFlag(largeArcFlag);
+ writeFlag(sweepFlag);
+ writeFloatPoint(targetPoint);
+}
+
+void SVGPathByteStreamBuilder::closePath()
+{
+ ASSERT(m_byteStream);
+ writeSegmentType(PathSegClosePath);
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGPathByteStreamBuilder.h b/WebCore/svg/SVGPathByteStreamBuilder.h
new file mode 100644
index 0000000..f1e7524
--- /dev/null
+++ b/WebCore/svg/SVGPathByteStreamBuilder.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGPathByteStreamBuilder_h
+#define SVGPathByteStreamBuilder_h
+
+#if ENABLE(SVG)
+#include "FloatPoint.h"
+#include "PlatformString.h"
+#include "SVGPathByteStream.h"
+#include "SVGPathConsumer.h"
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+class SVGPathByteStreamBuilder : public SVGPathConsumer {
+public:
+ SVGPathByteStreamBuilder();
+
+ void setCurrentByteStream(SVGPathByteStream* byteStream) { m_byteStream = byteStream; }
+ virtual void cleanup() { m_byteStream = 0; }
+
+private:
+ // Used in UnalteredParsing/NormalizedParsing modes.
+ virtual void moveTo(const FloatPoint&, bool closed, PathCoordinateMode);
+ virtual void lineTo(const FloatPoint&, PathCoordinateMode);
+ virtual void curveToCubic(const FloatPoint&, const FloatPoint&, const FloatPoint&, PathCoordinateMode);
+ virtual void closePath();
+
+private:
+ // Only used in UnalteredParsing mode.
+ virtual void lineToHorizontal(float, PathCoordinateMode);
+ virtual void lineToVertical(float, PathCoordinateMode);
+ virtual void curveToCubicSmooth(const FloatPoint&, const FloatPoint&, PathCoordinateMode);
+ virtual void curveToQuadratic(const FloatPoint&, const FloatPoint&, PathCoordinateMode);
+ virtual void curveToQuadraticSmooth(const FloatPoint&, PathCoordinateMode);
+ virtual void arcTo(float, float, float, bool largeArcFlag, bool sweepFlag, const FloatPoint&, PathCoordinateMode);
+
+private:
+ template<typename ByteType>
+ void writeType(const ByteType& type)
+ {
+ size_t typeSize = sizeof(ByteType);
+ for (size_t i = 0; i < typeSize; ++i)
+ m_byteStream->append(type.bytes[i]);
+ }
+
+ void writeFlag(bool value)
+ {
+ BoolByte data;
+ data.value = value;
+ writeType(data);
+ }
+
+ void writeFloat(float value)
+ {
+ FloatByte data;
+ data.value = value;
+ writeType(data);
+ }
+
+ void writeFloatPoint(const FloatPoint& point)
+ {
+ writeFloat(point.x());
+ writeFloat(point.y());
+ }
+
+ void writeSegmentType(unsigned short value)
+ {
+ UnsignedShortByte data;
+ data.value = value;
+ writeType(data);
+ }
+
+ SVGPathByteStream* m_byteStream;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGPathByteStreamBuilder_h
diff --git a/WebCore/svg/SVGPathByteStreamSource.cpp b/WebCore/svg/SVGPathByteStreamSource.cpp
new file mode 100644
index 0000000..e6a60e3
--- /dev/null
+++ b/WebCore/svg/SVGPathByteStreamSource.cpp
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathByteStreamSource.h"
+
+namespace WebCore {
+
+SVGPathByteStreamSource::SVGPathByteStreamSource(SVGPathByteStream* stream)
+ : m_stream(stream)
+{
+ ASSERT(stream);
+ m_streamCurrent = stream->begin();
+ m_streamEnd = stream->end();
+}
+
+SVGPathByteStreamSource::~SVGPathByteStreamSource()
+{
+}
+
+bool SVGPathByteStreamSource::hasMoreData() const
+{
+ return m_streamCurrent < m_streamEnd;
+}
+
+bool SVGPathByteStreamSource::parseSVGSegmentType(SVGPathSegType& pathSegType)
+{
+ pathSegType = static_cast<SVGPathSegType>(readSVGSegmentType());
+ return true;
+}
+
+SVGPathSegType SVGPathByteStreamSource::nextCommand(SVGPathSegType)
+{
+ return static_cast<SVGPathSegType>(readSVGSegmentType());
+}
+
+bool SVGPathByteStreamSource::parseMoveToSegment(FloatPoint& targetPoint)
+{
+ targetPoint = readFloatPoint();
+ return true;
+}
+
+bool SVGPathByteStreamSource::parseLineToSegment(FloatPoint& targetPoint)
+{
+ targetPoint = readFloatPoint();
+ return true;
+}
+
+bool SVGPathByteStreamSource::parseLineToHorizontalSegment(float& x)
+{
+ x = readFloat();
+ return true;
+}
+
+bool SVGPathByteStreamSource::parseLineToVerticalSegment(float& y)
+{
+ y = readFloat();
+ return true;
+}
+
+bool SVGPathByteStreamSource::parseCurveToCubicSegment(FloatPoint& point1, FloatPoint& point2, FloatPoint& targetPoint)
+{
+ point1 = readFloatPoint();
+ point2 = readFloatPoint();
+ targetPoint = readFloatPoint();
+ return true;
+}
+
+bool SVGPathByteStreamSource::parseCurveToCubicSmoothSegment(FloatPoint& point2, FloatPoint& targetPoint)
+{
+ point2 = readFloatPoint();
+ targetPoint = readFloatPoint();
+ return true;
+}
+
+bool SVGPathByteStreamSource::parseCurveToQuadraticSegment(FloatPoint& point1, FloatPoint& targetPoint)
+{
+ point1 = readFloatPoint();
+ targetPoint = readFloatPoint();
+ return true;
+}
+
+bool SVGPathByteStreamSource::parseCurveToQuadraticSmoothSegment(FloatPoint& targetPoint)
+{
+ targetPoint = readFloatPoint();
+ return true;
+}
+
+bool SVGPathByteStreamSource::parseArcToSegment(float& rx, float& ry, float& angle, bool& largeArc, bool& sweep, FloatPoint& targetPoint)
+{
+ rx = readFloat();
+ ry = readFloat();
+ angle = readFloat();
+ largeArc = readFlag();
+ sweep = readFlag();
+ targetPoint = readFloatPoint();
+ return true;
+}
+
+}
+
+#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGPathByteStreamSource.h b/WebCore/svg/SVGPathByteStreamSource.h
new file mode 100644
index 0000000..2537ad2
--- /dev/null
+++ b/WebCore/svg/SVGPathByteStreamSource.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGPathByteStreamSource_h
+#define SVGPathByteStreamSource_h
+
+#if ENABLE(SVG)
+#include "FloatPoint.h"
+#include "SVGPathByteStream.h"
+#include "SVGPathSource.h"
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+class SVGPathByteStreamSource : public SVGPathSource {
+public:
+ static PassOwnPtr<SVGPathByteStreamSource> create(SVGPathByteStream* stream)
+ {
+ return adoptPtr(new SVGPathByteStreamSource(stream));
+ }
+
+ virtual ~SVGPathByteStreamSource();
+
+ virtual bool hasMoreData() const;
+ virtual bool moveToNextToken() { return true; }
+ virtual bool parseSVGSegmentType(SVGPathSegType&);
+ virtual SVGPathSegType nextCommand(SVGPathSegType);
+
+ virtual bool parseMoveToSegment(FloatPoint&);
+ virtual bool parseLineToSegment(FloatPoint&);
+ virtual bool parseLineToHorizontalSegment(float&);
+ virtual bool parseLineToVerticalSegment(float&);
+ virtual bool parseCurveToCubicSegment(FloatPoint&, FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToCubicSmoothSegment(FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToQuadraticSegment(FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToQuadraticSmoothSegment(FloatPoint&);
+ virtual bool parseArcToSegment(float&, float&, float&, bool&, bool&, FloatPoint&);
+
+private:
+ SVGPathByteStreamSource(SVGPathByteStream*);
+
+#if COMPILER(MSVC)
+#pragma warning(disable: 4701)
+#endif
+ template<typename DataType, typename ByteType>
+ DataType readType()
+ {
+ ByteType data;
+ size_t typeSize = sizeof(ByteType);
+
+ for (size_t i = 0; i < typeSize; ++i) {
+ ASSERT(m_streamCurrent < m_streamEnd);
+ data.bytes[i] = *m_streamCurrent;
+ ++m_streamCurrent;
+ }
+
+ return data.value;
+ }
+
+ bool readFlag()
+ {
+ return readType<bool, BoolByte>();
+ }
+
+ float readFloat()
+ {
+ return readType<float, FloatByte>();
+ }
+
+ unsigned short readSVGSegmentType()
+ {
+ return readType<unsigned short, UnsignedShortByte>();
+ }
+
+ FloatPoint readFloatPoint()
+ {
+ float x = readType<float, FloatByte>();
+ float y = readType<float, FloatByte>();
+ return FloatPoint(x, y);
+ }
+
+ SVGPathByteStream* m_stream;
+ SVGPathByteStream::DataIterator m_streamCurrent;
+ SVGPathByteStream::DataIterator m_streamEnd;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGPathByteStreamSource_h
diff --git a/WebCore/svg/SVGPathConsumer.h b/WebCore/svg/SVGPathConsumer.h
index 7f2fb39..b0deb52 100644
--- a/WebCore/svg/SVGPathConsumer.h
+++ b/WebCore/svg/SVGPathConsumer.h
@@ -1,8 +1,8 @@
/*
* Copyright (C) 2002, 2003 The Karbon Developers
- * 2006 Alexander Kellett <lypanov@kde.org>
- * 2006, 2007 Rob Buis <buis@kde.org>
- * Copyrigth (C) 2007, 2009 Apple, Inc. All rights reserved.
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* This library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#ifndef SVGPathConsumer_h
@@ -27,6 +26,7 @@
#if ENABLE(SVG)
#include "FloatPoint.h"
+#include <wtf/Noncopyable.h>
namespace WebCore {
@@ -40,7 +40,10 @@ enum PathParsingMode {
UnalteredParsing
};
-class SVGPathConsumer {
+class SVGPathConsumer : public Noncopyable {
+public:
+ virtual void cleanup() = 0;
+
public:
// Used in UnalteredParisng/NormalizedParsing modes.
virtual void moveTo(const FloatPoint&, bool closed, PathCoordinateMode) = 0;
@@ -55,7 +58,7 @@ public:
virtual void curveToCubicSmooth(const FloatPoint&, const FloatPoint&, PathCoordinateMode) = 0;
virtual void curveToQuadratic(const FloatPoint&, const FloatPoint&, PathCoordinateMode) = 0;
virtual void curveToQuadraticSmooth(const FloatPoint&, PathCoordinateMode) = 0;
- virtual void arcTo(const FloatPoint&, float, float, float, bool largeArcFlag, bool sweepFlag, PathCoordinateMode) = 0;
+ virtual void arcTo(float, float, float, bool largeArcFlag, bool sweepFlag, const FloatPoint&, PathCoordinateMode) = 0;
protected:
SVGPathConsumer() { }
diff --git a/WebCore/svg/SVGPathElement.cpp b/WebCore/svg/SVGPathElement.cpp
index 803ce14..2adc05f 100644
--- a/WebCore/svg/SVGPathElement.cpp
+++ b/WebCore/svg/SVGPathElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -27,6 +27,7 @@
#include "RenderPath.h"
#include "RenderSVGResource.h"
#include "SVGNames.h"
+#include "SVGPathParserFactory.h"
#include "SVGPathSegArc.h"
#include "SVGPathSegClosePath.h"
#include "SVGPathSegCurvetoCubic.h"
@@ -173,8 +174,8 @@ void SVGPathElement::parseMappedAttribute(Attribute* attr)
if (attr->name() == SVGNames::dAttr) {
ExceptionCode ec;
pathSegList()->clear(ec);
- SVGPathSegListBuilder parser(pathSegList());
- if (!parser.build(attr->value(), NormalizedParsing))
+ SVGPathParserFactory* factory = SVGPathParserFactory::self();
+ if (!factory->buildSVGPathSegListFromString(attr->value(), pathSegList(), NormalizedParsing))
document()->accessSVGExtensions()->reportError("Problem parsing d=\"" + attr->value() + "\"");
} else if (attr->name() == SVGNames::pathLengthAttr) {
setPathLengthBaseValue(attr->value().toFloat());
@@ -262,7 +263,10 @@ SVGPathSegList* SVGPathElement::animatedNormalizedPathSegList() const
Path SVGPathElement::toPathData() const
{
- return pathSegList()->toPathData();
+ Path result;
+ SVGPathParserFactory* factory = SVGPathParserFactory::self();
+ factory->buildPathFromSVGPathSegList(pathSegList(), result);
+ return result;
}
}
diff --git a/WebCore/svg/SVGPathElement.h b/WebCore/svg/SVGPathElement.h
index a8523ce..718f05b 100644
--- a/WebCore/svg/SVGPathElement.h
+++ b/WebCore/svg/SVGPathElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathElement_h
#define SVGPathElement_h
diff --git a/WebCore/svg/SVGPathElement.idl b/WebCore/svg/SVGPathElement.idl
index 9a389c8..8506225 100644
--- a/WebCore/svg/SVGPathElement.idl
+++ b/WebCore/svg/SVGPathElement.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathParser.cpp b/WebCore/svg/SVGPathParser.cpp
index 3d937c0..c729dfb 100644
--- a/WebCore/svg/SVGPathParser.cpp
+++ b/WebCore/svg/SVGPathParser.cpp
@@ -1,8 +1,8 @@
/*
* Copyright (C) 2002, 2003 The Karbon Developers
- * 2006 Alexander Kellett <lypanov@kde.org>
- * 2006, 2007 Rob Buis <buis@kde.org>
- * Copyrigth (C) 2007, 2009 Apple, Inc. All rights reserved.
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* This library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#include "config.h"
@@ -28,15 +27,14 @@
#include "SVGPathParser.h"
#include "AffineTransform.h"
-#include "SVGParserUtilities.h"
#include <wtf/MathExtras.h>
static const float gOneOverThree = 1 / 3.f;
namespace WebCore {
-SVGPathParser::SVGPathParser(SVGPathConsumer* consumer)
- : m_consumer(consumer)
+SVGPathParser::SVGPathParser()
+ : m_consumer(0)
{
}
@@ -47,59 +45,55 @@ SVGPathParser::~SVGPathParser()
void SVGPathParser::parseClosePathSegment()
{
// Reset m_currentPoint for the next path.
- if (m_normalized)
+ if (m_pathParsingMode == NormalizedParsing)
m_currentPoint = m_subPathPoint;
- m_pathClosed = true;
+ m_closePath = true;
m_consumer->closePath();
}
bool SVGPathParser::parseMoveToSegment()
{
- float toX;
- float toY;
- if (!parseNumber(m_ptr, m_end, toX) || !parseNumber(m_ptr, m_end, toY))
+ FloatPoint targetPoint;
+ if (!m_source->parseMoveToSegment(targetPoint))
return false;
- FloatPoint toPoint(toX, toY);
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
if (m_mode == RelativeCoordinates)
- m_currentPoint += toPoint;
+ m_currentPoint += targetPoint;
else
- m_currentPoint = toPoint;
+ m_currentPoint = targetPoint;
m_subPathPoint = m_currentPoint;
- m_consumer->moveTo(m_currentPoint, m_pathClosed, AbsoluteCoordinates);
+ m_consumer->moveTo(m_currentPoint, m_closePath, AbsoluteCoordinates);
} else
- m_consumer->moveTo(toPoint, m_pathClosed, m_mode);
- m_pathClosed = false;
+ m_consumer->moveTo(targetPoint, m_closePath, m_mode);
+ m_closePath = false;
return true;
}
bool SVGPathParser::parseLineToSegment()
{
- float toX;
- float toY;
- if (!parseNumber(m_ptr, m_end, toX) || !parseNumber(m_ptr, m_end, toY))
+ FloatPoint targetPoint;
+ if (!m_source->parseLineToSegment(targetPoint))
return false;
- FloatPoint toPoint(toX, toY);
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
if (m_mode == RelativeCoordinates)
- m_currentPoint += toPoint;
+ m_currentPoint += targetPoint;
else
- m_currentPoint = toPoint;
+ m_currentPoint = targetPoint;
m_consumer->lineTo(m_currentPoint, AbsoluteCoordinates);
} else
- m_consumer->lineTo(toPoint, m_mode);
+ m_consumer->lineTo(targetPoint, m_mode);
return true;
}
bool SVGPathParser::parseLineToHorizontalSegment()
{
float toX;
- if (!parseNumber(m_ptr, m_end, toX))
+ if (!m_source->parseLineToHorizontalSegment(toX))
return false;
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
if (m_mode == RelativeCoordinates)
m_currentPoint.move(toX, 0);
else
@@ -113,10 +107,10 @@ bool SVGPathParser::parseLineToHorizontalSegment()
bool SVGPathParser::parseLineToVerticalSegment()
{
float toY;
- if (!parseNumber(m_ptr, m_end, toY))
+ if (!m_source->parseLineToVerticalSegment(toY))
return false;
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
if (m_mode == RelativeCoordinates)
m_currentPoint.move(0, toY);
else
@@ -129,265 +123,243 @@ bool SVGPathParser::parseLineToVerticalSegment()
bool SVGPathParser::parseCurveToCubicSegment()
{
- float x1;
- float y1;
- float x2;
- float y2;
- float toX;
- float toY;
- if (!parseNumber(m_ptr, m_end, x1)
- || !parseNumber(m_ptr, m_end, y1)
- || !parseNumber(m_ptr, m_end, x2)
- || !parseNumber(m_ptr, m_end, y2)
- || !parseNumber(m_ptr, m_end, toX)
- || !parseNumber(m_ptr, m_end, toY))
+ FloatPoint point1;
+ FloatPoint point2;
+ FloatPoint targetPoint;
+ if (!m_source->parseCurveToCubicSegment(point1, point2, targetPoint))
return false;
- FloatPoint point1(x1, y1);
- FloatPoint point2(x2, y2);
- FloatPoint point3(toX, toY);
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
if (m_mode == RelativeCoordinates) {
point1 += m_currentPoint;
point2 += m_currentPoint;
- point3 += m_currentPoint;
+ targetPoint += m_currentPoint;
}
- m_consumer->curveToCubic(point1, point2, point3, AbsoluteCoordinates);
+ m_consumer->curveToCubic(point1, point2, targetPoint, AbsoluteCoordinates);
m_controlPoint = point2;
- m_currentPoint = point3;
+ m_currentPoint = targetPoint;
} else
- m_consumer->curveToCubic(point1, point2, point3, m_mode);
+ m_consumer->curveToCubic(point1, point2, targetPoint, m_mode);
return true;
}
bool SVGPathParser::parseCurveToCubicSmoothSegment()
{
- float x2;
- float y2;
- float toX;
- float toY;
- if (!parseNumber(m_ptr, m_end, x2)
- || !parseNumber(m_ptr, m_end, y2)
- || !parseNumber(m_ptr, m_end, toX)
- || !parseNumber(m_ptr, m_end, toY))
+ FloatPoint point2;
+ FloatPoint targetPoint;
+ if (!m_source->parseCurveToCubicSmoothSegment(point2, targetPoint))
return false;
- if (m_lastCommand != 'c'
- && m_lastCommand != 'C'
- && m_lastCommand != 's'
- && m_lastCommand != 'S')
+ if (m_lastCommand != PathSegCurveToCubicAbs
+ && m_lastCommand != PathSegCurveToCubicRel
+ && m_lastCommand != PathSegCurveToCubicSmoothAbs
+ && m_lastCommand != PathSegCurveToCubicSmoothRel)
m_controlPoint = m_currentPoint;
- FloatPoint point2(x2, y2);
- FloatPoint point3(toX, toY);
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
FloatPoint point1 = m_currentPoint;
point1.scale(2, 2);
point1.move(-m_controlPoint.x(), -m_controlPoint.y());
if (m_mode == RelativeCoordinates) {
point2 += m_currentPoint;
- point3 += m_currentPoint;
+ targetPoint += m_currentPoint;
}
- m_consumer->curveToCubic(point1, point2, point3, AbsoluteCoordinates);
+ m_consumer->curveToCubic(point1, point2, targetPoint, AbsoluteCoordinates);
m_controlPoint = point2;
- m_currentPoint = point3;
+ m_currentPoint = targetPoint;
} else
- m_consumer->curveToCubicSmooth(point2, point3, m_mode);
+ m_consumer->curveToCubicSmooth(point2, targetPoint, m_mode);
return true;
}
bool SVGPathParser::parseCurveToQuadraticSegment()
{
- float x1;
- float y1;
- float toX;
- float toY;
- if (!parseNumber(m_ptr, m_end, x1)
- || !parseNumber(m_ptr, m_end, y1)
- || !parseNumber(m_ptr, m_end, toX)
- || !parseNumber(m_ptr, m_end, toY))
+ FloatPoint point1;
+ FloatPoint targetPoint;
+ if (!m_source->parseCurveToQuadraticSegment(point1, targetPoint))
return false;
- FloatPoint point3(toX, toY);
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
+ m_controlPoint = point1;
FloatPoint point1 = m_currentPoint;
- point1.move(2 * x1, 2 * y1);
- FloatPoint point2(toX + 2 * x1, toY + 2 * y1);
+ point1.move(2 * m_controlPoint.x(), 2 * m_controlPoint.y());
+ FloatPoint point2(targetPoint.x() + 2 * m_controlPoint.x(), targetPoint.y() + 2 * m_controlPoint.y());
if (m_mode == RelativeCoordinates) {
point1.move(2 * m_currentPoint.x(), 2 * m_currentPoint.y());
point2.move(3 * m_currentPoint.x(), 3 * m_currentPoint.y());
- point3 += m_currentPoint;
+ targetPoint += m_currentPoint;
}
point1.scale(gOneOverThree, gOneOverThree);
point2.scale(gOneOverThree, gOneOverThree);
- m_consumer->curveToCubic(point1, point2, point3, AbsoluteCoordinates);
+ m_consumer->curveToCubic(point1, point2, targetPoint, AbsoluteCoordinates);
- m_controlPoint = FloatPoint(x1, y1);
if (m_mode == RelativeCoordinates)
m_controlPoint += m_currentPoint;
- m_currentPoint = point3;
+ m_currentPoint = targetPoint;
} else
- m_consumer->curveToQuadratic(FloatPoint(x1, y1), point3, m_mode);
+ m_consumer->curveToQuadratic(point1, targetPoint, m_mode);
return true;
}
bool SVGPathParser::parseCurveToQuadraticSmoothSegment()
{
- float toX;
- float toY;
- if (!parseNumber(m_ptr, m_end, toX) || !parseNumber(m_ptr, m_end, toY))
+ FloatPoint targetPoint;
+ if (!m_source->parseCurveToQuadraticSmoothSegment(targetPoint))
return false;
- if (m_lastCommand != 'q'
- && m_lastCommand != 'Q'
- && m_lastCommand != 't'
- && m_lastCommand != 'T')
+
+ if (m_lastCommand != PathSegCurveToQuadraticAbs
+ && m_lastCommand != PathSegCurveToQuadraticRel
+ && m_lastCommand != PathSegCurveToQuadraticSmoothAbs
+ && m_lastCommand != PathSegCurveToQuadraticSmoothRel)
m_controlPoint = m_currentPoint;
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
FloatPoint cubicPoint = m_currentPoint;
cubicPoint.scale(2, 2);
cubicPoint.move(-m_controlPoint.x(), -m_controlPoint.y());
FloatPoint point1(m_currentPoint.x() + 2 * cubicPoint.x(), m_currentPoint.y() + 2 * cubicPoint.y());
- FloatPoint point2(toX + 2 * cubicPoint.x(), toY + 2 * cubicPoint.y());
- FloatPoint point3(toX, toY);
+ FloatPoint point2(targetPoint.x() + 2 * cubicPoint.x(), targetPoint.y() + 2 * cubicPoint.y());
if (m_mode == RelativeCoordinates) {
point2 += m_currentPoint;
- point3 += m_currentPoint;
+ targetPoint += m_currentPoint;
}
point1.scale(gOneOverThree, gOneOverThree);
point2.scale(gOneOverThree, gOneOverThree);
- m_consumer->curveToCubic(point1, point2, point3, AbsoluteCoordinates);
+ m_consumer->curveToCubic(point1, point2, targetPoint, AbsoluteCoordinates);
m_controlPoint = cubicPoint;
- m_currentPoint = point3;
+ m_currentPoint = targetPoint;
} else
- m_consumer->curveToQuadraticSmooth(FloatPoint(toX, toY), m_mode);
+ m_consumer->curveToQuadraticSmooth(targetPoint, m_mode);
return true;
}
bool SVGPathParser::parseArcToSegment()
{
- bool largeArc;
- bool sweep;
- float angle;
float rx;
float ry;
- float toX;
- float toY;
- if (!parseNumber(m_ptr, m_end, rx)
- || !parseNumber(m_ptr, m_end, ry)
- || !parseNumber(m_ptr, m_end, angle)
- || !parseArcFlag(m_ptr, m_end, largeArc)
- || !parseArcFlag(m_ptr, m_end, sweep)
- || !parseNumber(m_ptr, m_end, toX)
- || !parseNumber(m_ptr, m_end, toY))
+ float angle;
+ bool largeArc;
+ bool sweep;
+ FloatPoint targetPoint;
+ if (!m_source->parseArcToSegment(rx, ry, angle, largeArc, sweep, targetPoint))
return false;
- FloatPoint point2 = FloatPoint(toX, toY);
// If rx = 0 or ry = 0 then this arc is treated as a straight line segment (a "lineto") joining the endpoints.
// http://www.w3.org/TR/SVG/implnote.html#ArcOutOfRangeParameters
rx = fabsf(rx);
ry = fabsf(ry);
if (!rx || !ry) {
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
if (m_mode == RelativeCoordinates)
- m_currentPoint += point2;
+ m_currentPoint += targetPoint;
else
- m_currentPoint = point2;
+ m_currentPoint = targetPoint;
m_consumer->lineTo(m_currentPoint, AbsoluteCoordinates);
} else
- m_consumer->lineTo(point2, m_mode);
+ m_consumer->lineTo(targetPoint, m_mode);
return true;
}
- if (m_normalized) {
+ if (m_pathParsingMode == NormalizedParsing) {
FloatPoint point1 = m_currentPoint;
if (m_mode == RelativeCoordinates)
- point2 += m_currentPoint;
- m_currentPoint = point2;
- return decomposeArcToCubic(angle, rx, ry, point1, point2, largeArc, sweep);
+ targetPoint += m_currentPoint;
+ m_currentPoint = targetPoint;
+ return decomposeArcToCubic(angle, rx, ry, point1, targetPoint, largeArc, sweep);
}
- m_consumer->arcTo(point2, rx, ry, angle, largeArc, sweep, m_mode);
+ m_consumer->arcTo(rx, ry, angle, largeArc, sweep, targetPoint, m_mode);
return true;
}
-bool SVGPathParser::parsePathDataString(const String& s, bool normalized)
+bool SVGPathParser::parsePathDataFromSource(PathParsingMode pathParsingMode)
{
- m_ptr = s.characters();
- m_end = m_ptr + s.length();
- m_normalized = normalized;
+ ASSERT(m_source);
+ ASSERT(m_consumer);
+
+ m_pathParsingMode = pathParsingMode;
m_controlPoint = FloatPoint();
m_currentPoint = FloatPoint();
m_subPathPoint = FloatPoint();
- m_pathClosed = true;
+ m_closePath = true;
// Skip any leading spaces.
- if (!skipOptionalSpaces(m_ptr, m_end))
+ if (!m_source->moveToNextToken())
return false;
- char command = *(m_ptr++);
- m_lastCommand = ' ';
+ SVGPathSegType command;
+ m_source->parseSVGSegmentType(command);
+ m_lastCommand = PathSegUnknown;
+
// Path must start with moveto.
- if (command != 'm' && command != 'M')
+ if (command != PathSegMoveToAbs && command != PathSegMoveToRel)
return false;
while (true) {
// Skip spaces between command and first coordinate.
- skipOptionalSpaces(m_ptr, m_end);
- m_mode = command >= 'a' && command <= 'z' ? RelativeCoordinates : AbsoluteCoordinates;
+ m_source->moveToNextToken();
+ m_mode = AbsoluteCoordinates;
switch (command) {
- case 'm':
- case 'M':
+ case PathSegMoveToRel:
+ m_mode = RelativeCoordinates;
+ case PathSegMoveToAbs:
if (!parseMoveToSegment())
return false;
break;
- case 'l':
- case 'L':
+ case PathSegLineToRel:
+ m_mode = RelativeCoordinates;
+ case PathSegLineToAbs:
if (!parseLineToSegment())
return false;
break;
- case 'h':
- case 'H':
+ case PathSegLineToHorizontalRel:
+ m_mode = RelativeCoordinates;
+ case PathSegLineToHorizontalAbs:
if (!parseLineToHorizontalSegment())
return false;
break;
- case 'v':
- case 'V':
+ case PathSegLineToVerticalRel:
+ m_mode = RelativeCoordinates;
+ case PathSegLineToVerticalAbs:
if (!parseLineToVerticalSegment())
return false;
break;
- case 'z':
- case 'Z':
+ case PathSegClosePath:
parseClosePathSegment();
break;
- case 'c':
- case 'C':
+ case PathSegCurveToCubicRel:
+ m_mode = RelativeCoordinates;
+ case PathSegCurveToCubicAbs:
if (!parseCurveToCubicSegment())
return false;
break;
- case 's':
- case 'S':
+ case PathSegCurveToCubicSmoothRel:
+ m_mode = RelativeCoordinates;
+ case PathSegCurveToCubicSmoothAbs:
if (!parseCurveToCubicSmoothSegment())
return false;
break;
- case 'q':
- case 'Q':
+ case PathSegCurveToQuadraticRel:
+ m_mode = RelativeCoordinates;
+ case PathSegCurveToQuadraticAbs:
if (!parseCurveToQuadraticSegment())
return false;
break;
- case 't':
- case 'T':
+ case PathSegCurveToQuadraticSmoothRel:
+ m_mode = RelativeCoordinates;
+ case PathSegCurveToQuadraticSmoothAbs:
if (!parseCurveToQuadraticSmoothSegment())
return false;
break;
- case 'a':
- case 'A':
+ case PathSegArcRel:
+ m_mode = RelativeCoordinates;
+ case PathSegArcAbs:
if (!parseArcToSegment())
return false;
break;
@@ -396,29 +368,35 @@ bool SVGPathParser::parsePathDataString(const String& s, bool normalized)
}
m_lastCommand = command;
- if (m_ptr >= m_end)
+ if (!m_source->hasMoreData())
return true;
- // Check for remaining coordinates in the current command.
- if ((*m_ptr == '+' || *m_ptr == '-' || *m_ptr == '.' || (*m_ptr >= '0' && *m_ptr <= '9'))
- && command != 'z' && command != 'Z') {
- if (command == 'M')
- command = 'L';
- else if (command == 'm')
- command = 'l';
- } else
- command = *(m_ptr++);
+ command = m_source->nextCommand(command);
- if (m_lastCommand != 'C' && m_lastCommand != 'c'
- && m_lastCommand != 'S' && m_lastCommand != 's'
- && m_lastCommand != 'Q' && m_lastCommand != 'q'
- && m_lastCommand != 'T' && m_lastCommand != 't')
+ if (m_lastCommand != PathSegCurveToCubicAbs
+ && m_lastCommand != PathSegCurveToCubicRel
+ && m_lastCommand != PathSegCurveToCubicSmoothAbs
+ && m_lastCommand != PathSegCurveToCubicSmoothRel
+ && m_lastCommand != PathSegCurveToQuadraticAbs
+ && m_lastCommand != PathSegCurveToQuadraticRel
+ && m_lastCommand != PathSegCurveToQuadraticSmoothAbs
+ && m_lastCommand != PathSegCurveToQuadraticSmoothRel)
m_controlPoint = m_currentPoint;
}
return false;
}
+void SVGPathParser::cleanup()
+{
+ ASSERT(m_source);
+ ASSERT(m_consumer);
+
+ m_consumer->cleanup();
+ m_source = 0;
+ m_consumer = 0;
+}
+
// This works by converting the SVG arc to "simple" beziers.
// Partly adapted from Niko's code in kdelibs/kdecore/svgicons.
// See also SVG implementation notes: http://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter
@@ -493,13 +471,13 @@ bool SVGPathParser::decomposeArcToCubic(float angle, float rx, float ry, FloatPo
point1 = FloatPoint(cosStartTheta - t * sinStartTheta, sinStartTheta + t * cosStartTheta);
point1.move(centerPoint.x(), centerPoint.y());
- FloatPoint point3 = FloatPoint(cosEndTheta, sinEndTheta);
- point3.move(centerPoint.x(), centerPoint.y());
- point2 = point3;
+ FloatPoint targetPoint = FloatPoint(cosEndTheta, sinEndTheta);
+ targetPoint.move(centerPoint.x(), centerPoint.y());
+ point2 = targetPoint;
point2.move(t * sinEndTheta, -t * cosEndTheta);
m_consumer->curveToCubic(pointTransform.mapPoint(point1), pointTransform.mapPoint(point2),
- pointTransform.mapPoint(point3), AbsoluteCoordinates);
+ pointTransform.mapPoint(targetPoint), AbsoluteCoordinates);
}
return true;
}
diff --git a/WebCore/svg/SVGPathParser.h b/WebCore/svg/SVGPathParser.h
index f39094b..5393fc2 100644
--- a/WebCore/svg/SVGPathParser.h
+++ b/WebCore/svg/SVGPathParser.h
@@ -1,8 +1,8 @@
/*
* Copyright (C) 2002, 2003 The Karbon Developers
- * 2006 Alexander Kellett <lypanov@kde.org>
- * 2006, 2007 Rob Buis <buis@kde.org>
- * Copyrigth (C) 2007, 2009 Apple, Inc. All rights reserved.
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* This library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#ifndef SVGPathParser_h
@@ -28,15 +27,22 @@
#if ENABLE(SVG)
#include "PlatformString.h"
#include "SVGPathConsumer.h"
+#include "SVGPathSeg.h"
+#include "SVGPathSource.h"
+#include <wtf/Noncopyable.h>
+#include <wtf/PassOwnPtr.h>
namespace WebCore {
-class SVGPathParser {
+class SVGPathParser : public Noncopyable {
public:
- SVGPathParser(SVGPathConsumer*);
+ SVGPathParser();
~SVGPathParser();
- bool parsePathDataString(const String&, bool normalized = false);
+ bool parsePathDataFromSource(PathParsingMode pathParsingMode);
+ void setCurrentConsumer(SVGPathConsumer* consumer) { m_consumer = consumer; }
+ void setCurrentSource(SVGPathSource* source) { m_source = source; }
+ void cleanup();
private:
bool decomposeArcToCubic(float, float, float, FloatPoint&, FloatPoint&, bool largeArcFlag, bool sweepFlag);
@@ -51,13 +57,12 @@ private:
bool parseCurveToQuadraticSmoothSegment();
bool parseArcToSegment();
+ SVGPathSource* m_source;
SVGPathConsumer* m_consumer;
PathCoordinateMode m_mode;
- const UChar* m_ptr;
- const UChar* m_end;
- char m_lastCommand;
- bool m_normalized;
- bool m_pathClosed;
+ PathParsingMode m_pathParsingMode;
+ SVGPathSegType m_lastCommand;
+ bool m_closePath;
FloatPoint m_controlPoint;
FloatPoint m_currentPoint;
FloatPoint m_subPathPoint;
diff --git a/WebCore/svg/SVGPathParserFactory.cpp b/WebCore/svg/SVGPathParserFactory.cpp
new file mode 100644
index 0000000..cf1a888
--- /dev/null
+++ b/WebCore/svg/SVGPathParserFactory.cpp
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathParserFactory.h"
+
+#include "StringBuilder.h"
+#include "SVGPathBuilder.h"
+#include "SVGPathByteStreamBuilder.h"
+#include "SVGPathByteStreamSource.h"
+#include "SVGPathParser.h"
+#include "SVGPathSegListBuilder.h"
+#include "SVGPathSegListSource.h"
+#include "SVGPathStringBuilder.h"
+#include "SVGPathStringSource.h"
+
+namespace WebCore {
+
+static SVGPathBuilder* globalSVGPathBuilder(Path& result)
+{
+ static SVGPathBuilder* s_builder = 0;
+ if (!s_builder)
+ s_builder = new SVGPathBuilder;
+
+ s_builder->setCurrentPath(&result);
+ return s_builder;
+}
+
+static SVGPathSegListBuilder* globalSVGPathSegListBuilder(SVGPathSegList* result)
+{
+ static SVGPathSegListBuilder* s_builder = 0;
+ if (!s_builder)
+ s_builder = new SVGPathSegListBuilder;
+
+ s_builder->setCurrentSVGPathSegList(result);
+ return s_builder;
+}
+
+static SVGPathByteStreamBuilder* globalSVGPathByteStreamBuilder(SVGPathByteStream* result)
+{
+ static SVGPathByteStreamBuilder* s_builder = 0;
+ if (!s_builder)
+ s_builder = new SVGPathByteStreamBuilder;
+
+ s_builder->setCurrentByteStream(result);
+ return s_builder;
+}
+
+static SVGPathStringBuilder* globalSVGPathStringBuilder()
+{
+ static SVGPathStringBuilder* s_builder = 0;
+ if (!s_builder)
+ s_builder = new SVGPathStringBuilder;
+
+ return s_builder;
+}
+
+static SVGPathParser* globalSVGPathParser(SVGPathSource* source, SVGPathConsumer* consumer)
+{
+ static SVGPathParser* s_parser = 0;
+ if (!s_parser)
+ s_parser = new SVGPathParser;
+
+ s_parser->setCurrentSource(source);
+ s_parser->setCurrentConsumer(consumer);
+ return s_parser;
+}
+
+SVGPathParserFactory* SVGPathParserFactory::self()
+{
+ static SVGPathParserFactory* s_instance = 0;
+ if (!s_instance)
+ s_instance = new SVGPathParserFactory;
+
+ return s_instance;
+}
+
+SVGPathParserFactory::SVGPathParserFactory()
+{
+}
+
+SVGPathParserFactory::~SVGPathParserFactory()
+{
+}
+
+bool SVGPathParserFactory::buildPathFromString(const String& d, Path& result)
+{
+ if (d.isEmpty())
+ return false;
+
+ SVGPathBuilder* builder = globalSVGPathBuilder(result);
+
+ OwnPtr<SVGPathStringSource> source = SVGPathStringSource::create(d);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(NormalizedParsing);
+ parser->cleanup();
+ return ok;
+}
+
+bool SVGPathParserFactory::buildPathFromByteStream(SVGPathByteStream* stream, Path& result)
+{
+ ASSERT(stream);
+ if (stream->isEmpty())
+ return false;
+
+ SVGPathBuilder* builder = globalSVGPathBuilder(result);
+
+ OwnPtr<SVGPathByteStreamSource> source = SVGPathByteStreamSource::create(stream);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(NormalizedParsing);
+ parser->cleanup();
+ return ok;
+}
+
+bool SVGPathParserFactory::buildPathFromSVGPathSegList(SVGPathSegList* pathSegList, Path& result)
+{
+ ASSERT(pathSegList);
+ if (!pathSegList->numberOfItems())
+ return false;
+
+ SVGPathBuilder* builder = globalSVGPathBuilder(result);
+
+ OwnPtr<SVGPathSegListSource> source = SVGPathSegListSource::create(pathSegList);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(NormalizedParsing);
+ parser->cleanup();
+ return ok;
+}
+
+bool SVGPathParserFactory::buildSVGPathSegListFromString(const String& d, SVGPathSegList* result, PathParsingMode parsingMode)
+{
+ ASSERT(result);
+ if (d.isEmpty())
+ return false;
+
+ SVGPathSegListBuilder* builder = globalSVGPathSegListBuilder(result);
+
+ OwnPtr<SVGPathStringSource> source = SVGPathStringSource::create(d);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(parsingMode);
+ parser->cleanup();
+ return ok;
+}
+
+bool SVGPathParserFactory::buildSVGPathSegListFromByteStream(SVGPathByteStream* stream, SVGPathSegList* result, PathParsingMode parsingMode)
+{
+ ASSERT(stream);
+ ASSERT(result);
+ if (stream->isEmpty())
+ return false;
+
+ SVGPathSegListBuilder* builder = globalSVGPathSegListBuilder(result);
+
+ OwnPtr<SVGPathByteStreamSource> source = SVGPathByteStreamSource::create(stream);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(parsingMode);
+ parser->cleanup();
+ return ok;
+}
+
+bool SVGPathParserFactory::buildStringFromByteStream(SVGPathByteStream* stream, String& result, PathParsingMode parsingMode)
+{
+ ASSERT(stream);
+ if (stream->isEmpty())
+ return false;
+
+ SVGPathStringBuilder* builder = globalSVGPathStringBuilder();
+
+ OwnPtr<SVGPathByteStreamSource> source = SVGPathByteStreamSource::create(stream);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(parsingMode);
+ result = builder->result();
+ parser->cleanup();
+ return ok;
+}
+
+bool SVGPathParserFactory::buildStringFromSVGPathSegList(SVGPathSegList* pathSegList, String& result, PathParsingMode parsingMode)
+{
+ ASSERT(pathSegList);
+ if (!pathSegList->numberOfItems())
+ return false;
+
+ SVGPathStringBuilder* builder = globalSVGPathStringBuilder();
+
+ OwnPtr<SVGPathSegListSource> source = SVGPathSegListSource::create(pathSegList);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(parsingMode);
+ result = builder->result();
+ parser->cleanup();
+ return ok;
+}
+
+bool SVGPathParserFactory::buildSVGPathByteStreamFromString(const String& d, OwnPtr<SVGPathByteStream>& result, PathParsingMode parsingMode)
+{
+ if (d.isEmpty())
+ return false;
+
+ OwnPtr<SVGPathByteStream> stream = SVGPathByteStream::create();
+ SVGPathByteStreamBuilder* builder = globalSVGPathByteStreamBuilder(stream.get());
+
+ OwnPtr<SVGPathStringSource> source = SVGPathStringSource::create(d);
+ SVGPathParser* parser = globalSVGPathParser(source.get(), builder);
+ bool ok = parser->parsePathDataFromSource(parsingMode);
+ result = stream.release();
+ parser->cleanup();
+ return ok;
+}
+
+}
+
+#endif
diff --git a/WebCore/svg/SVGPathParserFactory.h b/WebCore/svg/SVGPathParserFactory.h
new file mode 100644
index 0000000..37418d4
--- /dev/null
+++ b/WebCore/svg/SVGPathParserFactory.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGPathParserFactory_h
+#define SVGPathParserFactory_h
+
+#if ENABLE(SVG)
+#include "Path.h"
+#include "PlatformString.h"
+#include "SVGPathConsumer.h"
+#include "SVGPathSegList.h"
+#include "SVGPathByteStream.h"
+#include <wtf/OwnPtr.h>
+
+namespace WebCore {
+
+class SVGPathParserFactory {
+public:
+ static SVGPathParserFactory* self();
+
+ bool buildPathFromString(const String&, Path&);
+ bool buildPathFromByteStream(SVGPathByteStream*, Path&);
+ bool buildPathFromSVGPathSegList(SVGPathSegList*, Path&);
+
+ bool buildSVGPathSegListFromString(const String&, SVGPathSegList*, PathParsingMode);
+ bool buildSVGPathSegListFromByteStream(SVGPathByteStream*, SVGPathSegList*, PathParsingMode);
+
+ bool buildStringFromByteStream(SVGPathByteStream*, String&, PathParsingMode);
+ bool buildStringFromSVGPathSegList(SVGPathSegList*, String&, PathParsingMode);
+
+ bool buildSVGPathByteStreamFromString(const String&, OwnPtr<SVGPathByteStream>&, PathParsingMode);
+
+private:
+ SVGPathParserFactory();
+ ~SVGPathParserFactory();
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGPathParserFactory_h
diff --git a/WebCore/svg/SVGPathSeg.cpp b/WebCore/svg/SVGPathSeg.cpp
new file mode 100644
index 0000000..56ee56c
--- /dev/null
+++ b/WebCore/svg/SVGPathSeg.cpp
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2010 Google, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#if ENABLE(SVG)
+#include "SVGPathSeg.h"
+
+#include "SVGNames.h"
+
+namespace WebCore {
+
+SVGPathSeg::~SVGPathSeg()
+{
+}
+
+unsigned short SVGPathSeg::pathSegType() const
+{
+ return PATHSEG_UNKNOWN;
+}
+
+String SVGPathSeg::pathSegTypeAsLetter() const
+{
+ return "";
+}
+
+const QualifiedName& SVGPathSeg::associatedAttributeName() const
+{
+ return SVGNames::dAttr;
+}
+
+} // namespace WebCore
+#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGPathSeg.h b/WebCore/svg/SVGPathSeg.h
index b88806c..6c4db89 100644
--- a/WebCore/svg/SVGPathSeg.h
+++ b/WebCore/svg/SVGPathSeg.h
@@ -1,91 +1,115 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSeg_h
#define SVGPathSeg_h
#if ENABLE(SVG)
-#include "PlatformString.h"
-#include "SVGNames.h"
-
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
namespace WebCore {
- class SVGPathElement;
- class SVGStyledElement;
-
- class SVGPathSeg : public RefCounted<SVGPathSeg> {
- public:
- virtual ~SVGPathSeg() { }
-
- enum SVGPathSegType {
- PATHSEG_UNKNOWN = 0,
- PATHSEG_CLOSEPATH = 1,
- PATHSEG_MOVETO_ABS = 2,
- PATHSEG_MOVETO_REL = 3,
- PATHSEG_LINETO_ABS = 4,
- PATHSEG_LINETO_REL = 5,
- PATHSEG_CURVETO_CUBIC_ABS = 6,
- PATHSEG_CURVETO_CUBIC_REL = 7,
- PATHSEG_CURVETO_QUADRATIC_ABS = 8,
- PATHSEG_CURVETO_QUADRATIC_REL = 9,
- PATHSEG_ARC_ABS = 10,
- PATHSEG_ARC_REL = 11,
- PATHSEG_LINETO_HORIZONTAL_ABS = 12,
- PATHSEG_LINETO_HORIZONTAL_REL = 13,
- PATHSEG_LINETO_VERTICAL_ABS = 14,
- PATHSEG_LINETO_VERTICAL_REL = 15,
- PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16,
- PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17,
- PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18,
- PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19
- };
-
- virtual unsigned short pathSegType() const { return PATHSEG_UNKNOWN; }
- virtual String pathSegTypeAsLetter() const { return ""; }
- virtual String toString() const { return ""; }
-
- const QualifiedName& associatedAttributeName() const { return SVGNames::dAttr; }
-
- protected:
- SVGPathSeg() { }
+
+enum SVGPathSegType {
+ PathSegUnknown = 0,
+ PathSegClosePath = 1,
+ PathSegMoveToAbs = 2,
+ PathSegMoveToRel = 3,
+ PathSegLineToAbs = 4,
+ PathSegLineToRel = 5,
+ PathSegCurveToCubicAbs = 6,
+ PathSegCurveToCubicRel = 7,
+ PathSegCurveToQuadraticAbs = 8,
+ PathSegCurveToQuadraticRel = 9,
+ PathSegArcAbs = 10,
+ PathSegArcRel = 11,
+ PathSegLineToHorizontalAbs = 12,
+ PathSegLineToHorizontalRel = 13,
+ PathSegLineToVerticalAbs = 14,
+ PathSegLineToVerticalRel = 15,
+ PathSegCurveToCubicSmoothAbs = 16,
+ PathSegCurveToCubicSmoothRel = 17,
+ PathSegCurveToQuadraticSmoothAbs = 18,
+ PathSegCurveToQuadraticSmoothRel = 19
+};
+
+class SVGPathElement;
+class SVGStyledElement;
+class QualifiedName;
+
+class SVGPathSeg : public RefCounted<SVGPathSeg> {
+public:
+ virtual ~SVGPathSeg();
+
+ // Forward declare these enums in the w3c naming scheme, for IDL generation
+ enum {
+ PATHSEG_UNKNOWN = PathSegUnknown,
+ PATHSEG_CLOSEPATH = PathSegClosePath,
+ PATHSEG_MOVETO_ABS = PathSegMoveToAbs,
+ PATHSEG_MOVETO_REL = PathSegMoveToRel,
+ PATHSEG_LINETO_ABS = PathSegLineToAbs,
+ PATHSEG_LINETO_REL = PathSegLineToRel,
+ PATHSEG_CURVETO_CUBIC_ABS = PathSegCurveToCubicAbs,
+ PATHSEG_CURVETO_CUBIC_REL = PathSegCurveToCubicRel,
+ PATHSEG_CURVETO_QUADRATIC_ABS = PathSegCurveToQuadraticAbs,
+ PATHSEG_CURVETO_QUADRATIC_REL = PathSegCurveToQuadraticRel,
+ PATHSEG_ARC_ABS = PathSegArcAbs,
+ PATHSEG_ARC_REL = PathSegArcRel,
+ PATHSEG_LINETO_HORIZONTAL_ABS = PathSegLineToHorizontalAbs,
+ PATHSEG_LINETO_HORIZONTAL_REL = PathSegLineToHorizontalRel,
+ PATHSEG_LINETO_VERTICAL_ABS = PathSegLineToVerticalAbs,
+ PATHSEG_LINETO_VERTICAL_REL = PathSegLineToVerticalRel,
+ PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = PathSegCurveToCubicSmoothAbs,
+ PATHSEG_CURVETO_CUBIC_SMOOTH_REL = PathSegCurveToCubicSmoothRel,
+ PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = PathSegCurveToQuadraticSmoothAbs,
+ PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = PathSegCurveToQuadraticSmoothRel
};
- class SVGPathSegSingleCoord : public SVGPathSeg {
- public:
- SVGPathSegSingleCoord(float x, float y)
- : SVGPathSeg() , m_x(x) , m_y(y) {}
- void setX(float x) { m_x = x; }
- float x() const { return m_x; }
+ virtual unsigned short pathSegType() const;
+ virtual String pathSegTypeAsLetter() const;
- void setY(float y) { m_y = y; }
- float y() const { return m_y; }
+ const QualifiedName& associatedAttributeName() const;
+
+protected:
+ SVGPathSeg() { }
+};
- virtual String toString() const { return pathSegTypeAsLetter() + String::format(" %.6lg %.6lg", m_x, m_y); }
+class SVGPathSegSingleCoord : public SVGPathSeg {
+public:
+ SVGPathSegSingleCoord(float x, float y)
+ : m_x(x)
+ , m_y(y)
+ {
+ }
- private:
- float m_x;
- float m_y;
- };
+ void setX(float x) { m_x = x; }
+ float x() const { return m_x; }
+
+ void setY(float y) { m_y = y; }
+ float y() const { return m_y; }
+private:
+ float m_x;
+ float m_y;
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGPathSeg.idl b/WebCore/svg/SVGPathSeg.idl
index afabb41..8641a48 100644
--- a/WebCore/svg/SVGPathSeg.idl
+++ b/WebCore/svg/SVGPathSeg.idl
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegArc.cpp b/WebCore/svg/SVGPathSegArc.cpp
index 5fb0243..f606905 100644
--- a/WebCore/svg/SVGPathSegArc.cpp
+++ b/WebCore/svg/SVGPathSegArc.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegArc.h b/WebCore/svg/SVGPathSegArc.h
index e1cbeb1..c7bbbb0 100644
--- a/WebCore/svg/SVGPathSegArc.h
+++ b/WebCore/svg/SVGPathSegArc.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegArc_h
#define SVGPathSegArc_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
@@ -30,9 +31,15 @@ namespace WebCore {
class SVGPathSegArc : public SVGPathSeg {
public:
SVGPathSegArc(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag)
- : m_x(x), m_y(y), m_r1(r1), m_r2(r2), m_angle(angle), m_largeArcFlag(largeArcFlag), m_sweepFlag(sweepFlag) {}
-
- virtual String toString() const { return pathSegTypeAsLetter() + String::format(" %.6lg %.6lg %.6lg %d %d %.6lg %.6lg", m_r1, m_r2, m_angle, m_largeArcFlag, m_sweepFlag, m_x, m_y); }
+ : m_x(x)
+ , m_y(y)
+ , m_r1(r1)
+ , m_r2(r2)
+ , m_angle(angle)
+ , m_largeArcFlag(largeArcFlag)
+ , m_sweepFlag(sweepFlag)
+ {
+ }
void setX(float x) { m_x = x; }
float x() const { return m_x; }
diff --git a/WebCore/svg/SVGPathSegArcAbs.idl b/WebCore/svg/SVGPathSegArcAbs.idl
index 5d9cf7c..bdc45a7 100644
--- a/WebCore/svg/SVGPathSegArcAbs.idl
+++ b/WebCore/svg/SVGPathSegArcAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegArcRel.idl b/WebCore/svg/SVGPathSegArcRel.idl
index b4b66ab..8b08d68 100644
--- a/WebCore/svg/SVGPathSegArcRel.idl
+++ b/WebCore/svg/SVGPathSegArcRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegClosePath.cpp b/WebCore/svg/SVGPathSegClosePath.cpp
index 1f58096..d3c8c3b 100644
--- a/WebCore/svg/SVGPathSegClosePath.cpp
+++ b/WebCore/svg/SVGPathSegClosePath.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegClosePath.h b/WebCore/svg/SVGPathSegClosePath.h
index 0e29bb3..635c970 100644
--- a/WebCore/svg/SVGPathSegClosePath.h
+++ b/WebCore/svg/SVGPathSegClosePath.h
@@ -1,47 +1,46 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegClosePath_h
#define SVGPathSegClosePath_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
- class SVGPathSegClosePath : public SVGPathSeg {
- public:
- static PassRefPtr<SVGPathSegClosePath> create() { return adoptRef(new SVGPathSegClosePath); }
- virtual ~SVGPathSegClosePath();
-
- virtual unsigned short pathSegType() const { return PATHSEG_CLOSEPATH; }
- virtual String pathSegTypeAsLetter() const { return "Z"; }
- virtual String toString() const { return "Z"; }
-
- private:
- SVGPathSegClosePath();
- };
+
+class SVGPathSegClosePath : public SVGPathSeg {
+public:
+ static PassRefPtr<SVGPathSegClosePath> create() { return adoptRef(new SVGPathSegClosePath); }
+ virtual ~SVGPathSegClosePath();
+
+ virtual unsigned short pathSegType() const { return PATHSEG_CLOSEPATH; }
+ virtual String pathSegTypeAsLetter() const { return "Z"; }
+
+private:
+ SVGPathSegClosePath();
+};
} // namespace WebCore
#endif // ENABLE(SVG)
#endif
-
-// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegClosePath.idl b/WebCore/svg/SVGPathSegClosePath.idl
index 4061a13..2bd6c61 100644
--- a/WebCore/svg/SVGPathSegClosePath.idl
+++ b/WebCore/svg/SVGPathSegClosePath.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegCurvetoCubic.cpp b/WebCore/svg/SVGPathSegCurvetoCubic.cpp
index 6b87f55..33f2d96 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubic.cpp
+++ b/WebCore/svg/SVGPathSegCurvetoCubic.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegCurvetoCubic.h b/WebCore/svg/SVGPathSegCurvetoCubic.h
index 125b3a3..7e2735e 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubic.h
+++ b/WebCore/svg/SVGPathSegCurvetoCubic.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegCurvetoCubic_h
#define SVGPathSegCurvetoCubic_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
@@ -31,8 +32,6 @@ namespace WebCore {
public:
SVGPathSegCurvetoCubic(float x, float y, float x1, float y1, float x2, float y2) : SVGPathSeg() , m_x(x) , m_y(y) , m_x1(x1) , m_y1(y1) , m_x2(x2) , m_y2(y2) {}
- virtual String toString() const { return pathSegTypeAsLetter() + String::format(" %.6lg %.6lg %.6lg %.6lg %.6lg %.6lg", m_x1, m_y1, m_x2, m_y2, m_x, m_y); }
-
void setX(float x) { m_x = x; }
float x() const { return m_x; }
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl b/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl
index 79188ff..6b16809 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl
+++ b/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicRel.idl b/WebCore/svg/SVGPathSegCurvetoCubicRel.idl
index 89677db..be6606d 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicRel.idl
+++ b/WebCore/svg/SVGPathSegCurvetoCubicRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp b/WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp
index 97b256b..a7625e3 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp
+++ b/WebCore/svg/SVGPathSegCurvetoCubicSmooth.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h b/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h
index db71dac..bc8895c 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h
+++ b/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegCurvetoCubicSmooth_h
#define SVGPathSegCurvetoCubicSmooth_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
@@ -32,8 +33,6 @@ namespace WebCore {
SVGPathSegCurvetoCubicSmooth(float x, float y, float x2, float y2)
: m_x(x), m_y(y), m_x2(x2), m_y2(y2) { }
- virtual String toString() const { return pathSegTypeAsLetter() + String::format(" %.6lg %.6lg %.6lg %.6lg", m_x2, m_y2, m_x, m_y); }
-
void setX(float x) { m_x = x; }
float x() const { return m_x; }
@@ -79,5 +78,3 @@ namespace WebCore {
#endif // ENABLE(SVG)
#endif
-
-// vim:ts=4:noet
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl b/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
index 4768271..d31582e 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
+++ b/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl b/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl
index c807621..2dd71f0 100644
--- a/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl
+++ b/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadratic.cpp b/WebCore/svg/SVGPathSegCurvetoQuadratic.cpp
index f3de513..bf2bb4d 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadratic.cpp
+++ b/WebCore/svg/SVGPathSegCurvetoQuadratic.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadratic.h b/WebCore/svg/SVGPathSegCurvetoQuadratic.h
index eb8b0d5..967442f 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadratic.h
+++ b/WebCore/svg/SVGPathSegCurvetoQuadratic.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegCurvetoQuadratic_h
#define SVGPathSegCurvetoQuadratic_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
@@ -32,8 +33,6 @@ namespace WebCore {
SVGPathSegCurvetoQuadratic(float x, float y, float x1, float y1)
: SVGPathSeg(), m_x(x), m_y(y), m_x1(x1), m_y1(y1) {}
- virtual String toString() const { return pathSegTypeAsLetter() + String::format(" %.6lg %.6lg %.6lg %.6lg", m_x1, m_y1, m_x, m_y); }
-
void setX(float x) { m_x = x; }
float x() const { return m_x; }
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl b/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl
index b6da170..9b09222 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl b/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl
index 2404b67..01e1e6d 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp b/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp
index a64cbb6..6a7e9f7 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h b/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h
index 00eeec7..fb3d51f 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticSmooth.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegCurvetoQuadraticSmooth_h
#define SVGPathSegCurvetoQuadraticSmooth_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl b/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
index c47450b..4568538 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl b/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
index 0cdff0e..5ffde79 100644
--- a/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
+++ b/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegLineto.cpp b/WebCore/svg/SVGPathSegLineto.cpp
index 9ad300e..746f2c1 100644
--- a/WebCore/svg/SVGPathSegLineto.cpp
+++ b/WebCore/svg/SVGPathSegLineto.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegLineto.h b/WebCore/svg/SVGPathSegLineto.h
index 500d5e4..9b69bf0 100644
--- a/WebCore/svg/SVGPathSegLineto.h
+++ b/WebCore/svg/SVGPathSegLineto.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegLineto_h
#define SVGPathSegLineto_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
diff --git a/WebCore/svg/SVGPathSegLinetoAbs.idl b/WebCore/svg/SVGPathSegLinetoAbs.idl
index 3cb4e35..85dfca5 100644
--- a/WebCore/svg/SVGPathSegLinetoAbs.idl
+++ b/WebCore/svg/SVGPathSegLinetoAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegLinetoHorizontal.cpp b/WebCore/svg/SVGPathSegLinetoHorizontal.cpp
index f217919..85f2896 100644
--- a/WebCore/svg/SVGPathSegLinetoHorizontal.cpp
+++ b/WebCore/svg/SVGPathSegLinetoHorizontal.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegLinetoHorizontal.h b/WebCore/svg/SVGPathSegLinetoHorizontal.h
index 87d6475..3a16ad1 100644
--- a/WebCore/svg/SVGPathSegLinetoHorizontal.h
+++ b/WebCore/svg/SVGPathSegLinetoHorizontal.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegLinetoHorizontal_h
#define SVGPathSegLinetoHorizontal_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
@@ -31,8 +32,6 @@ namespace WebCore {
public:
SVGPathSegLinetoHorizontal(float x) : SVGPathSeg(), m_x(x) {}
- virtual String toString() const { return pathSegTypeAsLetter() + String::format(" %.6lg", m_x); }
-
void setX(float x) { m_x = x; }
float x() const { return m_x; }
diff --git a/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl b/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl
index 2a0aff5..eadb612 100644
--- a/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl
+++ b/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl b/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl
index 4fa03b4..91f537c 100644
--- a/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl
+++ b/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegLinetoRel.idl b/WebCore/svg/SVGPathSegLinetoRel.idl
index 94f129d..51a8b5d 100644
--- a/WebCore/svg/SVGPathSegLinetoRel.idl
+++ b/WebCore/svg/SVGPathSegLinetoRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegLinetoVertical.cpp b/WebCore/svg/SVGPathSegLinetoVertical.cpp
index 341ab02..ba02c9e 100644
--- a/WebCore/svg/SVGPathSegLinetoVertical.cpp
+++ b/WebCore/svg/SVGPathSegLinetoVertical.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegLinetoVertical.h b/WebCore/svg/SVGPathSegLinetoVertical.h
index 844f2f2..d4d9f85 100644
--- a/WebCore/svg/SVGPathSegLinetoVertical.h
+++ b/WebCore/svg/SVGPathSegLinetoVertical.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegLinetoVertical_h
#define SVGPathSegLinetoVertical_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
@@ -31,8 +32,6 @@ namespace WebCore {
public:
SVGPathSegLinetoVertical(float y) : SVGPathSeg(), m_y(y) {}
- virtual String toString() const { return pathSegTypeAsLetter() + String::format(" %.6lg", m_y); }
-
void setY(float y) { m_y = y; }
float y() const { return m_y; }
diff --git a/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl b/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl
index c2c59a5..b6ba7f1 100644
--- a/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl
+++ b/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegLinetoVerticalRel.idl b/WebCore/svg/SVGPathSegLinetoVerticalRel.idl
index bb8c3af..7246c7d 100644
--- a/WebCore/svg/SVGPathSegLinetoVerticalRel.idl
+++ b/WebCore/svg/SVGPathSegLinetoVerticalRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegList.cpp b/WebCore/svg/SVGPathSegList.cpp
index e1215e5..b445d3e 100644
--- a/WebCore/svg/SVGPathSegList.cpp
+++ b/WebCore/svg/SVGPathSegList.cpp
@@ -1,25 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
@@ -66,19 +64,19 @@ unsigned SVGPathSegList::getPathSegAtLength(double length, ExceptionCode& ec)
return 0;
float segmentLength = 0;
switch (segment->pathSegType()) {
- case SVGPathSeg::PATHSEG_MOVETO_ABS:
+ case PathSegMoveToAbs:
{
SVGPathSegMovetoAbs* moveTo = static_cast<SVGPathSegMovetoAbs*>(segment);
segmentLength = traversalState.moveTo(FloatPoint(moveTo->x(), moveTo->y()));
break;
}
- case SVGPathSeg::PATHSEG_LINETO_ABS:
+ case PathSegLineToAbs:
{
SVGPathSegLinetoAbs* lineTo = static_cast<SVGPathSegLinetoAbs*>(segment);
segmentLength = traversalState.lineTo(FloatPoint(lineTo->x(), lineTo->y()));
break;
}
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_ABS:
+ case PathSegCurveToCubicAbs:
{
SVGPathSegCurvetoCubicAbs* curveTo = static_cast<SVGPathSegCurvetoCubicAbs*>(segment);
segmentLength = traversalState.cubicBezierTo(FloatPoint(curveTo->x1(), curveTo->y1()),
@@ -86,7 +84,7 @@ unsigned SVGPathSegList::getPathSegAtLength(double length, ExceptionCode& ec)
FloatPoint(curveTo->x(), curveTo->y()));
break;
}
- case SVGPathSeg::PATHSEG_CLOSEPATH:
+ case PathSegClosePath:
segmentLength = traversalState.closeSubpath();
break;
default:
@@ -105,66 +103,6 @@ unsigned SVGPathSegList::getPathSegAtLength(double length, ExceptionCode& ec)
// WebKit/Opera/FF all return the last path segment if the distance exceeds the actual path length:
return traversalState.m_segmentIndex ? traversalState.m_segmentIndex - 1 : 0;
}
-
-Path SVGPathSegList::toPathData()
-{
- // FIXME : This should also support non-normalized PathSegLists
- Path pathData;
- int len = numberOfItems();
- ExceptionCode ec = 0;
- FloatPoint previousEndPoint(0, 0);
- for (int i = 0; i < len; ++i) {
- SVGPathSeg* segment = getItem(i, ec).get();
- if (ec)
- return Path();
- switch (segment->pathSegType()) {
- case SVGPathSeg::PATHSEG_MOVETO_ABS:
- {
- SVGPathSegMovetoAbs* moveTo = static_cast<SVGPathSegMovetoAbs*>(segment);
- FloatPoint endPoint(moveTo->x(), moveTo->y());
- pathData.moveTo(endPoint);
- previousEndPoint = endPoint;
- break;
- }
- case SVGPathSeg::PATHSEG_LINETO_ABS:
- {
- SVGPathSegLinetoAbs* lineTo = static_cast<SVGPathSegLinetoAbs*>(segment);
- FloatPoint endPoint(lineTo->x(), lineTo->y());
- pathData.addLineTo(endPoint);
- previousEndPoint = endPoint;
- break;
- }
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_ABS:
- {
- SVGPathSegCurvetoCubicAbs* curveTo = static_cast<SVGPathSegCurvetoCubicAbs*>(segment);
- FloatPoint endPoint(curveTo->x(), curveTo->y());
- pathData.addBezierCurveTo(FloatPoint(curveTo->x1(), curveTo->y1()),
- FloatPoint(curveTo->x2(), curveTo->y2()),
- endPoint);
- previousEndPoint = endPoint;
- break;
- }
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_REL:
- {
- SVGPathSegCurvetoCubicRel* curveTo = static_cast<SVGPathSegCurvetoCubicRel*>(segment);
- FloatSize endPoint(curveTo->x(), curveTo->y());
- pathData.addBezierCurveTo(previousEndPoint + FloatSize(curveTo->x1(), curveTo->y1()),
- previousEndPoint + FloatSize(curveTo->x2(), curveTo->y2()),
- previousEndPoint + endPoint);
- previousEndPoint += endPoint;
- break;
- }
- case SVGPathSeg::PATHSEG_CLOSEPATH:
- pathData.closeSubpath();
- break;
- default:
- ASSERT(false); // FIXME: This only works with normalized/processed path data.
- break;
- }
- }
-
- return pathData;
-}
float adjustAnimatedValue(float from, float to, float progress)
{
@@ -215,68 +153,68 @@ PassRefPtr<SVGPathSegList> SVGPathSegList::createAnimated(const SVGPathSegList*
SVGPathSeg* to = toList->getItem(n, ec).get();
if (ec)
return 0;
- if (from->pathSegType() == SVGPathSeg::PATHSEG_UNKNOWN || from->pathSegType() != to->pathSegType())
+ if (from->pathSegType() == PathSegUnknown || from->pathSegType() != to->pathSegType())
return 0;
RefPtr<SVGPathSeg> segment = 0;
- switch (static_cast<SVGPathSeg::SVGPathSegType>(from->pathSegType())) {
- case SVGPathSeg::PATHSEG_CLOSEPATH:
+ switch (static_cast<SVGPathSegType>(from->pathSegType())) {
+ case PathSegClosePath:
segment = SVGPathSegClosePath::create();
break;
- case SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_ABS:
+ case PathSegLineToHorizontalAbs:
segment = BLENDPATHSEG1(SVGPathSegLinetoHorizontalAbs, x);
break;
- case SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_REL:
+ case PathSegLineToHorizontalRel:
segment = BLENDPATHSEG1(SVGPathSegLinetoHorizontalRel, x);
break;
- case SVGPathSeg::PATHSEG_LINETO_VERTICAL_ABS:
+ case PathSegLineToVerticalAbs:
segment = BLENDPATHSEG1(SVGPathSegLinetoVerticalAbs, y);
break;
- case SVGPathSeg::PATHSEG_LINETO_VERTICAL_REL:
+ case PathSegLineToVerticalRel:
segment = BLENDPATHSEG1(SVGPathSegLinetoVerticalRel, y);
break;
- case SVGPathSeg::PATHSEG_MOVETO_ABS:
+ case PathSegMoveToAbs:
segment = BLENDPATHSEG2(SVGPathSegMovetoAbs, x, y);
break;
- case SVGPathSeg::PATHSEG_MOVETO_REL:
+ case PathSegMoveToRel:
segment = BLENDPATHSEG2(SVGPathSegMovetoRel, x, y);
break;
- case SVGPathSeg::PATHSEG_LINETO_ABS:
+ case PathSegLineToAbs:
segment = BLENDPATHSEG2(SVGPathSegLinetoAbs, x, y);
break;
- case SVGPathSeg::PATHSEG_LINETO_REL:
+ case PathSegLineToRel:
segment = BLENDPATHSEG2(SVGPathSegLinetoRel, x, y);
break;
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_ABS:
+ case PathSegCurveToCubicAbs:
segment = BLENDPATHSEG6(SVGPathSegCurvetoCubicAbs, x, y, x1, y1, x2, y2);
break;
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_REL:
+ case PathSegCurveToCubicRel:
segment = BLENDPATHSEG6(SVGPathSegCurvetoCubicRel, x, y, x1, y1, x2, y2);
break;
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:
+ case PathSegCurveToCubicSmoothAbs:
segment = BLENDPATHSEG4(SVGPathSegCurvetoCubicSmoothAbs, x, y, x2, y2);
break;
- case SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_REL:
+ case PathSegCurveToCubicSmoothRel:
segment = BLENDPATHSEG4(SVGPathSegCurvetoCubicSmoothRel, x, y, x2, y2);
break;
- case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_ABS:
+ case PathSegCurveToQuadraticAbs:
segment = BLENDPATHSEG4(SVGPathSegCurvetoQuadraticAbs, x, y, x1, y1);
break;
- case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_REL:
+ case PathSegCurveToQuadraticRel:
segment = BLENDPATHSEG4(SVGPathSegCurvetoQuadraticRel, x, y, x1, y1);
break;
- case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:
+ case PathSegCurveToQuadraticSmoothAbs:
segment = BLENDPATHSEG2(SVGPathSegCurvetoQuadraticSmoothAbs, x, y);
break;
- case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:
+ case PathSegCurveToQuadraticSmoothRel:
segment = BLENDPATHSEG2(SVGPathSegCurvetoQuadraticSmoothRel, x, y);
break;
- case SVGPathSeg::PATHSEG_ARC_ABS:
+ case PathSegArcAbs:
segment = BLENDPATHSEG7(SVGPathSegArcAbs, x, y, r1, r2, angle, largeArcFlag, sweepFlag);
break;
- case SVGPathSeg::PATHSEG_ARC_REL:
+ case PathSegArcRel:
segment = BLENDPATHSEG7(SVGPathSegArcRel, x, y, r1, r2, angle, largeArcFlag, sweepFlag);
break;
- case SVGPathSeg::PATHSEG_UNKNOWN:
+ case PathSegUnknown:
ASSERT_NOT_REACHED();
}
result->appendItem(segment, ec);
diff --git a/WebCore/svg/SVGPathSegList.h b/WebCore/svg/SVGPathSegList.h
index 153e16a..7e7134f 100644
--- a/WebCore/svg/SVGPathSegList.h
+++ b/WebCore/svg/SVGPathSegList.h
@@ -1,23 +1,21 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegList_h
#define SVGPathSegList_h
@@ -37,7 +35,6 @@ namespace WebCore {
virtual ~SVGPathSegList();
unsigned getPathSegAtLength(double, ExceptionCode&);
- Path toPathData();
static PassRefPtr<SVGPathSegList> createAnimated(const SVGPathSegList* fromList, const SVGPathSegList* toList, float progress);
diff --git a/WebCore/svg/SVGPathSegList.idl b/WebCore/svg/SVGPathSegList.idl
index 8c67bd3..1407b33 100644
--- a/WebCore/svg/SVGPathSegList.idl
+++ b/WebCore/svg/SVGPathSegList.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegListBuilder.cpp b/WebCore/svg/SVGPathSegListBuilder.cpp
index 4434c2e..342de88 100644
--- a/WebCore/svg/SVGPathSegListBuilder.cpp
+++ b/WebCore/svg/SVGPathSegListBuilder.cpp
@@ -1,8 +1,8 @@
/*
* Copyright (C) 2002, 2003 The Karbon Developers
- * 2006 Alexander Kellett <lypanov@kde.org>
- * 2006, 2007 Rob Buis <buis@kde.org>
- * Copyrigth (C) 2007, 2009 Apple, Inc. All rights reserved.
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* This library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#include "config.h"
@@ -29,7 +28,6 @@
#include "ExceptionCode.h"
#include "SVGPathElement.h"
-#include "SVGPathParser.h"
#include "SVGPathSegArc.h"
#include "SVGPathSegClosePath.h"
#include "SVGPathSegCurvetoCubic.h"
@@ -44,42 +42,36 @@
namespace WebCore {
-SVGPathSegListBuilder::SVGPathSegListBuilder(SVGPathSegList* segList)
- : m_pathSegList(segList)
+SVGPathSegListBuilder::SVGPathSegListBuilder()
+ : m_pathSegList(0)
{
}
-bool SVGPathSegListBuilder::build(const String& d, PathParsingMode parsingMode)
-{
- if (!m_pathSegList)
- return false;
-
- SVGPathParser parser(this);
- return parser.parsePathDataString(d, parsingMode == NormalizedParsing);
-}
-
-void SVGPathSegListBuilder::moveTo(const FloatPoint& point, bool, PathCoordinateMode mode)
+void SVGPathSegListBuilder::moveTo(const FloatPoint& targetPoint, bool, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegMovetoAbs(point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegMovetoAbs(targetPoint.x(), targetPoint.y()), ec);
else
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegMovetoRel(point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegMovetoRel(targetPoint.x(), targetPoint.y()), ec);
ASSERT(!ec);
}
-void SVGPathSegListBuilder::lineTo(const FloatPoint& point, PathCoordinateMode mode)
+void SVGPathSegListBuilder::lineTo(const FloatPoint& targetPoint, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoAbs(point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoAbs(targetPoint.x(), targetPoint.y()), ec);
else
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoRel(point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoRel(targetPoint.x(), targetPoint.y()), ec);
ASSERT(!ec);
}
void SVGPathSegListBuilder::lineToHorizontal(float x, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoHorizontalAbs(x), ec);
@@ -90,6 +82,7 @@ void SVGPathSegListBuilder::lineToHorizontal(float x, PathCoordinateMode mode)
void SVGPathSegListBuilder::lineToVertical(float y, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
m_pathSegList->appendItem(SVGPathElement::createSVGPathSegLinetoVerticalAbs(y), ec);
@@ -98,58 +91,64 @@ void SVGPathSegListBuilder::lineToVertical(float y, PathCoordinateMode mode)
ASSERT(!ec);
}
-void SVGPathSegListBuilder::curveToCubic(const FloatPoint& point1, const FloatPoint& point2, const FloatPoint& point, PathCoordinateMode mode)
+void SVGPathSegListBuilder::curveToCubic(const FloatPoint& point1, const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicAbs(point.x(), point.y(), point1.x(), point1.y(), point2.x(), point2.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicAbs(targetPoint.x(), targetPoint.y(), point1.x(), point1.y(), point2.x(), point2.y()), ec);
else
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicRel(point.x(), point.y(), point1.x(), point1.y(), point2.x(), point2.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicRel(targetPoint.x(), targetPoint.y(), point1.x(), point1.y(), point2.x(), point2.y()), ec);
ASSERT(!ec);
}
-void SVGPathSegListBuilder::curveToCubicSmooth(const FloatPoint& point, const FloatPoint& point2, PathCoordinateMode mode)
+void SVGPathSegListBuilder::curveToCubicSmooth(const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs(point2.x(), point2.y(), point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs(targetPoint.x(), targetPoint.y(), point2.x(), point2.y()), ec);
else
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel(point2.x(), point2.y(), point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel(targetPoint.x(), targetPoint.y(), point2.x(), point2.y()), ec);
ASSERT(!ec);
}
-void SVGPathSegListBuilder::curveToQuadratic(const FloatPoint& point, const FloatPoint& point1, PathCoordinateMode mode)
+void SVGPathSegListBuilder::curveToQuadratic(const FloatPoint& point1, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticAbs(point1.x(), point1.y(), point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticAbs(targetPoint.x(), targetPoint.y(), point1.x(), point1.y()), ec);
else
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticRel(point1.x(), point1.y(), point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticRel(targetPoint.x(), targetPoint.y(), point1.x(), point1.y()), ec);
ASSERT(!ec);
}
-void SVGPathSegListBuilder::curveToQuadraticSmooth(const FloatPoint& point, PathCoordinateMode mode)
+void SVGPathSegListBuilder::curveToQuadraticSmooth(const FloatPoint& targetPoint, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs(point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs(targetPoint.x(), targetPoint.y()), ec);
else
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel(point.x(), point.y()), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel(targetPoint.x(), targetPoint.y()), ec);
ASSERT(!ec);
}
-void SVGPathSegListBuilder::arcTo(const FloatPoint& point, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, PathCoordinateMode mode)
+void SVGPathSegListBuilder::arcTo(float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, const FloatPoint& targetPoint, PathCoordinateMode mode)
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
if (mode == AbsoluteCoordinates)
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegArcAbs(point.x(), point.y(), r1, r2, angle, largeArcFlag, sweepFlag), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegArcAbs(targetPoint.x(), targetPoint.y(), r1, r2, angle, largeArcFlag, sweepFlag), ec);
else
- m_pathSegList->appendItem(SVGPathElement::createSVGPathSegArcRel(point.x(), point.y(), r1, r2, angle, largeArcFlag, sweepFlag), ec);
+ m_pathSegList->appendItem(SVGPathElement::createSVGPathSegArcRel(targetPoint.x(), targetPoint.y(), r1, r2, angle, largeArcFlag, sweepFlag), ec);
ASSERT(!ec);
}
void SVGPathSegListBuilder::closePath()
{
+ ASSERT(m_pathSegList);
ExceptionCode ec = 0;
m_pathSegList->appendItem(SVGPathElement::createSVGPathSegClosePath(), ec);
ASSERT(!ec);
diff --git a/WebCore/svg/SVGPathSegListBuilder.h b/WebCore/svg/SVGPathSegListBuilder.h
index 71d0dde..aa4a782 100644
--- a/WebCore/svg/SVGPathSegListBuilder.h
+++ b/WebCore/svg/SVGPathSegListBuilder.h
@@ -1,8 +1,8 @@
/*
* Copyright (C) 2002, 2003 The Karbon Developers
- * 2006 Alexander Kellett <lypanov@kde.org>
- * 2006, 2007 Rob Buis <buis@kde.org>
- * Copyrigth (C) 2007, 2009 Apple, Inc. All rights reserved.
+ * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* This library is free software; you can redistribute it and/or
@@ -19,7 +19,6 @@
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
- *
*/
#ifndef SVGPathSegListBuilder_h
@@ -32,10 +31,12 @@
namespace WebCore {
-class SVGPathSegListBuilder : private SVGPathConsumer {
+class SVGPathSegListBuilder : public SVGPathConsumer {
public:
- SVGPathSegListBuilder(SVGPathSegList*);
- bool build(const String&, PathParsingMode);
+ SVGPathSegListBuilder();
+
+ void setCurrentSVGPathSegList(SVGPathSegList* pathSegList) { m_pathSegList = pathSegList; }
+ virtual void cleanup() { m_pathSegList = 0; }
private:
// Used in UnalteredParisng/NormalizedParsing modes.
@@ -51,7 +52,7 @@ private:
virtual void curveToCubicSmooth(const FloatPoint&, const FloatPoint&, PathCoordinateMode);
virtual void curveToQuadratic(const FloatPoint&, const FloatPoint&, PathCoordinateMode);
virtual void curveToQuadraticSmooth(const FloatPoint&, PathCoordinateMode);
- virtual void arcTo(const FloatPoint&, float, float, float, bool largeArcFlag, bool sweepFlag, PathCoordinateMode);
+ virtual void arcTo(float, float, float, bool largeArcFlag, bool sweepFlag, const FloatPoint&, PathCoordinateMode);
SVGPathSegList* m_pathSegList;
};
diff --git a/WebCore/svg/SVGPathSegListSource.cpp b/WebCore/svg/SVGPathSegListSource.cpp
new file mode 100644
index 0000000..48fa094
--- /dev/null
+++ b/WebCore/svg/SVGPathSegListSource.cpp
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathSegListSource.h"
+
+#include "SVGPathSegArc.h"
+#include "SVGPathSegCurvetoCubic.h"
+#include "SVGPathSegCurvetoCubicSmooth.h"
+#include "SVGPathSegCurvetoQuadratic.h"
+#include "SVGPathSegLinetoHorizontal.h"
+#include "SVGPathSegLinetoVertical.h"
+
+namespace WebCore {
+
+SVGPathSegListSource::SVGPathSegListSource(SVGPathSegList* pathSegList)
+ : m_pathSegList(pathSegList)
+{
+ ASSERT(m_pathSegList);
+ m_itemCurrent = 0;
+ m_itemEnd = m_pathSegList->numberOfItems();
+}
+
+SVGPathSegListSource::~SVGPathSegListSource()
+{
+}
+
+bool SVGPathSegListSource::hasMoreData() const
+{
+ return m_itemCurrent < m_itemEnd;
+}
+
+bool SVGPathSegListSource::parseSVGSegmentType(SVGPathSegType& pathSegType)
+{
+ ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
+ m_segment = m_pathSegList->getItem(m_itemCurrent, ec);
+ if (ec)
+ return false;
+ pathSegType = static_cast<SVGPathSegType>(m_segment->pathSegType());
+ ++m_itemCurrent;
+ return true;
+}
+
+SVGPathSegType SVGPathSegListSource::nextCommand(SVGPathSegType)
+{
+ ASSERT(m_pathSegList);
+ ExceptionCode ec = 0;
+ m_segment = m_pathSegList->getItem(m_itemCurrent, ec);
+ if (ec)
+ return PathSegUnknown;
+ SVGPathSegType pathSegType = static_cast<SVGPathSegType>(m_segment->pathSegType());
+ ++m_itemCurrent;
+ return pathSegType;
+}
+
+bool SVGPathSegListSource::parseMoveToSegment(FloatPoint& targetPoint)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegMoveToAbs || m_segment->pathSegType() == PathSegMoveToRel);
+ SVGPathSegSingleCoord* moveTo = static_cast<SVGPathSegSingleCoord*>(m_segment.get());
+ targetPoint = FloatPoint(moveTo->x(), moveTo->y());
+ return true;
+}
+
+bool SVGPathSegListSource::parseLineToSegment(FloatPoint& targetPoint)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegLineToAbs || m_segment->pathSegType() == PathSegLineToRel);
+ SVGPathSegSingleCoord* lineTo = static_cast<SVGPathSegSingleCoord*>(m_segment.get());
+ targetPoint = FloatPoint(lineTo->x(), lineTo->y());
+ return true;
+}
+
+bool SVGPathSegListSource::parseLineToHorizontalSegment(float& x)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegLineToHorizontalAbs || m_segment->pathSegType() == PathSegLineToHorizontalRel);
+ SVGPathSegLinetoHorizontal* horizontal = static_cast<SVGPathSegLinetoHorizontal*>(m_segment.get());
+ x = horizontal->x();
+ return true;
+}
+
+bool SVGPathSegListSource::parseLineToVerticalSegment(float& y)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegLineToVerticalAbs || m_segment->pathSegType() == PathSegLineToVerticalRel);
+ SVGPathSegLinetoVertical* vertical = static_cast<SVGPathSegLinetoVertical*>(m_segment.get());
+ y = vertical->y();
+ return true;
+}
+
+bool SVGPathSegListSource::parseCurveToCubicSegment(FloatPoint& point1, FloatPoint& point2, FloatPoint& targetPoint)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegCurveToCubicAbs || m_segment->pathSegType() == PathSegCurveToCubicRel);
+ SVGPathSegCurvetoCubic* cubic = static_cast<SVGPathSegCurvetoCubic*>(m_segment.get());
+ point1 = FloatPoint(cubic->x1(), cubic->y1());
+ point2 = FloatPoint(cubic->x2(), cubic->y2());
+ targetPoint = FloatPoint(cubic->x(), cubic->y());
+ return true;
+}
+
+bool SVGPathSegListSource::parseCurveToCubicSmoothSegment(FloatPoint& point2, FloatPoint& targetPoint)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegCurveToCubicSmoothAbs || m_segment->pathSegType() == PathSegCurveToCubicSmoothRel);
+ SVGPathSegCurvetoCubicSmooth* cubicSmooth = static_cast<SVGPathSegCurvetoCubicSmooth*>(m_segment.get());
+ point2 = FloatPoint(cubicSmooth->x2(), cubicSmooth->y2());
+ targetPoint = FloatPoint(cubicSmooth->x(), cubicSmooth->y());
+ return true;
+}
+
+bool SVGPathSegListSource::parseCurveToQuadraticSegment(FloatPoint& point1, FloatPoint& targetPoint)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegCurveToQuadraticAbs || m_segment->pathSegType() == PathSegCurveToQuadraticRel);
+ SVGPathSegCurvetoQuadratic* quadratic = static_cast<SVGPathSegCurvetoQuadratic*>(m_segment.get());
+ point1 = FloatPoint(quadratic->x1(), quadratic->y1());
+ targetPoint = FloatPoint(quadratic->x(), quadratic->y());
+ return true;
+}
+
+bool SVGPathSegListSource::parseCurveToQuadraticSmoothSegment(FloatPoint& targetPoint)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegCurveToQuadraticSmoothAbs || m_segment->pathSegType() == PathSegCurveToQuadraticSmoothRel);
+ SVGPathSegSingleCoord* quadraticSmooth = static_cast<SVGPathSegSingleCoord*>(m_segment.get());
+ targetPoint = FloatPoint(quadraticSmooth->x(), quadraticSmooth->y());
+ return true;
+}
+
+bool SVGPathSegListSource::parseArcToSegment(float& rx, float& ry, float& angle, bool& largeArc, bool& sweep, FloatPoint& targetPoint)
+{
+ ASSERT(m_segment);
+ ASSERT(m_segment->pathSegType() == PathSegArcAbs || m_segment->pathSegType() == PathSegArcRel);
+ SVGPathSegArc* arcTo = static_cast<SVGPathSegArc*>(m_segment.get());
+ rx = arcTo->r1();
+ ry = arcTo->r2();
+ angle = arcTo->angle();
+ largeArc = arcTo->largeArcFlag();
+ sweep = arcTo->sweepFlag();
+ targetPoint = FloatPoint(arcTo->x(), arcTo->y());
+ return true;
+}
+
+}
+
+#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGPathSegListSource.h b/WebCore/svg/SVGPathSegListSource.h
new file mode 100644
index 0000000..fd89e3e
--- /dev/null
+++ b/WebCore/svg/SVGPathSegListSource.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGPathSegListSource_h
+#define SVGPathSegListSource_h
+
+#if ENABLE(SVG)
+#include "FloatPoint.h"
+#include "SVGPathSeg.h"
+#include "SVGPathSegList.h"
+#include "SVGPathSource.h"
+#include <wtf/PassOwnPtr.h>
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+
+class SVGPathSegListSource : public SVGPathSource {
+public:
+ static PassOwnPtr<SVGPathSegListSource> create(SVGPathSegList* pathSegList)
+ {
+ return adoptPtr(new SVGPathSegListSource(pathSegList));
+ }
+
+ virtual ~SVGPathSegListSource();
+
+ virtual bool hasMoreData() const;
+ virtual bool moveToNextToken() { return true; }
+ virtual bool parseSVGSegmentType(SVGPathSegType&);
+ virtual SVGPathSegType nextCommand(SVGPathSegType);
+
+ virtual bool parseMoveToSegment(FloatPoint&);
+ virtual bool parseLineToSegment(FloatPoint&);
+ virtual bool parseLineToHorizontalSegment(float&);
+ virtual bool parseLineToVerticalSegment(float&);
+ virtual bool parseCurveToCubicSegment(FloatPoint&, FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToCubicSmoothSegment(FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToQuadraticSegment(FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToQuadraticSmoothSegment(FloatPoint&);
+ virtual bool parseArcToSegment(float&, float&, float&, bool&, bool&, FloatPoint&);
+
+private:
+ SVGPathSegListSource(SVGPathSegList*);
+
+ SVGPathSegList* m_pathSegList;
+ RefPtr<SVGPathSeg> m_segment;
+ int m_itemCurrent;
+ int m_itemEnd;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGPathSegListSource_h
diff --git a/WebCore/svg/SVGPathSegMoveto.cpp b/WebCore/svg/SVGPathSegMoveto.cpp
index 1144779..f87077f 100644
--- a/WebCore/svg/SVGPathSegMoveto.cpp
+++ b/WebCore/svg/SVGPathSegMoveto.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPathSegMoveto.h b/WebCore/svg/SVGPathSegMoveto.h
index 5d30633..194b1a6 100644
--- a/WebCore/svg/SVGPathSegMoveto.h
+++ b/WebCore/svg/SVGPathSegMoveto.h
@@ -1,28 +1,29 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPathSegMoveto_h
#define SVGPathSegMoveto_h
#if ENABLE(SVG)
+#include "PlatformString.h"
#include "SVGPathSeg.h"
namespace WebCore {
diff --git a/WebCore/svg/SVGPathSegMovetoAbs.idl b/WebCore/svg/SVGPathSegMovetoAbs.idl
index 13ffde4..e10163e 100644
--- a/WebCore/svg/SVGPathSegMovetoAbs.idl
+++ b/WebCore/svg/SVGPathSegMovetoAbs.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSegMovetoRel.idl b/WebCore/svg/SVGPathSegMovetoRel.idl
index 3393d9e..78ba078 100644
--- a/WebCore/svg/SVGPathSegMovetoRel.idl
+++ b/WebCore/svg/SVGPathSegMovetoRel.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPathSource.h b/WebCore/svg/SVGPathSource.h
new file mode 100644
index 0000000..6d7ec5f
--- /dev/null
+++ b/WebCore/svg/SVGPathSource.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGPathSource_h
+#define SVGPathSource_h
+
+#if ENABLE(SVG)
+#include "SVGPathSeg.h"
+
+namespace WebCore {
+
+class SVGPathSource : public Noncopyable {
+public:
+ virtual ~SVGPathSource() { }
+
+ virtual bool hasMoreData() const = 0;
+ virtual bool moveToNextToken() = 0;
+ virtual bool parseSVGSegmentType(SVGPathSegType&) = 0;
+ virtual SVGPathSegType nextCommand(SVGPathSegType previousCommand) = 0;
+
+ virtual bool parseMoveToSegment(FloatPoint&) = 0;
+ virtual bool parseLineToSegment(FloatPoint&) = 0;
+ virtual bool parseLineToHorizontalSegment(float&) = 0;
+ virtual bool parseLineToVerticalSegment(float&) = 0;
+ virtual bool parseCurveToCubicSegment(FloatPoint&, FloatPoint&, FloatPoint&) = 0;
+ virtual bool parseCurveToCubicSmoothSegment(FloatPoint&, FloatPoint&) = 0;
+ virtual bool parseCurveToQuadraticSegment(FloatPoint&, FloatPoint&) = 0;
+ virtual bool parseCurveToQuadraticSmoothSegment(FloatPoint&) = 0;
+ virtual bool parseArcToSegment(float&, float&, float&, bool&, bool&, FloatPoint&) = 0;
+
+public:
+ SVGPathSource() { }
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGPathSource_h
diff --git a/WebCore/svg/SVGPathStringBuilder.cpp b/WebCore/svg/SVGPathStringBuilder.cpp
new file mode 100644
index 0000000..0a166ad
--- /dev/null
+++ b/WebCore/svg/SVGPathStringBuilder.cpp
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathStringBuilder.h"
+
+namespace WebCore {
+
+SVGPathStringBuilder::SVGPathStringBuilder()
+{
+}
+
+void SVGPathStringBuilder::moveTo(const FloatPoint& targetPoint, bool, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("M %.6lg %.6lg", targetPoint.x(), targetPoint.y()));
+ else
+ m_stringBuilder.append(String::format("m %.6lg %.6lg", targetPoint.x(), targetPoint.y()));
+}
+
+void SVGPathStringBuilder::lineTo(const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("L %.6lg %.6lg", targetPoint.x(), targetPoint.y()));
+ else
+ m_stringBuilder.append(String::format("l %.6lg %.6lg", targetPoint.x(), targetPoint.y()));
+}
+
+void SVGPathStringBuilder::lineToHorizontal(float x, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("H %.6lg", x));
+ else
+ m_stringBuilder.append(String::format("h %.6lg", x));
+}
+
+void SVGPathStringBuilder::lineToVertical(float y, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("V %.6lg", y));
+ else
+ m_stringBuilder.append(String::format("v %.6lg", y));
+}
+
+void SVGPathStringBuilder::curveToCubic(const FloatPoint& point1, const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("C %.6lg %.6lg %.6lg %.6lg %.6lg %.6lg", point1.x(), point1.y(), point2.x(), point2.y(), targetPoint.x(), targetPoint.y()));
+ else
+ m_stringBuilder.append(String::format("c %.6lg %.6lg %.6lg %.6lg %.6lg %.6lg", point1.x(), point1.y(), point2.x(), point2.y(), targetPoint.x(), targetPoint.y()));
+}
+
+void SVGPathStringBuilder::curveToCubicSmooth(const FloatPoint& point2, const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("S %.6lg %.6lg %.6lg %.6lg", point2.x(), point2.y(), targetPoint.x(), targetPoint.y()));
+ else
+ m_stringBuilder.append(String::format("s %.6lg %.6lg %.6lg %.6lg", point2.x(), point2.y(), targetPoint.x(), targetPoint.y()));
+}
+
+void SVGPathStringBuilder::curveToQuadratic(const FloatPoint& point1, const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("Q %.6lg %.6lg %.6lg %.6lg", point1.x(), point1.y(), targetPoint.x(), targetPoint.y()));
+ else
+ m_stringBuilder.append(String::format("q %.6lg %.6lg %.6lg %.6lg", point1.x(), point1.y(), targetPoint.x(), targetPoint.y()));
+}
+
+void SVGPathStringBuilder::curveToQuadraticSmooth(const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("T %.6lg %.6lg", targetPoint.x(), targetPoint.y()));
+ else
+ m_stringBuilder.append(String::format("t %.6lg %.6lg", targetPoint.x(), targetPoint.y()));
+}
+
+void SVGPathStringBuilder::arcTo(float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, const FloatPoint& targetPoint, PathCoordinateMode mode)
+{
+ if (mode == AbsoluteCoordinates)
+ m_stringBuilder.append(String::format("A %.6lg %.6lg %.6lg %d %d %.6lg %.6lg", r1, r2, angle, largeArcFlag, sweepFlag, targetPoint.x(), targetPoint.y()));
+ else
+ m_stringBuilder.append(String::format("a %.6lg %.6lg %.6lg %d %d %.6lg %.6lg", r1, r2, angle, largeArcFlag, sweepFlag, targetPoint.x(), targetPoint.y()));
+}
+
+void SVGPathStringBuilder::closePath()
+{
+ m_stringBuilder.append("Z");
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGPathStringBuilder.h b/WebCore/svg/SVGPathStringBuilder.h
new file mode 100644
index 0000000..f25f791
--- /dev/null
+++ b/WebCore/svg/SVGPathStringBuilder.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGPathStringBuilder_h
+#define SVGPathStringBuilder_h
+
+#if ENABLE(SVG)
+#include "FloatPoint.h"
+#include "SVGPathConsumer.h"
+#include "StringBuilder.h"
+
+namespace WebCore {
+
+class SVGPathStringBuilder : public SVGPathConsumer {
+public:
+ SVGPathStringBuilder();
+
+ virtual void cleanup() { m_stringBuilder.clear(); }
+ String result() { return m_stringBuilder.toString(ConcatAddingSpacesBetweenIndividualStrings); }
+
+private:
+ // Used in UnalteredParsing/NormalizedParsing modes.
+ virtual void moveTo(const FloatPoint&, bool closed, PathCoordinateMode);
+ virtual void lineTo(const FloatPoint&, PathCoordinateMode);
+ virtual void curveToCubic(const FloatPoint&, const FloatPoint&, const FloatPoint&, PathCoordinateMode);
+ virtual void closePath();
+
+private:
+ // Only used in UnalteredParsing mode.
+ virtual void lineToHorizontal(float, PathCoordinateMode);
+ virtual void lineToVertical(float, PathCoordinateMode);
+ virtual void curveToCubicSmooth(const FloatPoint&, const FloatPoint&, PathCoordinateMode);
+ virtual void curveToQuadratic(const FloatPoint&, const FloatPoint&, PathCoordinateMode);
+ virtual void curveToQuadraticSmooth(const FloatPoint&, PathCoordinateMode);
+ virtual void arcTo(float, float, float, bool largeArcFlag, bool sweepFlag, const FloatPoint&, PathCoordinateMode);
+
+ StringBuilder m_stringBuilder;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGPathStringBuilder_h
diff --git a/WebCore/svg/SVGPathStringSource.cpp b/WebCore/svg/SVGPathStringSource.cpp
new file mode 100644
index 0000000..0efbfd0
--- /dev/null
+++ b/WebCore/svg/SVGPathStringSource.cpp
@@ -0,0 +1,247 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#if ENABLE(SVG)
+#include "SVGPathStringSource.h"
+
+#include "SVGParserUtilities.h"
+
+namespace WebCore {
+
+SVGPathStringSource::SVGPathStringSource(const String& string)
+ : m_string(string)
+ , m_current(string.characters())
+ , m_end(m_current + string.length())
+{
+ ASSERT(!string.isEmpty());
+}
+
+SVGPathStringSource::~SVGPathStringSource()
+{
+}
+
+bool SVGPathStringSource::hasMoreData() const
+{
+ return m_current < m_end;
+}
+
+bool SVGPathStringSource::moveToNextToken()
+{
+ return skipOptionalSpaces(m_current, m_end);
+}
+
+bool SVGPathStringSource::parseSVGSegmentType(SVGPathSegType& pathSegType)
+{
+ switch (*(m_current++)) {
+ case 'Z':
+ case 'z':
+ pathSegType = PathSegClosePath;
+ break;
+ case 'M':
+ pathSegType = PathSegMoveToAbs;
+ break;
+ case 'm':
+ pathSegType = PathSegMoveToRel;
+ break;
+ case 'L':
+ pathSegType = PathSegLineToAbs;
+ break;
+ case 'l':
+ pathSegType = PathSegLineToRel;
+ break;
+ case 'C':
+ pathSegType = PathSegCurveToCubicAbs;
+ break;
+ case 'c':
+ pathSegType = PathSegCurveToCubicRel;
+ break;
+ case 'Q':
+ pathSegType = PathSegCurveToQuadraticAbs;
+ break;
+ case 'q':
+ pathSegType = PathSegCurveToQuadraticRel;
+ break;
+ case 'A':
+ pathSegType = PathSegArcAbs;
+ break;
+ case 'a':
+ pathSegType = PathSegArcRel;
+ break;
+ case 'H':
+ pathSegType = PathSegLineToHorizontalAbs;
+ break;
+ case 'h':
+ pathSegType = PathSegLineToHorizontalRel;
+ break;
+ case 'V':
+ pathSegType = PathSegLineToVerticalAbs;
+ break;
+ case 'v':
+ pathSegType = PathSegLineToVerticalRel;
+ break;
+ case 'S':
+ pathSegType = PathSegCurveToCubicSmoothAbs;
+ break;
+ case 's':
+ pathSegType = PathSegCurveToCubicSmoothRel;
+ break;
+ case 'T':
+ pathSegType = PathSegCurveToQuadraticSmoothAbs;
+ break;
+ case 't':
+ pathSegType = PathSegCurveToQuadraticSmoothRel;
+ break;
+ default:
+ pathSegType = PathSegUnknown;
+ }
+ return true;
+}
+
+SVGPathSegType SVGPathStringSource::nextCommand(SVGPathSegType previousCommand)
+{
+ // Check for remaining coordinates in the current command.
+ if ((*m_current == '+' || *m_current == '-' || *m_current == '.' || (*m_current >= '0' && *m_current <= '9'))
+ && previousCommand != PathSegClosePath) {
+ if (previousCommand == PathSegMoveToAbs)
+ return PathSegLineToAbs;
+ if (previousCommand == PathSegMoveToRel)
+ return PathSegLineToRel;
+ return previousCommand;
+ }
+ SVGPathSegType nextCommand;
+ parseSVGSegmentType(nextCommand);
+ return nextCommand;
+}
+
+bool SVGPathStringSource::parseMoveToSegment(FloatPoint& targetPoint)
+{
+ float toX;
+ float toY;
+ if (!parseNumber(m_current, m_end, toX) || !parseNumber(m_current, m_end, toY))
+ return false;
+ targetPoint = FloatPoint(toX, toY);
+ return true;
+}
+
+bool SVGPathStringSource::parseLineToSegment(FloatPoint& targetPoint)
+{
+ float toX;
+ float toY;
+ if (!parseNumber(m_current, m_end, toX) || !parseNumber(m_current, m_end, toY))
+ return false;
+ targetPoint = FloatPoint(toX, toY);
+ return true;
+}
+
+bool SVGPathStringSource::parseLineToHorizontalSegment(float& x)
+{
+ return parseNumber(m_current, m_end, x);
+}
+
+bool SVGPathStringSource::parseLineToVerticalSegment(float& y)
+{
+ return parseNumber(m_current, m_end, y);
+}
+
+bool SVGPathStringSource::parseCurveToCubicSegment(FloatPoint& point1, FloatPoint& point2, FloatPoint& targetPoint)
+{
+ float x1;
+ float y1;
+ float x2;
+ float y2;
+ float toX;
+ float toY;
+ if (!parseNumber(m_current, m_end, x1)
+ || !parseNumber(m_current, m_end, y1)
+ || !parseNumber(m_current, m_end, x2)
+ || !parseNumber(m_current, m_end, y2)
+ || !parseNumber(m_current, m_end, toX)
+ || !parseNumber(m_current, m_end, toY))
+ return false;
+ point1 = FloatPoint(x1, y1);
+ point2 = FloatPoint(x2, y2);
+ targetPoint = FloatPoint(toX, toY);
+ return true;
+}
+
+bool SVGPathStringSource::parseCurveToCubicSmoothSegment(FloatPoint& point1, FloatPoint& targetPoint)
+{
+ float x1;
+ float y1;
+ float toX;
+ float toY;
+ if (!parseNumber(m_current, m_end, x1)
+ || !parseNumber(m_current, m_end, y1)
+ || !parseNumber(m_current, m_end, toX)
+ || !parseNumber(m_current, m_end, toY))
+ return false;
+ point1 = FloatPoint(x1, y1);
+ targetPoint = FloatPoint(toX, toY);
+ return true;
+}
+
+bool SVGPathStringSource::parseCurveToQuadraticSegment(FloatPoint& point2, FloatPoint& targetPoint)
+{
+ float x2;
+ float y2;
+ float toX;
+ float toY;
+ if (!parseNumber(m_current, m_end, x2)
+ || !parseNumber(m_current, m_end, y2)
+ || !parseNumber(m_current, m_end, toX)
+ || !parseNumber(m_current, m_end, toY))
+ return false;
+ point2 = FloatPoint(x2, y2);
+ targetPoint = FloatPoint(toX, toY);
+ return true;
+}
+
+bool SVGPathStringSource::parseCurveToQuadraticSmoothSegment(FloatPoint& targetPoint)
+{
+ float toX;
+ float toY;
+ if (!parseNumber(m_current, m_end, toX)
+ || !parseNumber(m_current, m_end, toY))
+ return false;
+ targetPoint = FloatPoint(toX, toY);
+ return true;
+}
+
+bool SVGPathStringSource::parseArcToSegment(float& rx, float& ry, float& angle, bool& largeArc, bool& sweep, FloatPoint& targetPoint)
+{
+ float toX;
+ float toY;
+ if (!parseNumber(m_current, m_end, rx)
+ || !parseNumber(m_current, m_end, ry)
+ || !parseNumber(m_current, m_end, angle)
+ || !parseArcFlag(m_current, m_end, largeArc)
+ || !parseArcFlag(m_current, m_end, sweep)
+ || !parseNumber(m_current, m_end, toX)
+ || !parseNumber(m_current, m_end, toY))
+ return false;
+ targetPoint = FloatPoint(toX, toY);
+ return true;
+}
+
+
+}
+
+#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGPathStringSource.h b/WebCore/svg/SVGPathStringSource.h
new file mode 100644
index 0000000..d0266f4
--- /dev/null
+++ b/WebCore/svg/SVGPathStringSource.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SVGPathStringSource_h
+#define SVGPathStringSource_h
+
+#if ENABLE(SVG)
+#include "FloatPoint.h"
+#include "PlatformString.h"
+#include "SVGPathSource.h"
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+class SVGPathStringSource : public SVGPathSource {
+public:
+ static PassOwnPtr<SVGPathStringSource> create(const String& string)
+ {
+ return adoptPtr(new SVGPathStringSource(string));
+ }
+
+ virtual ~SVGPathStringSource();
+
+ virtual bool hasMoreData() const;
+ virtual bool moveToNextToken();
+ virtual bool parseSVGSegmentType(SVGPathSegType&);
+ virtual SVGPathSegType nextCommand(SVGPathSegType previousCommand);
+
+ virtual bool parseMoveToSegment(FloatPoint&);
+ virtual bool parseLineToSegment(FloatPoint&);
+ virtual bool parseLineToHorizontalSegment(float&);
+ virtual bool parseLineToVerticalSegment(float&);
+ virtual bool parseCurveToCubicSegment(FloatPoint&, FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToCubicSmoothSegment(FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToQuadraticSegment(FloatPoint&, FloatPoint&);
+ virtual bool parseCurveToQuadraticSmoothSegment(FloatPoint&);
+ virtual bool parseArcToSegment(float&, float&, float&, bool&, bool&, FloatPoint&);
+
+private:
+ SVGPathStringSource(const String&);
+ String m_string;
+
+ const UChar* m_current;
+ const UChar* m_end;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SVG)
+#endif // SVGPathStringSource_h
diff --git a/WebCore/svg/SVGPatternElement.cpp b/WebCore/svg/SVGPatternElement.cpp
index ee42118..94d3572 100644
--- a/WebCore/svg/SVGPatternElement.cpp
+++ b/WebCore/svg/SVGPatternElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPatternElement.h b/WebCore/svg/SVGPatternElement.h
index 2a8a7fe..32ec808 100644
--- a/WebCore/svg/SVGPatternElement.h
+++ b/WebCore/svg/SVGPatternElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPatternElement_h
#define SVGPatternElement_h
diff --git a/WebCore/svg/SVGPatternElement.idl b/WebCore/svg/SVGPatternElement.idl
index 8b380fb..59d6f8c 100644
--- a/WebCore/svg/SVGPatternElement.idl
+++ b/WebCore/svg/SVGPatternElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPoint.idl b/WebCore/svg/SVGPoint.idl
index 1bf96f8..e93baf1 100644
--- a/WebCore/svg/SVGPoint.idl
+++ b/WebCore/svg/SVGPoint.idl
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGPointList.cpp b/WebCore/svg/SVGPointList.cpp
index ba4c4ee..3be16ea 100644
--- a/WebCore/svg/SVGPointList.cpp
+++ b/WebCore/svg/SVGPointList.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPointList.h b/WebCore/svg/SVGPointList.h
index ceb2f38..853c7b1 100644
--- a/WebCore/svg/SVGPointList.h
+++ b/WebCore/svg/SVGPointList.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPointList_h
#define SVGPointList_h
@@ -24,12 +24,11 @@
#if ENABLE(SVG)
#include "SVGList.h"
#include "FloatPoint.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
- class String;
-
class SVGPointList : public SVGPODList<FloatPoint> {
public:
static PassRefPtr<SVGPointList> create(const QualifiedName& attributeName) { return adoptRef(new SVGPointList(attributeName)); }
diff --git a/WebCore/svg/SVGPointList.idl b/WebCore/svg/SVGPointList.idl
index 24b1042..647ae69 100644
--- a/WebCore/svg/SVGPointList.idl
+++ b/WebCore/svg/SVGPointList.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPolyElement.cpp b/WebCore/svg/SVGPolyElement.cpp
index 2996dd7..8475309 100644
--- a/WebCore/svg/SVGPolyElement.cpp
+++ b/WebCore/svg/SVGPolyElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPolyElement.h b/WebCore/svg/SVGPolyElement.h
index b2f9a3e..bbcdb67 100644
--- a/WebCore/svg/SVGPolyElement.h
+++ b/WebCore/svg/SVGPolyElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPolyElement_h
#define SVGPolyElement_h
diff --git a/WebCore/svg/SVGPolygonElement.cpp b/WebCore/svg/SVGPolygonElement.cpp
index a4a62af..c7ab09b 100644
--- a/WebCore/svg/SVGPolygonElement.cpp
+++ b/WebCore/svg/SVGPolygonElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPolygonElement.h b/WebCore/svg/SVGPolygonElement.h
index fa6eef6..76b11a2 100644
--- a/WebCore/svg/SVGPolygonElement.h
+++ b/WebCore/svg/SVGPolygonElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPolygonElement_h
#define SVGPolygonElement_h
diff --git a/WebCore/svg/SVGPolygonElement.idl b/WebCore/svg/SVGPolygonElement.idl
index 1bb7806..e58ec38 100644
--- a/WebCore/svg/SVGPolygonElement.idl
+++ b/WebCore/svg/SVGPolygonElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPolylineElement.cpp b/WebCore/svg/SVGPolylineElement.cpp
index 899c072..a1dfcd6 100644
--- a/WebCore/svg/SVGPolylineElement.cpp
+++ b/WebCore/svg/SVGPolylineElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPolylineElement.h b/WebCore/svg/SVGPolylineElement.h
index e070c9f..fbdaa81 100644
--- a/WebCore/svg/SVGPolylineElement.h
+++ b/WebCore/svg/SVGPolylineElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPolylineElement_h
#define SVGPolylineElement_h
diff --git a/WebCore/svg/SVGPolylineElement.idl b/WebCore/svg/SVGPolylineElement.idl
index a77ef6d..e3f1cd7 100644
--- a/WebCore/svg/SVGPolylineElement.idl
+++ b/WebCore/svg/SVGPolylineElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGPreserveAspectRatio.cpp b/WebCore/svg/SVGPreserveAspectRatio.cpp
index 6853a14..00a7a65 100644
--- a/WebCore/svg/SVGPreserveAspectRatio.cpp
+++ b/WebCore/svg/SVGPreserveAspectRatio.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- 2010 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2010 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGPreserveAspectRatio.h b/WebCore/svg/SVGPreserveAspectRatio.h
index 8ee8d07..9ed27fe 100644
--- a/WebCore/svg/SVGPreserveAspectRatio.h
+++ b/WebCore/svg/SVGPreserveAspectRatio.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPreserveAspectRatio_h
#define SVGPreserveAspectRatio_h
@@ -25,10 +25,10 @@
#include "FloatRect.h"
#include "PlatformString.h"
#include "SVGNames.h"
+#include <wtf/Forward.h>
namespace WebCore {
- class String;
class AffineTransform;
class SVGPreserveAspectRatio {
diff --git a/WebCore/svg/SVGPreserveAspectRatio.idl b/WebCore/svg/SVGPreserveAspectRatio.idl
index b21daba..7537e9b 100644
--- a/WebCore/svg/SVGPreserveAspectRatio.idl
+++ b/WebCore/svg/SVGPreserveAspectRatio.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGRadialGradientElement.cpp b/WebCore/svg/SVGRadialGradientElement.cpp
index a970817..4448c67 100644
--- a/WebCore/svg/SVGRadialGradientElement.cpp
+++ b/WebCore/svg/SVGRadialGradientElement.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- 2008 Eric Seidel <eric@webkit.org>
- 2008 Dirk Schulze <krit@webkit.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2008 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGRadialGradientElement.h b/WebCore/svg/SVGRadialGradientElement.h
index 8debc9c..2c3db56 100644
--- a/WebCore/svg/SVGRadialGradientElement.h
+++ b/WebCore/svg/SVGRadialGradientElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGRadialGradientElement_h
#define SVGRadialGradientElement_h
diff --git a/WebCore/svg/SVGRadialGradientElement.idl b/WebCore/svg/SVGRadialGradientElement.idl
index 032dda5..a10aa57 100644
--- a/WebCore/svg/SVGRadialGradientElement.idl
+++ b/WebCore/svg/SVGRadialGradientElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGRect.idl b/WebCore/svg/SVGRect.idl
index 0278030..2f8799c 100644
--- a/WebCore/svg/SVGRect.idl
+++ b/WebCore/svg/SVGRect.idl
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGRectElement.cpp b/WebCore/svg/SVGRectElement.cpp
index a848246..d5451e2 100644
--- a/WebCore/svg/SVGRectElement.cpp
+++ b/WebCore/svg/SVGRectElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGRectElement.h b/WebCore/svg/SVGRectElement.h
index 4aafc13..bc90919 100644
--- a/WebCore/svg/SVGRectElement.h
+++ b/WebCore/svg/SVGRectElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGRectElement_h
#define SVGRectElement_h
diff --git a/WebCore/svg/SVGRectElement.idl b/WebCore/svg/SVGRectElement.idl
index 540ceb3..c7f8c7c 100644
--- a/WebCore/svg/SVGRectElement.idl
+++ b/WebCore/svg/SVGRectElement.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGRenderingIntent.h b/WebCore/svg/SVGRenderingIntent.h
index f4bfa6a..230258a 100644
--- a/WebCore/svg/SVGRenderingIntent.h
+++ b/WebCore/svg/SVGRenderingIntent.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGRenderingIntent_h
#define SVGRenderingIntent_h
diff --git a/WebCore/svg/SVGRenderingIntent.idl b/WebCore/svg/SVGRenderingIntent.idl
index ff2f6ce..47eaccc 100644
--- a/WebCore/svg/SVGRenderingIntent.idl
+++ b/WebCore/svg/SVGRenderingIntent.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGSVGElement.cpp b/WebCore/svg/SVGSVGElement.cpp
index c513b98..5193e2a 100644
--- a/WebCore/svg/SVGSVGElement.cpp
+++ b/WebCore/svg/SVGSVGElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org>
- 2007 Apple Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGSVGElement.h b/WebCore/svg/SVGSVGElement.h
index 099f9a1..b7c9b16 100644
--- a/WebCore/svg/SVGSVGElement.h
+++ b/WebCore/svg/SVGSVGElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007, 2010 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007, 2010 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGSVGElement_h
#define SVGSVGElement_h
diff --git a/WebCore/svg/SVGSVGElement.idl b/WebCore/svg/SVGSVGElement.idl
index 0d9c344..bcf9236 100644
--- a/WebCore/svg/SVGSVGElement.idl
+++ b/WebCore/svg/SVGSVGElement.idl
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005, 2010 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2010 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGScriptElement.cpp b/WebCore/svg/SVGScriptElement.cpp
index ea4ac1f..4109aad 100644
--- a/WebCore/svg/SVGScriptElement.cpp
+++ b/WebCore/svg/SVGScriptElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGScriptElement.h b/WebCore/svg/SVGScriptElement.h
index 2d9cae8..8f2a393 100644
--- a/WebCore/svg/SVGScriptElement.h
+++ b/WebCore/svg/SVGScriptElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGScriptElement_h
#define SVGScriptElement_h
diff --git a/WebCore/svg/SVGScriptElement.idl b/WebCore/svg/SVGScriptElement.idl
index da2e034..2513238 100644
--- a/WebCore/svg/SVGScriptElement.idl
+++ b/WebCore/svg/SVGScriptElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGSetElement.cpp b/WebCore/svg/SVGSetElement.cpp
index a6e81b3..eceed12 100644
--- a/WebCore/svg/SVGSetElement.cpp
+++ b/WebCore/svg/SVGSetElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG_ANIMATION)
diff --git a/WebCore/svg/SVGSetElement.h b/WebCore/svg/SVGSetElement.h
index 7d0eced..975ad27 100644
--- a/WebCore/svg/SVGSetElement.h
+++ b/WebCore/svg/SVGSetElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGSetElement_h
#define SVGSetElement_h
diff --git a/WebCore/svg/SVGSetElement.idl b/WebCore/svg/SVGSetElement.idl
index 2ee36f1..6e806e7 100644
--- a/WebCore/svg/SVGSetElement.idl
+++ b/WebCore/svg/SVGSetElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGStopElement.cpp b/WebCore/svg/SVGStopElement.cpp
index 36d4338..317774a 100644
--- a/WebCore/svg/SVGStopElement.cpp
+++ b/WebCore/svg/SVGStopElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGStopElement.h b/WebCore/svg/SVGStopElement.h
index 96c3294..1fb60b5 100644
--- a/WebCore/svg/SVGStopElement.h
+++ b/WebCore/svg/SVGStopElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGStopElement_h
#define SVGStopElement_h
diff --git a/WebCore/svg/SVGStopElement.idl b/WebCore/svg/SVGStopElement.idl
index 2a16128..248f519 100644
--- a/WebCore/svg/SVGStopElement.idl
+++ b/WebCore/svg/SVGStopElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGStringList.cpp b/WebCore/svg/SVGStringList.cpp
index 70bfad8..806c70a 100644
--- a/WebCore/svg/SVGStringList.cpp
+++ b/WebCore/svg/SVGStringList.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGStringList.h b/WebCore/svg/SVGStringList.h
index 2fca6bc..bc234ff 100644
--- a/WebCore/svg/SVGStringList.h
+++ b/WebCore/svg/SVGStringList.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGStringList_h
#define SVGStringList_h
diff --git a/WebCore/svg/SVGStringList.idl b/WebCore/svg/SVGStringList.idl
index 2af03ad..12eed8d 100644
--- a/WebCore/svg/SVGStringList.idl
+++ b/WebCore/svg/SVGStringList.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGStylable.cpp b/WebCore/svg/SVGStylable.cpp
index c72843a..510467d 100644
--- a/WebCore/svg/SVGStylable.cpp
+++ b/WebCore/svg/SVGStylable.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGStylable.h b/WebCore/svg/SVGStylable.h
index 7e13d35..37148f9 100644
--- a/WebCore/svg/SVGStylable.h
+++ b/WebCore/svg/SVGStylable.h
@@ -1,34 +1,34 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGStylable_h
#define SVGStylable_h
#if ENABLE(SVG)
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
class CSSValue;
class CSSStyleDeclaration;
- class String;
class QualifiedName;
class SVGStylable {
diff --git a/WebCore/svg/SVGStylable.idl b/WebCore/svg/SVGStylable.idl
index c997476..0df1424 100644
--- a/WebCore/svg/SVGStylable.idl
+++ b/WebCore/svg/SVGStylable.idl
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
* Copyright (C) 2007 Rob Buis <rwlbuis@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -12,10 +12,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGStyleElement.cpp b/WebCore/svg/SVGStyleElement.cpp
index 6050e84..bb50e67 100644
--- a/WebCore/svg/SVGStyleElement.cpp
+++ b/WebCore/svg/SVGStyleElement.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Apple Computer, Inc.
- Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGStyleElement.h b/WebCore/svg/SVGStyleElement.h
index fe11f9c..6385039 100644
--- a/WebCore/svg/SVGStyleElement.h
+++ b/WebCore/svg/SVGStyleElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGStyleElement_h
#define SVGStyleElement_h
diff --git a/WebCore/svg/SVGStyleElement.idl b/WebCore/svg/SVGStyleElement.idl
index a93cfa6..515e042 100644
--- a/WebCore/svg/SVGStyleElement.idl
+++ b/WebCore/svg/SVGStyleElement.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGStyledElement.cpp b/WebCore/svg/SVGStyledElement.cpp
index 09447c5..4b073a0 100644
--- a/WebCore/svg/SVGStyledElement.cpp
+++ b/WebCore/svg/SVGStyledElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGStyledElement.h b/WebCore/svg/SVGStyledElement.h
index 79ee0d5..8431458 100644
--- a/WebCore/svg/SVGStyledElement.h
+++ b/WebCore/svg/SVGStyledElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGStyledElement_h
#define SVGStyledElement_h
diff --git a/WebCore/svg/SVGStyledLocatableElement.cpp b/WebCore/svg/SVGStyledLocatableElement.cpp
index 7a8a2f3..3d87da4 100644
--- a/WebCore/svg/SVGStyledLocatableElement.cpp
+++ b/WebCore/svg/SVGStyledLocatableElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGStyledLocatableElement.h b/WebCore/svg/SVGStyledLocatableElement.h
index 3922b15..ef1c454 100644
--- a/WebCore/svg/SVGStyledLocatableElement.h
+++ b/WebCore/svg/SVGStyledLocatableElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGStyledLocatableElement_h
#define SVGStyledLocatableElement_h
diff --git a/WebCore/svg/SVGStyledTransformableElement.cpp b/WebCore/svg/SVGStyledTransformableElement.cpp
index 2dca164..84af351 100644
--- a/WebCore/svg/SVGStyledTransformableElement.cpp
+++ b/WebCore/svg/SVGStyledTransformableElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGStyledTransformableElement.h b/WebCore/svg/SVGStyledTransformableElement.h
index d16995c..f020c89 100644
--- a/WebCore/svg/SVGStyledTransformableElement.h
+++ b/WebCore/svg/SVGStyledTransformableElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGStyledTransformableElement_h
#define SVGStyledTransformableElement_h
diff --git a/WebCore/svg/SVGSwitchElement.cpp b/WebCore/svg/SVGSwitchElement.cpp
index 3268b9a..5f397af 100644
--- a/WebCore/svg/SVGSwitchElement.cpp
+++ b/WebCore/svg/SVGSwitchElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGSwitchElement.h b/WebCore/svg/SVGSwitchElement.h
index 4d6491a..83b02d5 100644
--- a/WebCore/svg/SVGSwitchElement.h
+++ b/WebCore/svg/SVGSwitchElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGSwitchElement_h
#define SVGSwitchElement_h
diff --git a/WebCore/svg/SVGSwitchElement.idl b/WebCore/svg/SVGSwitchElement.idl
index 18690a4..e4749b7 100644
--- a/WebCore/svg/SVGSwitchElement.idl
+++ b/WebCore/svg/SVGSwitchElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGSymbolElement.cpp b/WebCore/svg/SVGSymbolElement.cpp
index 2ee21f6..9c110cb 100644
--- a/WebCore/svg/SVGSymbolElement.cpp
+++ b/WebCore/svg/SVGSymbolElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGSymbolElement.h b/WebCore/svg/SVGSymbolElement.h
index 7a7ef87..7d6fdd3 100644
--- a/WebCore/svg/SVGSymbolElement.h
+++ b/WebCore/svg/SVGSymbolElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGSymbolElement_h
#define SVGSymbolElement_h
diff --git a/WebCore/svg/SVGSymbolElement.idl b/WebCore/svg/SVGSymbolElement.idl
index 3e591a3..5d93de1 100644
--- a/WebCore/svg/SVGSymbolElement.idl
+++ b/WebCore/svg/SVGSymbolElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTRefElement.cpp b/WebCore/svg/SVGTRefElement.cpp
index 4c593ca..c140f05 100644
--- a/WebCore/svg/SVGTRefElement.cpp
+++ b/WebCore/svg/SVGTRefElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTRefElement.h b/WebCore/svg/SVGTRefElement.h
index 261e2ce..f86f015 100644
--- a/WebCore/svg/SVGTRefElement.h
+++ b/WebCore/svg/SVGTRefElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTRefElement_h
#define SVGTRefElement_h
diff --git a/WebCore/svg/SVGTRefElement.idl b/WebCore/svg/SVGTRefElement.idl
index 60bd5b2..68ec9be 100644
--- a/WebCore/svg/SVGTRefElement.idl
+++ b/WebCore/svg/SVGTRefElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTSpanElement.cpp b/WebCore/svg/SVGTSpanElement.cpp
index 12bf377..ef36780 100644
--- a/WebCore/svg/SVGTSpanElement.cpp
+++ b/WebCore/svg/SVGTSpanElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTSpanElement.h b/WebCore/svg/SVGTSpanElement.h
index 17445d3..3b9357b 100644
--- a/WebCore/svg/SVGTSpanElement.h
+++ b/WebCore/svg/SVGTSpanElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTSpanElement_h
#define SVGTSpanElement_h
diff --git a/WebCore/svg/SVGTSpanElement.idl b/WebCore/svg/SVGTSpanElement.idl
index 28728ec..14cdcae 100644
--- a/WebCore/svg/SVGTSpanElement.idl
+++ b/WebCore/svg/SVGTSpanElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTests.cpp b/WebCore/svg/SVGTests.cpp
index 5f32403..9767432 100644
--- a/WebCore/svg/SVGTests.cpp
+++ b/WebCore/svg/SVGTests.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTests.h b/WebCore/svg/SVGTests.h
index 503f6c7..b638c0a 100644
--- a/WebCore/svg/SVGTests.h
+++ b/WebCore/svg/SVGTests.h
@@ -1,27 +1,28 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTests_h
#define SVGTests_h
#if ENABLE(SVG)
+#include <wtf/Forward.h>
#include <wtf/RefPtr.h>
namespace WebCore {
@@ -29,7 +30,6 @@ namespace WebCore {
class Attribute;
class QualifiedName;
class SVGStringList;
- class String;
class SVGTests {
public:
diff --git a/WebCore/svg/SVGTests.idl b/WebCore/svg/SVGTests.idl
index 905ba5e..3508a98 100644
--- a/WebCore/svg/SVGTests.idl
+++ b/WebCore/svg/SVGTests.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTextContentElement.cpp b/WebCore/svg/SVGTextContentElement.cpp
index 234c03a..a96ce63 100644
--- a/WebCore/svg/SVGTextContentElement.cpp
+++ b/WebCore/svg/SVGTextContentElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTextContentElement.h b/WebCore/svg/SVGTextContentElement.h
index 44220b9..d006a89 100644
--- a/WebCore/svg/SVGTextContentElement.h
+++ b/WebCore/svg/SVGTextContentElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTextContentElement_h
#define SVGTextContentElement_h
diff --git a/WebCore/svg/SVGTextContentElement.idl b/WebCore/svg/SVGTextContentElement.idl
index 9cf1748..400b184 100644
--- a/WebCore/svg/SVGTextContentElement.idl
+++ b/WebCore/svg/SVGTextContentElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTextElement.cpp b/WebCore/svg/SVGTextElement.cpp
index 7269adf..57774cd 100644
--- a/WebCore/svg/SVGTextElement.cpp
+++ b/WebCore/svg/SVGTextElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTextElement.h b/WebCore/svg/SVGTextElement.h
index 1bb8f5a..b954835 100644
--- a/WebCore/svg/SVGTextElement.h
+++ b/WebCore/svg/SVGTextElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTextElement_h
#define SVGTextElement_h
diff --git a/WebCore/svg/SVGTextElement.idl b/WebCore/svg/SVGTextElement.idl
index 046faa3..0867d81 100644
--- a/WebCore/svg/SVGTextElement.idl
+++ b/WebCore/svg/SVGTextElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTextPathElement.cpp b/WebCore/svg/SVGTextPathElement.cpp
index 732185d..8f21ab3 100644
--- a/WebCore/svg/SVGTextPathElement.cpp
+++ b/WebCore/svg/SVGTextPathElement.cpp
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTextPathElement.h b/WebCore/svg/SVGTextPathElement.h
index 4e7f914..537a107 100644
--- a/WebCore/svg/SVGTextPathElement.h
+++ b/WebCore/svg/SVGTextPathElement.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTextPathElement_h
#define SVGTextPathElement_h
diff --git a/WebCore/svg/SVGTextPathElement.idl b/WebCore/svg/SVGTextPathElement.idl
index 511f792..b8c6e7d 100644
--- a/WebCore/svg/SVGTextPathElement.idl
+++ b/WebCore/svg/SVGTextPathElement.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTextPositioningElement.cpp b/WebCore/svg/SVGTextPositioningElement.cpp
index 19f1fbc..86231f8 100644
--- a/WebCore/svg/SVGTextPositioningElement.cpp
+++ b/WebCore/svg/SVGTextPositioningElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTextPositioningElement.h b/WebCore/svg/SVGTextPositioningElement.h
index 985ced4..0ad3090 100644
--- a/WebCore/svg/SVGTextPositioningElement.h
+++ b/WebCore/svg/SVGTextPositioningElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTextPositioningElement_h
#define SVGTextPositioningElement_h
diff --git a/WebCore/svg/SVGTextPositioningElement.idl b/WebCore/svg/SVGTextPositioningElement.idl
index 45ea2ec..6f5d1fa 100644
--- a/WebCore/svg/SVGTextPositioningElement.idl
+++ b/WebCore/svg/SVGTextPositioningElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTitleElement.cpp b/WebCore/svg/SVGTitleElement.cpp
index 5afde8d..7fdb2e0 100644
--- a/WebCore/svg/SVGTitleElement.cpp
+++ b/WebCore/svg/SVGTitleElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGTitleElement.h b/WebCore/svg/SVGTitleElement.h
index 340f725..f3381b1 100644
--- a/WebCore/svg/SVGTitleElement.h
+++ b/WebCore/svg/SVGTitleElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTitleElement_h
#define SVGTitleElement_h
diff --git a/WebCore/svg/SVGTitleElement.idl b/WebCore/svg/SVGTitleElement.idl
index f7a1182..dde5ba2 100644
--- a/WebCore/svg/SVGTitleElement.idl
+++ b/WebCore/svg/SVGTitleElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTransform.cpp b/WebCore/svg/SVGTransform.cpp
index 1af0cd9..594af16 100644
--- a/WebCore/svg/SVGTransform.cpp
+++ b/WebCore/svg/SVGTransform.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGTransform.h b/WebCore/svg/SVGTransform.h
index 88912c2..071d908 100644
--- a/WebCore/svg/SVGTransform.h
+++ b/WebCore/svg/SVGTransform.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTransform_h
#define SVGTransform_h
@@ -24,7 +24,6 @@
#if ENABLE(SVG)
#include "AffineTransform.h"
#include "FloatPoint.h"
-#include "SVGNames.h"
namespace WebCore {
diff --git a/WebCore/svg/SVGTransform.idl b/WebCore/svg/SVGTransform.idl
index fc153a7..dde234c 100644
--- a/WebCore/svg/SVGTransform.idl
+++ b/WebCore/svg/SVGTransform.idl
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGTransformDistance.cpp b/WebCore/svg/SVGTransformDistance.cpp
index 51dfd74..ef43072 100644
--- a/WebCore/svg/SVGTransformDistance.cpp
+++ b/WebCore/svg/SVGTransformDistance.cpp
@@ -1,22 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/SVGTransformDistance.h b/WebCore/svg/SVGTransformDistance.h
index 7c54dc7..ad46974 100644
--- a/WebCore/svg/SVGTransformDistance.h
+++ b/WebCore/svg/SVGTransformDistance.h
@@ -1,22 +1,20 @@
/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGTransformDistance_h
diff --git a/WebCore/svg/SVGTransformList.cpp b/WebCore/svg/SVGTransformList.cpp
index 38dbc9a..ae2f298 100644
--- a/WebCore/svg/SVGTransformList.cpp
+++ b/WebCore/svg/SVGTransformList.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTransformList.h b/WebCore/svg/SVGTransformList.h
index 683f0f7..5bb5e85 100644
--- a/WebCore/svg/SVGTransformList.h
+++ b/WebCore/svg/SVGTransformList.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTransformList_h
#define SVGTransformList_h
@@ -24,12 +24,11 @@
#if ENABLE(SVG)
#include "SVGList.h"
#include "SVGTransform.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
- class String;
-
class SVGTransformList : public SVGPODList<SVGTransform> {
public:
static PassRefPtr<SVGTransformList> create(const QualifiedName& attributeName) { return adoptRef(new SVGTransformList(attributeName)); }
diff --git a/WebCore/svg/SVGTransformList.idl b/WebCore/svg/SVGTransformList.idl
index d03351a..08252c3 100644
--- a/WebCore/svg/SVGTransformList.idl
+++ b/WebCore/svg/SVGTransformList.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGTransformable.cpp b/WebCore/svg/SVGTransformable.cpp
index 51e10aa..a47cd1f 100644
--- a/WebCore/svg/SVGTransformable.cpp
+++ b/WebCore/svg/SVGTransformable.cpp
@@ -1,25 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- 2007 Eric Seidel <eric@webkit.org>
-
- This file is part of the WebKit project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGTransformable.h b/WebCore/svg/SVGTransformable.h
index 9906d89..8979eb1 100644
--- a/WebCore/svg/SVGTransformable.h
+++ b/WebCore/svg/SVGTransformable.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGTransformable_h
#define SVGTransformable_h
@@ -25,11 +25,11 @@
#include "PlatformString.h"
#include "SVGLocatable.h"
#include "SVGTransformList.h"
+#include <wtf/Forward.h>
namespace WebCore {
class AffineTransform;
-class AtomicString;
class SVGTransform;
class QualifiedName;
diff --git a/WebCore/svg/SVGTransformable.idl b/WebCore/svg/SVGTransformable.idl
index 13a4520..86822b7 100644
--- a/WebCore/svg/SVGTransformable.idl
+++ b/WebCore/svg/SVGTransformable.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGURIReference.cpp b/WebCore/svg/SVGURIReference.cpp
index 8ceba80..e3a7003 100644
--- a/WebCore/svg/SVGURIReference.cpp
+++ b/WebCore/svg/SVGURIReference.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGURIReference.h b/WebCore/svg/SVGURIReference.h
index e8f317d..0900215 100644
--- a/WebCore/svg/SVGURIReference.h
+++ b/WebCore/svg/SVGURIReference.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008, 2009 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008, 2009 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGURIReference_h
#define SVGURIReference_h
diff --git a/WebCore/svg/SVGURIReference.idl b/WebCore/svg/SVGURIReference.idl
index 4981eb1..cc9498a 100644
--- a/WebCore/svg/SVGURIReference.idl
+++ b/WebCore/svg/SVGURIReference.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGUnitTypes.h b/WebCore/svg/SVGUnitTypes.h
index 86d49b4..d30132c 100644
--- a/WebCore/svg/SVGUnitTypes.h
+++ b/WebCore/svg/SVGUnitTypes.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGUnitTypes_h
#define SVGUnitTypes_h
diff --git a/WebCore/svg/SVGUnitTypes.idl b/WebCore/svg/SVGUnitTypes.idl
index 9095e7a..6eb3919 100644
--- a/WebCore/svg/SVGUnitTypes.idl
+++ b/WebCore/svg/SVGUnitTypes.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGUseElement.cpp b/WebCore/svg/SVGUseElement.cpp
index e42a794..68c087c 100644
--- a/WebCore/svg/SVGUseElement.cpp
+++ b/WebCore/svg/SVGUseElement.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
- Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGUseElement.h b/WebCore/svg/SVGUseElement.h
index cbbcd0f..52f3f6e 100644
--- a/WebCore/svg/SVGUseElement.h
+++ b/WebCore/svg/SVGUseElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGUseElement_h
#define SVGUseElement_h
diff --git a/WebCore/svg/SVGUseElement.idl b/WebCore/svg/SVGUseElement.idl
index 0b3652d..6c1cf12 100644
--- a/WebCore/svg/SVGUseElement.idl
+++ b/WebCore/svg/SVGUseElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGVKernElement.cpp b/WebCore/svg/SVGVKernElement.cpp
index ee748fb..662f714 100644
--- a/WebCore/svg/SVGVKernElement.cpp
+++ b/WebCore/svg/SVGVKernElement.cpp
@@ -1,21 +1,21 @@
/*
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGVKernElement.h b/WebCore/svg/SVGVKernElement.h
index 0592702..c4bc90f 100644
--- a/WebCore/svg/SVGVKernElement.h
+++ b/WebCore/svg/SVGVKernElement.h
@@ -1,20 +1,20 @@
/*
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGVKernElement_h
@@ -24,12 +24,12 @@
#include "SVGFontElement.h"
#include "SVGParserUtilities.h"
#include "SVGStyledElement.h"
+#include <wtf/Forward.h>
#include <limits>
namespace WebCore {
-class AtomicString;
class SVGFontData;
class SVGVKernElement : public SVGElement {
diff --git a/WebCore/svg/SVGVKernElement.idl b/WebCore/svg/SVGVKernElement.idl
index 2cf7124..8280da1 100644
--- a/WebCore/svg/SVGVKernElement.idl
+++ b/WebCore/svg/SVGVKernElement.idl
@@ -1,21 +1,21 @@
/*
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
module svg {
diff --git a/WebCore/svg/SVGViewElement.cpp b/WebCore/svg/SVGViewElement.cpp
index c19c7cf..2b9b6cc 100644
--- a/WebCore/svg/SVGViewElement.cpp
+++ b/WebCore/svg/SVGViewElement.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGViewElement.h b/WebCore/svg/SVGViewElement.h
index b834cee..14ea19e 100644
--- a/WebCore/svg/SVGViewElement.h
+++ b/WebCore/svg/SVGViewElement.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGViewElement_h
#define SVGViewElement_h
diff --git a/WebCore/svg/SVGViewElement.idl b/WebCore/svg/SVGViewElement.idl
index b80868a..2365438 100644
--- a/WebCore/svg/SVGViewElement.idl
+++ b/WebCore/svg/SVGViewElement.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGViewSpec.cpp b/WebCore/svg/SVGViewSpec.cpp
index 53194a9..25fb66b 100644
--- a/WebCore/svg/SVGViewSpec.cpp
+++ b/WebCore/svg/SVGViewSpec.cpp
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007, 2010 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007, 2010 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGViewSpec.h b/WebCore/svg/SVGViewSpec.h
index 12358dc..3355fce 100644
--- a/WebCore/svg/SVGViewSpec.h
+++ b/WebCore/svg/SVGViewSpec.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGViewSpec_h
#define SVGViewSpec_h
diff --git a/WebCore/svg/SVGViewSpec.idl b/WebCore/svg/SVGViewSpec.idl
index 24d18f8..e58ca37 100644
--- a/WebCore/svg/SVGViewSpec.idl
+++ b/WebCore/svg/SVGViewSpec.idl
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGZoomAndPan.cpp b/WebCore/svg/SVGZoomAndPan.cpp
index 782da0b..d256bd0 100644
--- a/WebCore/svg/SVGZoomAndPan.cpp
+++ b/WebCore/svg/SVGZoomAndPan.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/SVGZoomAndPan.h b/WebCore/svg/SVGZoomAndPan.h
index 95c0772..a85304d 100644
--- a/WebCore/svg/SVGZoomAndPan.h
+++ b/WebCore/svg/SVGZoomAndPan.h
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGZoomAndPan_h
#define SVGZoomAndPan_h
diff --git a/WebCore/svg/SVGZoomAndPan.idl b/WebCore/svg/SVGZoomAndPan.idl
index bd738f3..8135852 100644
--- a/WebCore/svg/SVGZoomAndPan.idl
+++ b/WebCore/svg/SVGZoomAndPan.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/SVGZoomEvent.cpp b/WebCore/svg/SVGZoomEvent.cpp
index 92609b1..f8d94e4 100644
--- a/WebCore/svg/SVGZoomEvent.cpp
+++ b/WebCore/svg/SVGZoomEvent.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
#if ENABLE(SVG)
diff --git a/WebCore/svg/SVGZoomEvent.h b/WebCore/svg/SVGZoomEvent.h
index a16f131..d4b7de0 100644
--- a/WebCore/svg/SVGZoomEvent.h
+++ b/WebCore/svg/SVGZoomEvent.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
- Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGZoomEvent_h
#define SVGZoomEvent_h
diff --git a/WebCore/svg/SVGZoomEvent.idl b/WebCore/svg/SVGZoomEvent.idl
index ea05012..520f202 100644
--- a/WebCore/svg/SVGZoomEvent.idl
+++ b/WebCore/svg/SVGZoomEvent.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/animation/SMILTime.cpp b/WebCore/svg/animation/SMILTime.cpp
index 44e96a2..3ae1bfb 100644
--- a/WebCore/svg/animation/SMILTime.cpp
+++ b/WebCore/svg/animation/SMILTime.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/WebCore/svg/animation/SMILTime.h b/WebCore/svg/animation/SMILTime.h
index ebbd765..ec61a08 100644
--- a/WebCore/svg/animation/SMILTime.h
+++ b/WebCore/svg/animation/SMILTime.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/WebCore/svg/animation/SMILTimeContainer.cpp b/WebCore/svg/animation/SMILTimeContainer.cpp
index e7b8cc7..b9f210e 100644
--- a/WebCore/svg/animation/SMILTimeContainer.cpp
+++ b/WebCore/svg/animation/SMILTimeContainer.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/WebCore/svg/animation/SMILTimeContainer.h b/WebCore/svg/animation/SMILTimeContainer.h
index 1e1007e..dde41f1 100644
--- a/WebCore/svg/animation/SMILTimeContainer.h
+++ b/WebCore/svg/animation/SMILTimeContainer.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/WebCore/svg/animation/SVGSMILElement.cpp b/WebCore/svg/animation/SVGSMILElement.cpp
index e51fb58..0352b43 100644
--- a/WebCore/svg/animation/SVGSMILElement.cpp
+++ b/WebCore/svg/animation/SVGSMILElement.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/WebCore/svg/animation/SVGSMILElement.h b/WebCore/svg/animation/SVGSMILElement.h
index c2e6125..ed8bbf8 100644
--- a/WebCore/svg/animation/SVGSMILElement.h
+++ b/WebCore/svg/animation/SVGSMILElement.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/WebCore/svg/graphics/SVGImage.cpp b/WebCore/svg/graphics/SVGImage.cpp
index ef9d87b..3d60117 100644
--- a/WebCore/svg/graphics/SVGImage.cpp
+++ b/WebCore/svg/graphics/SVGImage.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Eric Seidel (eric@webkit.org)
+ * Copyright (C) 2006 Eric Seidel <eric@webkit.org>
* Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/graphics/SVGImage.h b/WebCore/svg/graphics/SVGImage.h
index a0414fe..1936626 100644
--- a/WebCore/svg/graphics/SVGImage.h
+++ b/WebCore/svg/graphics/SVGImage.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006 Eric Seidel (eric@webkit.org)
+ * Copyright (C) 2006 Eric Seidel <eric@webkit.org>
* Copyright (C) 2009 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
diff --git a/WebCore/svg/graphics/filters/SVGDistantLightSource.h b/WebCore/svg/graphics/filters/SVGDistantLightSource.h
index 97853db..93c5f2a 100644
--- a/WebCore/svg/graphics/filters/SVGDistantLightSource.h
+++ b/WebCore/svg/graphics/filters/SVGDistantLightSource.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
- 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGDistantLightSource_h
#define SVGDistantLightSource_h
diff --git a/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.cpp b/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.cpp
index ddd4928..c1a1166 100644
--- a/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2009 Dirk Schulze <krit@webkit.org>
- 2010 Zoltan Herczeg <zherczeg@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) 2010 Zoltan Herczeg <zherczeg@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.h b/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.h
index 7b8da0b..662d097 100644
--- a/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.h
+++ b/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2010 Zoltan Herczeg <zherczeg@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2010 Zoltan Herczeg <zherczeg@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEConvolveMatrix_h
#define SVGFEConvolveMatrix_h
diff --git a/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.cpp b/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.cpp
index f8d0b4e..3a008fa 100644
--- a/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.h b/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.h
index 3fccb19..ee4d5b1 100644
--- a/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.h
+++ b/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEDiffuseLighting_h
#define SVGFEDiffuseLighting_h
diff --git a/WebCore/svg/graphics/filters/SVGFEDisplacementMap.cpp b/WebCore/svg/graphics/filters/SVGFEDisplacementMap.cpp
index 9374eda..3305f27 100644
--- a/WebCore/svg/graphics/filters/SVGFEDisplacementMap.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEDisplacementMap.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFEDisplacementMap.h b/WebCore/svg/graphics/filters/SVGFEDisplacementMap.h
index 139bd2a..7bb9d19 100644
--- a/WebCore/svg/graphics/filters/SVGFEDisplacementMap.h
+++ b/WebCore/svg/graphics/filters/SVGFEDisplacementMap.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEDisplacementMap_h
#define SVGFEDisplacementMap_h
diff --git a/WebCore/svg/graphics/filters/SVGFEFlood.cpp b/WebCore/svg/graphics/filters/SVGFEFlood.cpp
index d65c382..5286d80 100644
--- a/WebCore/svg/graphics/filters/SVGFEFlood.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEFlood.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFEFlood.h b/WebCore/svg/graphics/filters/SVGFEFlood.h
index 3db906b..8ae251d 100644
--- a/WebCore/svg/graphics/filters/SVGFEFlood.h
+++ b/WebCore/svg/graphics/filters/SVGFEFlood.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEFlood_h
#define SVGFEFlood_h
diff --git a/WebCore/svg/graphics/filters/SVGFEImage.cpp b/WebCore/svg/graphics/filters/SVGFEImage.cpp
index 0614116..b21ceae 100644
--- a/WebCore/svg/graphics/filters/SVGFEImage.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEImage.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2010 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2010 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFEImage.h b/WebCore/svg/graphics/filters/SVGFEImage.h
index 3702d2b..97a9cda 100644
--- a/WebCore/svg/graphics/filters/SVGFEImage.h
+++ b/WebCore/svg/graphics/filters/SVGFEImage.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2010 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2010 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEImage_h
#define SVGFEImage_h
diff --git a/WebCore/svg/graphics/filters/SVGFELighting.cpp b/WebCore/svg/graphics/filters/SVGFELighting.cpp
index 2bfcfae..7c3c81c 100644
--- a/WebCore/svg/graphics/filters/SVGFELighting.cpp
+++ b/WebCore/svg/graphics/filters/SVGFELighting.cpp
@@ -1,7 +1,6 @@
/*
* Copyright (C) 2010 University of Szeged
* Copyright (C) 2010 Zoltan Herczeg
- * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -22,7 +21,7 @@
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFELighting.h b/WebCore/svg/graphics/filters/SVGFELighting.h
index 731871f..7db50e0 100644
--- a/WebCore/svg/graphics/filters/SVGFELighting.h
+++ b/WebCore/svg/graphics/filters/SVGFELighting.h
@@ -1,7 +1,6 @@
/*
* Copyright (C) 2010 University of Szeged
* Copyright (C) 2010 Zoltan Herczeg
- * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -22,7 +21,7 @@
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef SVGFELighting_h
diff --git a/WebCore/svg/graphics/filters/SVGFEMerge.cpp b/WebCore/svg/graphics/filters/SVGFEMerge.cpp
index c6f312f..649f670 100644
--- a/WebCore/svg/graphics/filters/SVGFEMerge.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEMerge.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFEMerge.h b/WebCore/svg/graphics/filters/SVGFEMerge.h
index 77b311f..66decfc 100644
--- a/WebCore/svg/graphics/filters/SVGFEMerge.h
+++ b/WebCore/svg/graphics/filters/SVGFEMerge.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEMerge_h
#define SVGFEMerge_h
diff --git a/WebCore/svg/graphics/filters/SVGFEMorphology.cpp b/WebCore/svg/graphics/filters/SVGFEMorphology.cpp
index 1c5ea27..3fdf369 100644
--- a/WebCore/svg/graphics/filters/SVGFEMorphology.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEMorphology.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFEMorphology.h b/WebCore/svg/graphics/filters/SVGFEMorphology.h
index c0b2f95..79f292d 100644
--- a/WebCore/svg/graphics/filters/SVGFEMorphology.h
+++ b/WebCore/svg/graphics/filters/SVGFEMorphology.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEMorphology_h
#define SVGFEMorphology_h
diff --git a/WebCore/svg/graphics/filters/SVGFEOffset.cpp b/WebCore/svg/graphics/filters/SVGFEOffset.cpp
index 5386f1c..f6c1a3c 100644
--- a/WebCore/svg/graphics/filters/SVGFEOffset.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEOffset.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFEOffset.h b/WebCore/svg/graphics/filters/SVGFEOffset.h
index a6ded47..ad071d6 100644
--- a/WebCore/svg/graphics/filters/SVGFEOffset.h
+++ b/WebCore/svg/graphics/filters/SVGFEOffset.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFEOffset_h
#define SVGFEOffset_h
diff --git a/WebCore/svg/graphics/filters/SVGFESpecularLighting.cpp b/WebCore/svg/graphics/filters/SVGFESpecularLighting.cpp
index fbf9d44..5c6dc2a 100644
--- a/WebCore/svg/graphics/filters/SVGFESpecularLighting.cpp
+++ b/WebCore/svg/graphics/filters/SVGFESpecularLighting.cpp
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFESpecularLighting.h b/WebCore/svg/graphics/filters/SVGFESpecularLighting.h
index 366056e..3a49c1e 100644
--- a/WebCore/svg/graphics/filters/SVGFESpecularLighting.h
+++ b/WebCore/svg/graphics/filters/SVGFESpecularLighting.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFESpecularLighting_h
#define SVGFESpecularLighting_h
diff --git a/WebCore/svg/graphics/filters/SVGFETile.cpp b/WebCore/svg/graphics/filters/SVGFETile.cpp
index 1b0a59b..fc172ee 100644
--- a/WebCore/svg/graphics/filters/SVGFETile.cpp
+++ b/WebCore/svg/graphics/filters/SVGFETile.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
- 2009 Dirk Schulze <krit@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFETile.h b/WebCore/svg/graphics/filters/SVGFETile.h
index e11e4ab..7af9c13 100644
--- a/WebCore/svg/graphics/filters/SVGFETile.h
+++ b/WebCore/svg/graphics/filters/SVGFETile.h
@@ -1,23 +1,23 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFETile_h
#define SVGFETile_h
diff --git a/WebCore/svg/graphics/filters/SVGFETurbulence.cpp b/WebCore/svg/graphics/filters/SVGFETurbulence.cpp
index 8042a47..7bf40ed 100644
--- a/WebCore/svg/graphics/filters/SVGFETurbulence.cpp
+++ b/WebCore/svg/graphics/filters/SVGFETurbulence.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2009 Dirk Schulze <krit@webkit.org>
- 2010 Renata Hodovan <reni@inf.u-szeged.hu>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) 2010 Renata Hodovan <reni@inf.u-szeged.hu>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFETurbulence.h b/WebCore/svg/graphics/filters/SVGFETurbulence.h
index 33e185e..d27b7f6 100644
--- a/WebCore/svg/graphics/filters/SVGFETurbulence.h
+++ b/WebCore/svg/graphics/filters/SVGFETurbulence.h
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2009 Dirk Schulze <krit@webkit.org>
- 2010 Renata Hodovan <reni@inf.u-szeged.hu>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) 2010 Renata Hodovan <reni@inf.u-szeged.hu>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFETurbulence_h
#define SVGFETurbulence_h
diff --git a/WebCore/svg/graphics/filters/SVGFilter.cpp b/WebCore/svg/graphics/filters/SVGFilter.cpp
index 4ec4e6e..947dbed 100644
--- a/WebCore/svg/graphics/filters/SVGFilter.cpp
+++ b/WebCore/svg/graphics/filters/SVGFilter.cpp
@@ -1,20 +1,20 @@
/*
- * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public License
- * aint with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFilter.h b/WebCore/svg/graphics/filters/SVGFilter.h
index c4714c6..1ee5e8a 100644
--- a/WebCore/svg/graphics/filters/SVGFilter.h
+++ b/WebCore/svg/graphics/filters/SVGFilter.h
@@ -1,20 +1,20 @@
/*
- * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public License
- * aint with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef SVGFilter_h
diff --git a/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp b/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp
index fc6924a..5a6d0b9 100644
--- a/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp
+++ b/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp
@@ -1,21 +1,20 @@
-
/*
- * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
*
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public License
- * aint with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGFilterBuilder.h b/WebCore/svg/graphics/filters/SVGFilterBuilder.h
index 1cf583d..3325dac 100644
--- a/WebCore/svg/graphics/filters/SVGFilterBuilder.h
+++ b/WebCore/svg/graphics/filters/SVGFilterBuilder.h
@@ -1,21 +1,21 @@
/*
- Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGFilterBuilder_h
#define SVGFilterBuilder_h
diff --git a/WebCore/svg/graphics/filters/SVGLightSource.cpp b/WebCore/svg/graphics/filters/SVGLightSource.cpp
index d243eba..2981f25 100644
--- a/WebCore/svg/graphics/filters/SVGLightSource.cpp
+++ b/WebCore/svg/graphics/filters/SVGLightSource.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2010 Zoltan Herczeg <zherczeg@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2010 Zoltan Herczeg <zherczeg@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#include "config.h"
diff --git a/WebCore/svg/graphics/filters/SVGLightSource.h b/WebCore/svg/graphics/filters/SVGLightSource.h
index d97366c..6795107 100644
--- a/WebCore/svg/graphics/filters/SVGLightSource.h
+++ b/WebCore/svg/graphics/filters/SVGLightSource.h
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
- 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2010 Zoltan Herczeg <zherczeg@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2010 Zoltan Herczeg <zherczeg@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGLightSource_h
#define SVGLightSource_h
diff --git a/WebCore/svg/graphics/filters/SVGPointLightSource.h b/WebCore/svg/graphics/filters/SVGPointLightSource.h
index 0c55ebf..cd8f9b2 100644
--- a/WebCore/svg/graphics/filters/SVGPointLightSource.h
+++ b/WebCore/svg/graphics/filters/SVGPointLightSource.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
- 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGPointLightSource_h
#define SVGPointLightSource_h
diff --git a/WebCore/svg/graphics/filters/SVGSpotLightSource.h b/WebCore/svg/graphics/filters/SVGSpotLightSource.h
index 2542947..31c5674 100644
--- a/WebCore/svg/graphics/filters/SVGSpotLightSource.h
+++ b/WebCore/svg/graphics/filters/SVGSpotLightSource.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
- 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com>
+ * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
#ifndef SVGSpotLightSource_h
#define SVGSpotLightSource_h
diff --git a/WebCore/websockets/ThreadableWebSocketChannel.h b/WebCore/websockets/ThreadableWebSocketChannel.h
index cbe6e14..05b3767 100644
--- a/WebCore/websockets/ThreadableWebSocketChannel.h
+++ b/WebCore/websockets/ThreadableWebSocketChannel.h
@@ -33,6 +33,7 @@
#if ENABLE(WEB_SOCKETS)
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/PassRefPtr.h>
@@ -40,7 +41,6 @@ namespace WebCore {
class KURL;
class ScriptExecutionContext;
-class String;
class WebSocketChannelClient;
class ThreadableWebSocketChannel : public Noncopyable {
diff --git a/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h b/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h
index bc36c1b..4099615 100644
--- a/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h
+++ b/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h
@@ -35,14 +35,13 @@
#include "PlatformString.h"
#include "WebSocketChannelClient.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Threading.h>
#include <wtf/Vector.h>
namespace WebCore {
-class String;
-
class ThreadableWebSocketChannelClientWrapper : public ThreadSafeShared<ThreadableWebSocketChannelClientWrapper> {
public:
static PassRefPtr<ThreadableWebSocketChannelClientWrapper> create(WebSocketChannelClient* client)
diff --git a/WebCore/websockets/WebSocket.h b/WebCore/websockets/WebSocket.h
index 2c95ff9..15508b4 100644
--- a/WebCore/websockets/WebSocket.h
+++ b/WebCore/websockets/WebSocket.h
@@ -40,12 +40,12 @@
#include "EventTarget.h"
#include "KURL.h"
#include "WebSocketChannelClient.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
- class String;
class ThreadableWebSocketChannel;
class WebSocket : public RefCounted<WebSocket>, public EventTarget, public ActiveDOMObject, public WebSocketChannelClient {
diff --git a/WebCore/websockets/WebSocketChannel.h b/WebCore/websockets/WebSocketChannel.h
index a90c6dc..893b4c6 100644
--- a/WebCore/websockets/WebSocketChannel.h
+++ b/WebCore/websockets/WebSocketChannel.h
@@ -37,13 +37,13 @@
#include "ThreadableWebSocketChannel.h"
#include "Timer.h"
#include "WebSocketHandshake.h"
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
namespace WebCore {
class ScriptExecutionContext;
- class String;
class SocketStreamHandle;
class SocketStreamError;
class WebSocketChannelClient;
diff --git a/WebCore/websockets/WebSocketHandshakeResponse.h b/WebCore/websockets/WebSocketHandshakeResponse.h
index c385a1b..fe435ee 100644
--- a/WebCore/websockets/WebSocketHandshakeResponse.h
+++ b/WebCore/websockets/WebSocketHandshakeResponse.h
@@ -35,11 +35,10 @@
#include "HTTPHeaderMap.h"
#include "PlatformString.h"
+#include <wtf/Forward.h>
namespace WebCore {
-class AtomicString;
-
class WebSocketHandshakeResponse {
public:
WebSocketHandshakeResponse();
diff --git a/WebCore/wml/WMLCardElement.cpp b/WebCore/wml/WMLCardElement.cpp
index 539dcd3..645d0fc 100644
--- a/WebCore/wml/WMLCardElement.cpp
+++ b/WebCore/wml/WMLCardElement.cpp
@@ -287,7 +287,7 @@ WMLCardElement* WMLCardElement::findNamedCardInDocument(Document* doc, const Str
for (unsigned i = 0; i < length; ++i) {
WMLCardElement* card = static_cast<WMLCardElement*>(nodeList->item(i));
- if (card->getIDAttribute() != cardName)
+ if (card->getIdAttribute() != cardName)
continue;
return card;
diff --git a/WebCore/wml/WMLDocument.cpp b/WebCore/wml/WMLDocument.cpp
index ba4bb57..9781a68 100644
--- a/WebCore/wml/WMLDocument.cpp
+++ b/WebCore/wml/WMLDocument.cpp
@@ -26,7 +26,7 @@
#include "BackForwardList.h"
#include "Frame.h"
#include "Page.h"
-#include "DocumentParser.h"
+#include "ScriptableDocumentParser.h"
#include "WMLCardElement.h"
#include "WMLErrorHandling.h"
#include "WMLPageState.h"
@@ -34,8 +34,8 @@
namespace WebCore {
-WMLDocument::WMLDocument(Frame* frame)
- : Document(frame, false, false)
+WMLDocument::WMLDocument(Frame* frame, const KURL& url)
+ : Document(frame, url, false, false)
, m_activeCard(0)
{
clearXMLVersion();
@@ -47,7 +47,7 @@ WMLDocument::~WMLDocument()
void WMLDocument::finishedParsing()
{
- if (DocumentParser* parser = this->parser()) {
+ if (ScriptableDocumentParser* parser = this->scriptableDocumentParser()) {
if (!parser->wellFormed()) {
Document::finishedParsing();
return;
diff --git a/WebCore/wml/WMLDocument.h b/WebCore/wml/WMLDocument.h
index 9053518..3057d9b 100644
--- a/WebCore/wml/WMLDocument.h
+++ b/WebCore/wml/WMLDocument.h
@@ -32,9 +32,9 @@ class WMLCardElement;
class WMLDocument : public Document {
public:
- static PassRefPtr<WMLDocument> create(Frame* frame)
+ static PassRefPtr<WMLDocument> create(Frame* frame, const KURL& url)
{
- return adoptRef(new WMLDocument(frame));
+ return adoptRef(new WMLDocument(frame, url));
}
virtual ~WMLDocument();
@@ -47,7 +47,7 @@ public:
WMLCardElement* activeCard() const { return m_activeCard; }
private:
- WMLDocument(Frame*);
+ WMLDocument(Frame*, const KURL&);
WMLCardElement* m_activeCard;
};
diff --git a/WebCore/wml/WMLErrorHandling.h b/WebCore/wml/WMLErrorHandling.h
index 8277be4..c75c975 100644
--- a/WebCore/wml/WMLErrorHandling.h
+++ b/WebCore/wml/WMLErrorHandling.h
@@ -21,11 +21,12 @@
#ifndef WMLErrorHandling_h
#define WMLErrorHandling_h
+#include <wtf/Forward.h>
+
#if ENABLE(WML)
namespace WebCore {
class Document;
- class String;
enum WMLErrorCode {
WMLErrorUnknown = 0,
diff --git a/WebCore/wml/WMLGoElement.cpp b/WebCore/wml/WMLGoElement.cpp
index 9b329d7..d3a6216 100644
--- a/WebCore/wml/WMLGoElement.cpp
+++ b/WebCore/wml/WMLGoElement.cpp
@@ -25,6 +25,7 @@
#include "Attribute.h"
#include "FormData.h"
+#include "FormDataBuilder.h"
#include "FormSubmission.h"
#include "Frame.h"
#include "FrameLoader.h"
diff --git a/WebCore/wml/WMLPageState.h b/WebCore/wml/WMLPageState.h
index ed1ce8e..614bc94 100644
--- a/WebCore/wml/WMLPageState.h
+++ b/WebCore/wml/WMLPageState.h
@@ -25,12 +25,12 @@
#if ENABLE(WML)
#include "StringHash.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
namespace WebCore {
class Page;
-class String;
class WMLCardElement;
typedef HashMap<String, String> WMLVariableMap;
diff --git a/WebCore/wml/WMLSelectElement.cpp b/WebCore/wml/WMLSelectElement.cpp
index 2f8ebf6..3991b52 100644
--- a/WebCore/wml/WMLSelectElement.cpp
+++ b/WebCore/wml/WMLSelectElement.cpp
@@ -167,7 +167,7 @@ void WMLSelectElement::reset()
void WMLSelectElement::defaultEventHandler(Event* event)
{
- SelectElement::defaultEventHandler(m_data, this, event);
+ SelectElement::defaultEventHandler(m_data, this, event, 0);
// FIXME: There must be a better place to update the page variable state. Investigate.
updateVariables();
diff --git a/WebCore/wml/WMLVariables.h b/WebCore/wml/WMLVariables.h
index 18c6ba4..3bd0f81 100644
--- a/WebCore/wml/WMLVariables.h
+++ b/WebCore/wml/WMLVariables.h
@@ -21,11 +21,12 @@
#ifndef WMLVariables_h
#define WMLVariables_h
+#include <wtf/Forward.h>
+
#if ENABLE(WML)
namespace WebCore {
class Document;
- class String;
enum WMLVariableEscapingMode {
WMLVariableEscapingNone = 0,
diff --git a/WebCore/workers/DefaultSharedWorkerRepository.h b/WebCore/workers/DefaultSharedWorkerRepository.h
index c2eaff4..2ce4422 100644
--- a/WebCore/workers/DefaultSharedWorkerRepository.h
+++ b/WebCore/workers/DefaultSharedWorkerRepository.h
@@ -35,6 +35,7 @@
#include "ExceptionCode.h"
#include "StringHash.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/Noncopyable.h>
#include <wtf/PassOwnPtr.h>
@@ -50,7 +51,6 @@ namespace WebCore {
class ScriptExecutionContext;
class SharedWorker;
class SharedWorkerProxy;
- class String;
// Platform-specific implementation of the SharedWorkerRepository static interface.
class DefaultSharedWorkerRepository : public Noncopyable {
diff --git a/WebCore/workers/SharedWorkerRepository.h b/WebCore/workers/SharedWorkerRepository.h
index 49f3941..d654070 100644
--- a/WebCore/workers/SharedWorkerRepository.h
+++ b/WebCore/workers/SharedWorkerRepository.h
@@ -34,6 +34,7 @@
#if ENABLE(SHARED_WORKERS)
#include "ExceptionCode.h"
+#include <wtf/Forward.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
@@ -43,7 +44,6 @@ namespace WebCore {
class KURL;
class MessagePortChannel;
class SharedWorker;
- class String;
// Interface to a repository which manages references to the set of active shared workers.
class SharedWorkerRepository {
diff --git a/WebCore/workers/Worker.h b/WebCore/workers/Worker.h
index 69ae92e..2470b71 100644
--- a/WebCore/workers/Worker.h
+++ b/WebCore/workers/Worker.h
@@ -37,6 +37,7 @@
#include "EventTarget.h"
#include "MessagePort.h"
#include "WorkerScriptLoaderClient.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -45,7 +46,6 @@
namespace WebCore {
class ScriptExecutionContext;
- class String;
class WorkerContextProxy;
class WorkerScriptLoader;
diff --git a/WebCore/workers/WorkerContext.idl b/WebCore/workers/WorkerContext.idl
index 902c985..27b4b14 100644
--- a/WebCore/workers/WorkerContext.idl
+++ b/WebCore/workers/WorkerContext.idl
@@ -50,9 +50,10 @@ module threads {
[Custom] void importScripts(/*[Variadic] in DOMString urls */);
attribute [Replaceable] WorkerNavigator navigator;
#if defined(ENABLE_DATABASE) && ENABLE_DATABASE
- [EnabledAtRuntime, Custom] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in DatabaseCallback creationCallback)
+ [EnabledAtRuntime, RequiresAllArguments=Raise] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
+ raises(DOMException);
+ [EnabledAtRuntime, RequiresAllArguments=Raise] DatabaseSync openDatabaseSync(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
raises(DOMException);
- [EnabledAtRuntime, Custom] DatabaseSync openDatabaseSync(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in DatabaseCallback creationCallback);
#endif
// Timers
diff --git a/WebCore/workers/WorkerContextProxy.h b/WebCore/workers/WorkerContextProxy.h
index e1ca139..4420c78 100644
--- a/WebCore/workers/WorkerContextProxy.h
+++ b/WebCore/workers/WorkerContextProxy.h
@@ -34,12 +34,12 @@
#if ENABLE(WORKERS)
#include "MessagePort.h"
+#include <wtf/Forward.h>
#include <wtf/PassOwnPtr.h>
namespace WebCore {
class KURL;
- class String;
class Worker;
// A proxy to talk to the worker context.
diff --git a/WebCore/workers/WorkerLoaderProxy.h b/WebCore/workers/WorkerLoaderProxy.h
index fe1bf51..219dab4 100644
--- a/WebCore/workers/WorkerLoaderProxy.h
+++ b/WebCore/workers/WorkerLoaderProxy.h
@@ -34,12 +34,11 @@
#if ENABLE(WORKERS)
#include "ScriptExecutionContext.h"
+#include <wtf/Forward.h>
#include <wtf/PassOwnPtr.h>
namespace WebCore {
- class String;
-
// A proxy to talk to the loader context. Normally, the document on the main thread
// provides loading services for the subordinate workers. This interface provides 2-way
// communications to the Document context and back to the worker.
diff --git a/WebCore/workers/WorkerLocation.h b/WebCore/workers/WorkerLocation.h
index 52c31ad..5200e35 100644
--- a/WebCore/workers/WorkerLocation.h
+++ b/WebCore/workers/WorkerLocation.h
@@ -30,14 +30,13 @@
#if ENABLE(WORKERS)
#include "KURL.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
namespace WebCore {
- class String;
-
class WorkerLocation : public RefCounted<WorkerLocation> {
public:
static PassRefPtr<WorkerLocation> create(const KURL& url)
diff --git a/WebCore/workers/WorkerMessagingProxy.h b/WebCore/workers/WorkerMessagingProxy.h
index 296fa42..33937ce 100644
--- a/WebCore/workers/WorkerMessagingProxy.h
+++ b/WebCore/workers/WorkerMessagingProxy.h
@@ -33,6 +33,7 @@
#include "WorkerContextProxy.h"
#include "WorkerLoaderProxy.h"
#include "WorkerObjectProxy.h"
+#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
@@ -43,7 +44,6 @@ namespace WebCore {
class DedicatedWorkerThread;
class ScriptExecutionContext;
- class String;
class Worker;
class WorkerMessagingProxy : public WorkerContextProxy, public WorkerObjectProxy, public WorkerLoaderProxy, public Noncopyable {
diff --git a/WebCore/workers/WorkerReportingProxy.h b/WebCore/workers/WorkerReportingProxy.h
index 063dc81..6a8fcef 100644
--- a/WebCore/workers/WorkerReportingProxy.h
+++ b/WebCore/workers/WorkerReportingProxy.h
@@ -33,12 +33,12 @@
#if ENABLE(WORKERS)
+#include <wtf/Forward.h>
+
#include "Console.h"
namespace WebCore {
- class String;
-
// APIs used by workers to report console activity.
class WorkerReportingProxy {
public:
diff --git a/WebCore/workers/WorkerThread.h b/WebCore/workers/WorkerThread.h
index cb33308..e44afce 100644
--- a/WebCore/workers/WorkerThread.h
+++ b/WebCore/workers/WorkerThread.h
@@ -30,6 +30,7 @@
#if ENABLE(WORKERS)
#include "WorkerRunLoop.h"
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -38,7 +39,6 @@ namespace WebCore {
class KURL;
class NotificationPresenter;
- class String;
class WorkerContext;
class WorkerLoaderProxy;
class WorkerReportingProxy;
diff --git a/WebCore/wscript b/WebCore/wscript
index bd058e4..58886aa 100644
--- a/WebCore/wscript
+++ b/WebCore/wscript
@@ -30,7 +30,7 @@ from settings import *
webcore_sources = {}
if build_port == "wx":
- webcore_sources['wx'] = ['platform/KillRingNone.cpp']
+ webcore_sources['wx'] = ['platform/KillRingNone.cpp', 'bindings/cpp/WebDOMEventTarget.cpp']
if building_on_win32:
# make sure platform/wx comes after this so we get the right
@@ -69,7 +69,6 @@ if build_port == "wx":
'platform/graphics/wx/FontPlatformDataWxMac.mm',
'platform/text/mac/ShapeArabic.c',
'platform/wx/wxcode/mac/carbon/fontprops.mm',
- 'plugins/wx/PluginDataWx.cpp',
'plugins/mac/PluginPackageMac.cpp',
'plugins/mac/PluginViewMac.mm'
]
@@ -137,8 +136,8 @@ def build(bld):
features = [build_port]
exclude_patterns = ['*AllInOne.cpp', '*Brew.cpp', '*CFNet.cpp', '*Chromium*.cpp',
- '*Gtk.cpp', '*Mac.cpp', '*None.cpp', '*Qt.cpp', '*Safari.cpp',
- 'test*bindings.*', '*Wince.cpp', "WebDOMSVG*.cpp"]
+ '*Efl.cpp', '*Gtk.cpp', '*Haiku.cpp', '*Mac.cpp', '*None.cpp', '*Qt.cpp', '*Safari.cpp',
+ 'test*bindings.*', '*Wince.cpp', "WebDOMCanvas*.cpp", "WebDOMSVG*.cpp"]
if build_port == 'wx':
features.append('curl')
if not building_on_win32:
@@ -188,13 +187,8 @@ def build(bld):
excludes = get_excludes(webcore_dir, exclude_patterns)
excludes.extend(['UserStyleSheetLoader.cpp', 'RenderMediaControls.cpp'])
-
- # FIXME: undo this once these classes are fully implemented
- excludes.append('SocketStreamErrorBase.cpp')
- excludes.append('SocketStreamHandleBase.cpp')
-
# intermediate sources
- excludes.append('CSSValueKeywords.c')
+ excludes.append('CSSValueKeywords.cpp')
excludes.append('CSSPropertyNames.cpp')
excludes.append('tokenizer.cpp')
@@ -222,13 +216,21 @@ def build(bld):
excludes.append('JSSVGTransformable.cpp')
excludes.append('JSSVGURIReference.cpp')
+ # These are C++ DOM Bindings that won't compile because they look for things not in trunk.
+ excludes.append('WebDOMEventTarget.cpp')
excludes.append('WebDOMAbstractView.cpp')
excludes.append('WebDOMBlobBuilder.cpp')
+ excludes.append('WebDOMDatabaseCallback.cpp')
excludes.append('WebDOMEventListenerCustom.cpp')
excludes.append('WebDOMElementTimeControl.cpp')
excludes.append('WebDOMImageData.cpp')
+ excludes.append('WebDOMInspectorBackend.cpp')
excludes.append('WebDOMScriptProfile.cpp')
excludes.append('WebDOMScriptProfileNode.cpp')
+ excludes.append('WebDOMSQLStatementCallback.cpp')
+ excludes.append('WebDOMSQLTransactionErrorCallback.cpp')
+ excludes.append('WebDOMSQLTransactionSyncCallback.cpp')
+ excludes.append('WebDOMSQLTransactionCallback.cpp')
excludes.append('WebNativeEventListener.cpp')
if building_on_win32:
diff --git a/WebCore/xml/DOMParser.h b/WebCore/xml/DOMParser.h
index 5036d22..744bae8 100644
--- a/WebCore/xml/DOMParser.h
+++ b/WebCore/xml/DOMParser.h
@@ -19,13 +19,12 @@
#ifndef DOMParser_h
#define DOMParser_h
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
#include "Document.h"
namespace WebCore {
- class String;
-
class DOMParser : public RefCounted<DOMParser> {
public:
static PassRefPtr<DOMParser> create() { return adoptRef(new DOMParser); }
diff --git a/WebCore/xml/XMLHttpRequest.h b/WebCore/xml/XMLHttpRequest.h
index ca308cc..363fdf8 100644
--- a/WebCore/xml/XMLHttpRequest.h
+++ b/WebCore/xml/XMLHttpRequest.h
@@ -164,7 +164,7 @@ private:
RefPtr<TextResourceDecoder> m_decoder;
- // Unlike most strings in the DOM, we keep this as a ScriptString, not a WebCore::String.
+ // Unlike most strings in the DOM, we keep this as a ScriptString, not a WTF::String.
// That's because these strings can easily get huge (they are filled from the network with
// no parsing) and because JS can easily observe many intermediate states, so it's very useful
// to be able to share the buffer with JavaScript versions of the whole or partial string.
diff --git a/WebCore/xml/XMLHttpRequestUpload.h b/WebCore/xml/XMLHttpRequestUpload.h
index 7640643..7a605fb 100644
--- a/WebCore/xml/XMLHttpRequestUpload.h
+++ b/WebCore/xml/XMLHttpRequestUpload.h
@@ -30,6 +30,7 @@
#include "EventListener.h"
#include "EventNames.h"
#include "EventTarget.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
@@ -38,7 +39,6 @@
namespace WebCore {
- class AtomicStringImpl;
class ScriptExecutionContext;
class XMLHttpRequest;
diff --git a/WebCore/xml/XPathEvaluator.h b/WebCore/xml/XPathEvaluator.h
index c8e456e..70322a4 100644
--- a/WebCore/xml/XPathEvaluator.h
+++ b/WebCore/xml/XPathEvaluator.h
@@ -29,6 +29,7 @@
#if ENABLE(XPATH)
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
#include <wtf/PassRefPtr.h>
@@ -37,7 +38,6 @@ namespace WebCore {
typedef int ExceptionCode;
class Node;
- class String;
class XPathExpression;
class XPathNSResolver;
class XPathResult;
diff --git a/WebCore/xml/XPathExpression.h b/WebCore/xml/XPathExpression.h
index a2b75d7..633ec80 100644
--- a/WebCore/xml/XPathExpression.h
+++ b/WebCore/xml/XPathExpression.h
@@ -29,6 +29,7 @@
#if ENABLE(XPATH)
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
#include <wtf/PassRefPtr.h>
@@ -37,7 +38,6 @@ namespace WebCore {
typedef int ExceptionCode;
class Node;
- class String;
class XPathNSResolver;
class XPathResult;
diff --git a/WebCore/xml/XPathNSResolver.h b/WebCore/xml/XPathNSResolver.h
index 04b5f80..7b7fd2e 100644
--- a/WebCore/xml/XPathNSResolver.h
+++ b/WebCore/xml/XPathNSResolver.h
@@ -29,12 +29,11 @@
#if ENABLE(XPATH)
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
namespace WebCore {
- class String;
-
class XPathNSResolver : public RefCounted<XPathNSResolver> {
public:
virtual ~XPathNSResolver();
diff --git a/WebCore/xml/XPathResult.h b/WebCore/xml/XPathResult.h
index 3b91d66..cbb51f5 100644
--- a/WebCore/xml/XPathResult.h
+++ b/WebCore/xml/XPathResult.h
@@ -30,6 +30,7 @@
#if ENABLE(XPATH)
#include "XPathValue.h"
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
namespace WebCore {
@@ -38,7 +39,6 @@ namespace WebCore {
class Document;
class Node;
- class String;
class XPathResult : public RefCounted<XPathResult> {
public:
diff --git a/WebCore/xml/XPathUtil.h b/WebCore/xml/XPathUtil.h
index 30f21ae..cfb34dc 100644
--- a/WebCore/xml/XPathUtil.h
+++ b/WebCore/xml/XPathUtil.h
@@ -29,12 +29,12 @@
#if ENABLE(XPATH)
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
namespace WebCore {
class Node;
- class String;
namespace XPath {
diff --git a/WebCore/xml/XSLTProcessor.cpp b/WebCore/xml/XSLTProcessor.cpp
index f949163..7e07ee3 100644
--- a/WebCore/xml/XSLTProcessor.cpp
+++ b/WebCore/xml/XSLTProcessor.cpp
@@ -100,7 +100,7 @@ static inline RefPtr<DocumentFragment> createFragmentFromSource(const String& so
RefPtr<DocumentFragment> fragment = outputDoc->createDocumentFragment();
if (sourceMIMEType == "text/html")
- fragment->parseHTML(sourceString);
+ fragment->parseHTML(sourceString, outputDoc->documentElement());
else if (sourceMIMEType == "text/plain")
fragment->legacyParserAddChild(Text::create(outputDoc, sourceString));
else {
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 75181e6..92976db 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,31 @@
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebKit.xcodeproj/project.pbxproj:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * WebKit.xcodeproj/project.pbxproj:
+
+2010-08-03 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by David Kilzer.
+
+ Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
+ https://bugs.webkit.org/show_bug.cgi?id=40627
+
+ Part 5 - Refactor Quota Management in WebSecurityOrigin into Managers
+
+ * WebKit.xcodeproj/project.pbxproj: Add new Quota Managers, remove old SecurityOrigin subclasses.
+
2010-07-31 David Kilzer <ddkilzer@apple.com>
<http://webkit.org/b/43307> Make sure all private headers are copied to PrivateHeaders directory
diff --git a/WebKit/WebKit.xcodeproj/project.pbxproj b/WebKit/WebKit.xcodeproj/project.pbxproj
index e447b7f..bad03b6 100644
--- a/WebKit/WebKit.xcodeproj/project.pbxproj
+++ b/WebKit/WebKit.xcodeproj/project.pbxproj
@@ -313,13 +313,14 @@
93EB178D09F88D460091F8FF /* WebSystemInterface.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93EB178C09F88D460091F8FF /* WebSystemInterface.mm */; };
93EB178F09F88D510091F8FF /* WebSystemInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 93EB178E09F88D510091F8FF /* WebSystemInterface.h */; };
93FDE9330D79CAF30074F029 /* WebHistoryInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 93FDE9320D79CAF30074F029 /* WebHistoryInternal.h */; };
+ A57E2F24120749E600048DF3 /* WebQuotaManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A57E2F22120749E600048DF3 /* WebQuotaManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
A5DEFC0A11D5331C00885273 /* WebSecurityOrigin.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5DEFC0711D5331C00885273 /* WebSecurityOrigin.mm */; };
A5DEFC0B11D5331C00885273 /* WebSecurityOriginInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DEFC0811D5331C00885273 /* WebSecurityOriginInternal.h */; };
A5DEFC0C11D5331C00885273 /* WebSecurityOriginPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DEFC0911D5331C00885273 /* WebSecurityOriginPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
- A5DEFC0F11D5343E00885273 /* WebDatabaseSecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DEFC0D11D5343E00885273 /* WebDatabaseSecurityOrigin.h */; };
- A5DEFC1011D5343E00885273 /* WebDatabaseSecurityOrigin.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5DEFC0E11D5343E00885273 /* WebDatabaseSecurityOrigin.mm */; };
- A5DEFC1311D5344B00885273 /* WebApplicationCacheSecurityOrigin.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DEFC1111D5344B00885273 /* WebApplicationCacheSecurityOrigin.h */; };
- A5DEFC1411D5344B00885273 /* WebApplicationCacheSecurityOrigin.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5DEFC1211D5344B00885273 /* WebApplicationCacheSecurityOrigin.mm */; };
+ A5DEFC0F11D5343E00885273 /* WebDatabaseQuotaManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DEFC0D11D5343E00885273 /* WebDatabaseQuotaManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ A5DEFC1011D5343E00885273 /* WebDatabaseQuotaManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5DEFC0E11D5343E00885273 /* WebDatabaseQuotaManager.mm */; };
+ A5DEFC1311D5344B00885273 /* WebApplicationCacheQuotaManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DEFC1111D5344B00885273 /* WebApplicationCacheQuotaManager.h */; };
+ A5DEFC1411D5344B00885273 /* WebApplicationCacheQuotaManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5DEFC1211D5344B00885273 /* WebApplicationCacheQuotaManager.mm */; };
A70936AF0B5608DC00CDB48E /* WebDragClient.h in Headers */ = {isa = PBXBuildFile; fileRef = A70936AD0B5608DC00CDB48E /* WebDragClient.h */; };
A70936B00B5608DC00CDB48E /* WebDragClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = A70936AE0B5608DC00CDB48E /* WebDragClient.mm */; };
A7D3C5BC0B5773C5002CA450 /* WebPasteboardHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D3C5BA0B5773C5002CA450 /* WebPasteboardHelper.h */; };
@@ -608,13 +609,14 @@
9CAE9D070252A4130ECA16EA /* WebPreferencesPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPreferencesPrivate.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
9CE1F8A302A5C6F30ECA2ACD /* WebImageRendererFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebImageRendererFactory.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
9CF0E249021361B00ECA16EA /* WebFramePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebFramePrivate.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+ A57E2F22120749E600048DF3 /* WebQuotaManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebQuotaManager.h; sourceTree = "<group>"; };
A5DEFC0711D5331C00885273 /* WebSecurityOrigin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebSecurityOrigin.mm; sourceTree = "<group>"; };
A5DEFC0811D5331C00885273 /* WebSecurityOriginInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSecurityOriginInternal.h; sourceTree = "<group>"; };
A5DEFC0911D5331C00885273 /* WebSecurityOriginPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSecurityOriginPrivate.h; sourceTree = "<group>"; };
- A5DEFC0D11D5343E00885273 /* WebDatabaseSecurityOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDatabaseSecurityOrigin.h; sourceTree = "<group>"; };
- A5DEFC0E11D5343E00885273 /* WebDatabaseSecurityOrigin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebDatabaseSecurityOrigin.mm; sourceTree = "<group>"; };
- A5DEFC1111D5344B00885273 /* WebApplicationCacheSecurityOrigin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebApplicationCacheSecurityOrigin.h; sourceTree = "<group>"; };
- A5DEFC1211D5344B00885273 /* WebApplicationCacheSecurityOrigin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebApplicationCacheSecurityOrigin.mm; sourceTree = "<group>"; };
+ A5DEFC0D11D5343E00885273 /* WebDatabaseQuotaManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDatabaseQuotaManager.h; sourceTree = "<group>"; };
+ A5DEFC0E11D5343E00885273 /* WebDatabaseQuotaManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebDatabaseQuotaManager.mm; sourceTree = "<group>"; };
+ A5DEFC1111D5344B00885273 /* WebApplicationCacheQuotaManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebApplicationCacheQuotaManager.h; sourceTree = "<group>"; };
+ A5DEFC1211D5344B00885273 /* WebApplicationCacheQuotaManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebApplicationCacheQuotaManager.mm; sourceTree = "<group>"; };
A70936AD0B5608DC00CDB48E /* WebDragClient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebDragClient.h; sourceTree = "<group>"; };
A70936AE0B5608DC00CDB48E /* WebDragClient.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = WebDragClient.mm; sourceTree = "<group>"; };
A7D3C5BA0B5773C5002CA450 /* WebPasteboardHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPasteboardHelper.h; sourceTree = "<group>"; };
@@ -969,6 +971,7 @@
F508946A02B71D59018A9CD4 /* WebNSViewExtras.m */,
9345DDAE0365FB27008635CE /* WebNSWindowExtras.h */,
9345DDAF0365FB27008635CE /* WebNSWindowExtras.m */,
+ A57E2F22120749E600048DF3 /* WebQuotaManager.h */,
F59668C802AD2923018635CA /* WebStringTruncator.h */,
F59668C902AD2923018635CA /* WebStringTruncator.mm */,
DD7CDEE60A23BA9E00069928 /* WebTypesInternal.h */,
@@ -1020,8 +1023,8 @@
511F3FD10CECC88F00852565 /* WebDatabaseManager.mm */,
51AEDEF00CECF45700854328 /* WebDatabaseManagerInternal.h */,
511F3FD20CECC88F00852565 /* WebDatabaseManagerPrivate.h */,
- A5DEFC0D11D5343E00885273 /* WebDatabaseSecurityOrigin.h */,
- A5DEFC0E11D5343E00885273 /* WebDatabaseSecurityOrigin.mm */,
+ A5DEFC0D11D5343E00885273 /* WebDatabaseQuotaManager.h */,
+ A5DEFC0E11D5343E00885273 /* WebDatabaseQuotaManager.mm */,
511F3FD30CECC88F00852565 /* WebDatabaseTrackerClient.h */,
511F3FD40CECC88F00852565 /* WebDatabaseTrackerClient.mm */,
);
@@ -1238,8 +1241,8 @@
children = (
B68049710FFBCEC1009F7F62 /* WebApplicationCache.h */,
B68049720FFBCEC1009F7F62 /* WebApplicationCache.mm */,
- A5DEFC1111D5344B00885273 /* WebApplicationCacheSecurityOrigin.h */,
- A5DEFC1211D5344B00885273 /* WebApplicationCacheSecurityOrigin.mm */,
+ A5DEFC1111D5344B00885273 /* WebApplicationCacheQuotaManager.h */,
+ A5DEFC1211D5344B00885273 /* WebApplicationCacheQuotaManager.mm */,
51CBFCAC0D10E6C5002DBF51 /* WebCachedFramePlatformData.h */,
14D8252D0AF955090004F057 /* WebChromeClient.h */,
14D8252E0AF955090004F057 /* WebChromeClient.mm */,
@@ -1569,8 +1572,9 @@
41F4484F10338E8C0030E55E /* WebWorkersPrivate.h in Headers */,
A5DEFC0B11D5331C00885273 /* WebSecurityOriginInternal.h in Headers */,
A5DEFC0C11D5331C00885273 /* WebSecurityOriginPrivate.h in Headers */,
- A5DEFC0F11D5343E00885273 /* WebDatabaseSecurityOrigin.h in Headers */,
- A5DEFC1311D5344B00885273 /* WebApplicationCacheSecurityOrigin.h in Headers */,
+ A5DEFC0F11D5343E00885273 /* WebDatabaseQuotaManager.h in Headers */,
+ A5DEFC1311D5344B00885273 /* WebApplicationCacheQuotaManager.h in Headers */,
+ A57E2F24120749E600048DF3 /* WebQuotaManager.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1612,6 +1616,7 @@
isa = PBXProject;
buildConfigurationList = 149C283208902B0F008A9EFC /* Build configuration list for PBXProject "WebKit" */;
compatibilityVersion = "Xcode 2.4";
+ developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
@@ -1930,8 +1935,8 @@
0FD3B0F91076C3F700039B96 /* WebWindowAnimation.m in Sources */,
41F4485010338E8C0030E55E /* WebWorkersPrivate.mm in Sources */,
A5DEFC0A11D5331C00885273 /* WebSecurityOrigin.mm in Sources */,
- A5DEFC1011D5343E00885273 /* WebDatabaseSecurityOrigin.mm in Sources */,
- A5DEFC1411D5344B00885273 /* WebApplicationCacheSecurityOrigin.mm in Sources */,
+ A5DEFC1011D5343E00885273 /* WebDatabaseQuotaManager.mm in Sources */,
+ A5DEFC1411D5344B00885273 /* WebApplicationCacheQuotaManager.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 9a33ade..1486694 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,700 @@
+2010-08-10 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: get rid of utility context
+ https://bugs.webkit.org/show_bug.cgi?id=43787
+
+ * public/WebDevToolsAgentClient.h:
+ * src/DebuggerAgentImpl.cpp:
+ * src/DebuggerAgentImpl.h:
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::):
+ (WebKit::WebDevToolsAgentImpl::~WebDevToolsAgentImpl):
+ (WebKit::WebDevToolsAgentImpl::attach):
+ (WebKit::WebDevToolsAgentImpl::detach):
+ (WebKit::WebDevToolsAgentImpl::frontendLoaded):
+ (WebKit::WebDevToolsAgentImpl::setRuntimeFeatureEnabled):
+ (WebKit::WebDevToolsAgentImpl::setApuAgentEnabled):
+ * src/WebDevToolsAgentImpl.h:
+
+2010-08-10 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector, Chromium: reloading of inspected page hits assert in InspectorController::enableDebuggerFromFrontend()
+ https://bugs.webkit.org/show_bug.cgi?id=43780
+
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::setRuntimeFeatureEnabled):
+
+2010-08-10 Hans Wennborg <hans@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Implement chromium WebDeviceOrientationClient wrapper and have WebViewImpl get it from WebViewClient.
+ https://bugs.webkit.org/show_bug.cgi?id=43258
+
+ Provide a DeviceOrientationClient to Page by means of a
+ DeviceOrientationClientProxy that proxies calls to
+ a WebDeviceOrientationClient, an interface that can be implemented
+ in the WebKit or Chromium layer. An implementation to be used for
+ layout tests, wrapping DeviceOrientationClientMock, is provided.
+
+
+ * WebKit.gyp:
+ * public/WebDeviceOrientation.h: Added.
+ (WebKit::WebDeviceOrientation::WebDeviceOrientation):
+ * public/WebDeviceOrientationClient.h: Added.
+ (WebKit::WebDeviceOrientationClient::~WebDeviceOrientationClient):
+ * public/WebDeviceOrientationClientMock.h: Added.
+ (WebKit::WebDeviceOrientationClientMock::WebDeviceOrientationClientMock):
+ (WebKit::WebDeviceOrientationClientMock::~WebDeviceOrientationClientMock):
+ * public/WebDeviceOrientationController.h: Added.
+ (WebKit::WebDeviceOrientationController::WebDeviceOrientationController):
+ * public/WebViewClient.h:
+ (WebKit::WebViewClient::deviceOrientationClient):
+ * src/DeviceOrientationClientProxy.cpp: Added.
+ (WebKit::DeviceOrientationClientProxy::setController):
+ (WebKit::DeviceOrientationClientProxy::startUpdating):
+ (WebKit::DeviceOrientationClientProxy::stopUpdating):
+ (WebKit::DeviceOrientationClientProxy::lastOrientation):
+ * src/DeviceOrientationClientProxy.h: Added.
+ (WebKit::DeviceOrientationClientProxy::DeviceOrientationClientProxy):
+ * src/WebDeviceOrientation.cpp: Added.
+ (WebKit::WebDeviceOrientation::WebDeviceOrientation):
+ (WebKit::WebDeviceOrientation::operator=):
+ (WebKit::WebDeviceOrientation::operator PassRefPtr<WebCore::DeviceOrientation>):
+ * src/WebDeviceOrientationClientMock.cpp: Added.
+ (WebKit::WebDeviceOrientationClientMock::setController):
+ (WebKit::WebDeviceOrientationClientMock::startUpdating):
+ (WebKit::WebDeviceOrientationClientMock::stopUpdating):
+ (WebKit::WebDeviceOrientationClientMock::lastOrientation):
+ (WebKit::WebDeviceOrientationClientMock::setOrientation):
+ (WebKit::WebDeviceOrientationClientMock::initialize):
+ (WebKit::WebDeviceOrientationClientMock::reset):
+ * src/WebDeviceOrientationController.cpp: Added.
+ (WebKit::WebDeviceOrientationController::didChangeDeviceOrientation):
+ (WebKit::WebDeviceOrientationController::controller):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebView::create):
+ (WebKit::WebViewImpl::WebViewImpl):
+ * src/WebViewImpl.h:
+
+2010-08-10 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64988.
+ http://trac.webkit.org/changeset/64988
+ https://bugs.webkit.org/show_bug.cgi?id=43775
+
+ "It seems to break chromium's ui_tests" (Requested by hamaji
+ on #webkit).
+
+ * public/WebFrameClient.h:
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::detachedFromParent3):
+
+2010-08-10 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Remove references to deleted header InspectorFrontend.h
+
+ * src/WebDevToolsAgentImpl.cpp:
+
+2010-08-10 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Fix Chromium compilation.
+
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::frontendLoaded):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative chromium build fix V.
+
+ * tests/KURLTest.cpp:
+ (ComponentCase::TEST):
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative chromium build fix IV.
+
+ * src/WebPageSerializerImpl.h:
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative chromium build fix II.
+
+ * src/AssertMatchingEnums.cpp:
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative chromium build fix.
+
+ * public/WebCString.h:
+
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * public/WebCString.h:
+ * public/WebString.h:
+ * src/DOMUtilitiesPrivate.h:
+ * src/DebuggerAgentImpl.h:
+ * src/DebuggerAgentManager.h:
+ * src/WebDevToolsAgentImpl.h:
+ * src/WebDevToolsFrontendImpl.h:
+ * src/WebPageSerializerImpl.h:
+
+2010-08-09 Vangelis Kokkevis <vangelis@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Skip the slow software rendering path of GraphicsContext3D if accelerated
+ compositing is active. This fixes an issue with WebGL and the compositor
+ in which the software rendering of WebGL would cause the current GL context
+ to change while the compositor was processing layers. Tested by running
+ several WebGL samples both with the compositor enabled and disabled.
+ https://bugs.webkit.org/show_bug.cgi?id=43644
+
+ * src/GraphicsContext3D.cpp:
+ (WebCore::GraphicsContext3DInternal::GraphicsContext3DInternal):
+ (WebCore::GraphicsContext3DInternal::initialize):
+ (WebCore::GraphicsContext3DInternal::beginPaint):
+
+2010-08-06 James Hawkins <jhawkins@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [Chromium] Notify the WebFrameClient when the frame is detached from
+ the view. This is used to clear the cached frame in the FormManager.
+ Eventually this will be removed once handling forms is moved into
+ WebCore.
+ https://bugs.webkit.org/show_bug.cgi?id=43648
+
+ * public/WebFrameClient.h:
+ (WebKit::WebFrameClient::frameDetached):
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::detachedFromParent3):
+
+2010-08-09 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: Chromium tests fix.
+
+ Chromium: provisional interactive ui tests fix.
+
+ * src/js/Tests.js:
+ (.TestSuite.prototype.testShowStoragePanel.this):
+ (.TestSuite.prototype.testShowStoragePanel):
+
+2010-08-09 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed. Chromium tests fix.
+
+ Disable runtime switch for device motion in chromium.
+ https://bugs.webkit.org/show_bug.cgi?id=43717
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebView::create):
+
+2010-08-09 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Chromium: Remove temporary device motion fix.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43713
+
+ * src/WebRuntimeFeatures.cpp:
+ (WebKit::WebRuntimeFeatures::enableDeviceOrientation):
+
+2010-08-07 Jay Civelli <jcivelli@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ Removed unecessary focus code.
+ https://bugs.webkit.org/show_bug.cgi?id=43542
+
+ * src/ChromiumBridge.cpp:
+
+2010-08-06 Victor Wang <victorw@chromium.org>
+
+ Reviewed by Kent Tamura.
+
+ [Chromium] Add dllimport/dllexport to WebSpeechInputControllerMock::create
+ so it works for windows dll build.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43627
+
+ * public/WebSpeechInputControllerMock.h:
+
+2010-08-06 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ Composited canvas should be treated the same by the compositor and not be WebGL specific
+ https://bugs.webkit.org/show_bug.cgi?id=43589
+
+ Initializes the platformLayer as a CanvasLayerChromium, not a WebGLLayerChromium.
+ The layer itself isn't WebGL-specific.
+
+ * src/GraphicsContext3D.cpp:
+ (WebCore::GraphicsContext3DInternal::initialize):
+ (WebCore::GraphicsContext3DInternal::platformLayer):
+ (WebCore::GraphicsContext3D::platformLayer):
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * public/WebCString.h:
+ * public/WebString.h:
+ * src/DOMUtilitiesPrivate.h:
+ * src/DebuggerAgentImpl.h:
+ * src/DebuggerAgentManager.h:
+ * src/WebDevToolsAgentImpl.h:
+ * src/WebDevToolsFrontendImpl.h:
+ * src/WebPageSerializerImpl.h:
+
+2010-08-06 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Chromium: disable device motion by default.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43623
+
+ * public/WebRuntimeFeatures.h:
+ * src/WebRuntimeFeatures.cpp:
+ (WebKit::WebRuntimeFeatures::enableDeviceMotion):
+ (WebKit::WebRuntimeFeatures::isDeviceMotionEnabled):
+ (WebKit::WebRuntimeFeatures::enableDeviceOrientation):
+
+2010-08-06 Kavita Kanetkar <kkanetkar@chromium.org>
+
+ Reviewed by Joseph Pecoraro.
+
+ Web Inspector: Remove "Online/Offline" icon for Chrome's appcache devtools UI.
+ https://bugs.webkit.org/show_bug.cgi?id=43450
+
+ * src/js/DevTools.js:
+ (WebInspector.loaded):
+
+2010-08-05 Marcus Bulach <bulach@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Initial bindings and plumbing for IDBCursor.
+ https://bugs.webkit.org/show_bug.cgi?id=41888
+
+ Test: storage/indexeddb/idb-opencursor.html
+
+ * WebKit.gyp:
+ * public/WebIDBCallbacks.h:
+ (WebKit::WebIDBCallbacks::onSuccess):
+ * public/WebIDBCursor.h: Added.
+ (WebKit::WebIDBCursor::~WebIDBCursor):
+ (WebKit::WebIDBCursor::direction):
+ (WebKit::WebIDBCursor::key):
+ (WebKit::WebIDBCursor::value):
+ (WebKit::WebIDBCursor::update):
+ (WebKit::WebIDBCursor::continueFunction):
+ (WebKit::WebIDBCursor::remove):
+ * public/WebIDBKeyRange.h: Added.
+ (WebKit::WebIDBKeyRange::~WebIDBKeyRange):
+ (WebKit::WebIDBKeyRange::WebIDBKeyRange):
+ * public/WebIDBObjectStore.h:
+ (WebKit::WebIDBObjectStore::openCursor):
+ * src/IDBCallbacksProxy.cpp:
+ (WebCore::IDBCallbacksProxy::onSuccess):
+ * src/IDBCallbacksProxy.h:
+ * src/IDBCursorBackendProxy.cpp: Added.
+ (WebCore::IDBCursorBackendProxy::create):
+ (WebCore::IDBCursorBackendProxy::IDBCursorBackendProxy):
+ (WebCore::IDBCursorBackendProxy::~IDBCursorBackendProxy):
+ (WebCore::IDBCursorBackendProxy::direction):
+ (WebCore::IDBCursorBackendProxy::key):
+ (WebCore::IDBCursorBackendProxy::value):
+ (WebCore::IDBCursorBackendProxy::update):
+ (WebCore::IDBCursorBackendProxy::continueFunction):
+ (WebCore::IDBCursorBackendProxy::remove):
+ * src/IDBCursorBackendProxy.h: Added.
+ * src/IDBObjectStoreProxy.cpp:
+ (WebCore::IDBObjectStoreProxy::openCursor):
+ * src/IDBObjectStoreProxy.h:
+ * src/WebIDBCallbacksImpl.cpp:
+ (WebCore::WebIDBCallbacksImpl::onSuccess):
+ * src/WebIDBCallbacksImpl.h:
+ * src/WebIDBCursorImpl.cpp: Added.
+ (WebKit::WebIDBCursorImpl::WebIDBCursorImpl):
+ (WebKit::WebIDBCursorImpl::~WebIDBCursorImpl):
+ (WebKit::WebIDBCursorImpl::direction):
+ (WebKit::WebIDBCursorImpl::key):
+ (WebKit::WebIDBCursorImpl::value):
+ (WebKit::WebIDBCursorImpl::update):
+ (WebKit::WebIDBCursorImpl::continueFunction):
+ (WebKit::WebIDBCursorImpl::remove):
+ * src/WebIDBCursorImpl.h: Added.
+ * src/WebIDBKeyRange.cpp: Added.
+ (WebKit::WebIDBKeyRange::WebIDBKeyRange):
+ (WebKit::WebIDBKeyRange::assign):
+ (WebKit::WebIDBKeyRange::reset):
+ (WebKit::WebIDBKeyRange::left):
+ (WebKit::WebIDBKeyRange::right):
+ (WebKit::WebIDBKeyRange::flags):
+ * src/WebIDBObjectStoreImpl.cpp:
+ (WebKit::WebIDBObjectStoreImpl::openCursor):
+ * src/WebIDBObjectStoreImpl.h:
+
+2010-08-05 Andrei Popescu <andreip@dhcp-172-16-14-12.lon.corp.google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ [IndexedDB] IndexedDB is missing the Transaction interface.
+ https://bugs.webkit.org/show_bug.cgi?id=42970
+
+ Add IDBTransaction boilerplate.
+
+ * src/IDBDatabaseProxy.cpp:
+ (WebCore::IDBDatabaseProxy::transaction):
+ * src/IDBDatabaseProxy.h:
+
+2010-08-05 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * public/WebCString.h:
+ * public/WebString.h:
+ * src/DOMUtilitiesPrivate.h:
+ * src/DebuggerAgentImpl.h:
+ * src/DebuggerAgentManager.h:
+ * src/WebDevToolsAgentImpl.h:
+ * src/WebDevToolsFrontendImpl.h:
+ * src/WebPageSerializerImpl.h:
+
+2010-08-05 Brett Wilson <brettw@chromium.org>
+
+ Reviewed by Nate Chapin.
+
+ Make the webkit unit tests depend on test_support_base
+ https://bugs.webkit.org/show_bug.cgi?id=43584
+
+ * WebKit.gyp:
+
+2010-08-04 Kenneth Russell <kbr@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Style cleanups in WebGL
+ https://bugs.webkit.org/show_bug.cgi?id=38761
+
+ Cleaned up all style violations in WebGL-related files reported by
+ check-webkit-style. No logic or other changes. Built WebKit and
+ Chromium and ran WebGL layout tests.
+
+ * src/GraphicsContext3D.cpp:
+ (WebCore::GraphicsContext3DInternal::paintRenderingResultsToCanvas):
+ * src/WebGraphicsContext3DDefaultImpl.cpp:
+ * src/WebGraphicsContext3DDefaultImpl.h:
+
+2010-08-05 Jian Li <jianli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Unify blob related feature defines to ENABLE(BLOB).
+ https://bugs.webkit.org/show_bug.cgi?id=43081
+
+ * features.gypi:
+ * src/WebHTTPBody.cpp:
+ (WebKit::WebHTTPBody::elementAt):
+ (WebKit::WebHTTPBody::appendFileRange):
+
+2010-08-05 Nico Weber <thakis@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Remove useless const on return-by-value (fixes a clang warning)
+ https://bugs.webkit.org/show_bug.cgi?id=43491
+
+ * src/WebInputEventConversion.cpp:
+ (WebKit::toPlatformKeyboardEventType):
+
+2010-08-05 Satish Sampath <satish@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Add speech input controller mock in WebKit and a layout test.
+ https://bugs.webkit.org/show_bug.cgi?id=43477
+
+ * WebKit.gyp:
+ * public/WebSpeechInputControllerMock.h: Added WebKit speech input controller mock interface.
+ * src/WebSpeechInputControllerMockImpl.cpp: Added implementation of the above mock.
+ (WebKit::WebSpeechInputControllerMockImpl::WebSpeechInputControllerMockImpl):
+ (WebKit::WebSpeechInputControllerMockImpl::setMockRecognitionResult):
+ (WebKit::WebSpeechInputControllerMockImpl::didCompleteRecording):
+ (WebKit::WebSpeechInputControllerMockImpl::didCompleteRecognition):
+ (WebKit::WebSpeechInputControllerMockImpl::setRecognitionResult):
+ (WebKit::WebSpeechInputControllerMockImpl::startRecognition):
+ (WebKit::WebSpeechInputControllerMockImpl::cancelRecognition):
+ (WebKit::WebSpeechInputControllerMockImpl::stopRecording):
+ (WebKit::WebSpeechInputControllerMock::create):
+
+2010-08-05 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Chromium DevTools: [REGRESSION] Frame navigation is not handled in devtools.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43556
+
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::):
+ (WebKit::WebDevToolsAgentImpl::detach):
+ (WebKit::WebDevToolsAgentImpl::frontendLoaded):
+ (WebKit::WebDevToolsAgentImpl::setRuntimeFeatureEnabled):
+
+2010-08-05 John Gregg <johnnyg@google.com>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] WebFileChooserParams should have default constructor
+ https://bugs.webkit.org/show_bug.cgi?id=43435
+
+ * public/WebFileChooserParams.h:
+ (WebKit::WebFileChooserParams::WebFileChooserParams):
+
+2010-08-05 Victoria Kirst <vrk@google.com>
+
+ Reviewed by David Levin.
+
+ Added a repaint request so that VideoLayerChromium does not have
+ a flickering problem when playing video.
+ https://bugs.webkit.org/show_bug.cgi?id=43101
+
+ * src/WebMediaPlayerClientImpl.cpp:
+ (WebKit::WebMediaPlayerClientImpl::repaint):
+
+2010-08-05 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ DevTools: get rid of delayed command dispatching on front-end side.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43479
+
+ * public/WebDevToolsFrontendClient.h:
+ (WebKit::WebDevToolsFrontendClient::sendFrontendLoaded):
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::attach):
+ (WebKit::WebDevToolsAgentImpl::frontendLoaded):
+ * src/WebDevToolsAgentImpl.h:
+ * src/WebDevToolsFrontendImpl.cpp:
+ (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):
+ (WebKit::WebDevToolsFrontendImpl::frontendLoaded):
+ * src/WebDevToolsFrontendImpl.h:
+ * src/js/DevTools.js:
+ (WebInspector.doLoadedDone):
+ * src/js/Tests.js:
+ (.uiTests.runTest):
+ (.):
+
+2010-08-02 Kenneth Russell <kbr@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Port Chromium's accelerated compositing to Mac OS X
+ https://bugs.webkit.org/show_bug.cgi?id=43398
+
+ * public/WebGLES2Context.h:
+ - Added resizeOnscreenContent, needed on Mac OS X to report
+ window size changes.
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::resize):
+ - Send resize notification to the WebGLES2Context.
+ (WebKit::WebViewImpl::updateRootLayerContents):
+ - Ported to Core Graphics.
+ (WebKit::WebViewImpl::gles2Context):
+ - Added initial size notification upon context creation.
+
+2010-08-04 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ DevTools: get rid of delayed command dispatching on front-end side.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43479
+
+ * public/WebDevToolsAgent.h:
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::frontendLoaded):
+ * src/WebDevToolsAgentImpl.h:
+
+2010-08-03 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Move WebGL-specific code out of GraphicsContext3D so that G3D can be used as a generic accelerated drawing API
+ https://bugs.webkit.org/show_bug.cgi?id=43221
+
+ Implements functions in term of Platform3DObjects instead of WebGL types.
+
+ * src/GraphicsContext3D.cpp:
+ (WebCore::GraphicsContext3DInternal::paintRenderingResultsToCanvas):
+ (WebCore::GraphicsContext3DInternal::beginPaint):
+ (WebCore::GraphicsContext3DInternal::bindAttribLocation):
+ (WebCore::GraphicsContext3DInternal::getActiveAttrib):
+ (WebCore::GraphicsContext3DInternal::getActiveUniform):
+ (WebCore::GraphicsContext3DInternal::getAttribLocation):
+ (WebCore::GraphicsContext3DInternal::getProgramInfoLog):
+ (WebCore::GraphicsContext3DInternal::getShaderInfoLog):
+ (WebCore::GraphicsContext3DInternal::getShaderSource):
+ (WebCore::GraphicsContext3DInternal::getUniformLocation):
+ (WebCore::GraphicsContext3DInternal::shaderSource):
+
+2010-08-03 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Unreviewed, build fix.
+
+ Roll chromium to 54723 to unbreak the builds.
+
+ * DEPS:
+
+2010-08-03 Andrei Popescu <andreip@google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ [IndexedDB] IDBObjectStoreRequest should be called IDBObjectStore
+ https://bugs.webkit.org/show_bug.cgi?id=43420
+
+ * src/IDBCallbacksProxy.cpp:
+ (WebCore::IDBCallbacksProxy::onSuccess):
+ * src/IDBCallbacksProxy.h:
+ * src/IDBDatabaseProxy.cpp:
+ (WebCore::IDBDatabaseProxy::objectStore):
+ * src/IDBDatabaseProxy.h:
+ * src/IDBObjectStoreProxy.cpp:
+ (WebCore::IDBObjectStoreProxy::create):
+ * src/IDBObjectStoreProxy.h:
+ * src/WebIDBObjectStoreImpl.cpp:
+ (WebKit::WebIDBObjectStoreImpl::WebIDBObjectStoreImpl):
+ * src/WebIDBObjectStoreImpl.h:
+
+2010-08-03 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Fix Chromium interactive UI tests.
+
+ * src/js/Tests.js:
+ (.TestSuite.prototype.testResourceHeaders):
+
+2010-07-30 Andrei Popescu <andreip@dhcp-172-16-14-12.lon.corp.google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ Rename IDBDatabaseRequest to IDBDatabase
+ https://bugs.webkit.org/show_bug.cgi?id=43250
+
+ * src/IDBCallbacksProxy.cpp:
+ (WebCore::IDBCallbacksProxy::onSuccess):
+ * src/IDBCallbacksProxy.h:
+ * src/IDBDatabaseProxy.cpp:
+ (WebCore::IDBDatabaseProxy::create):
+ * src/IDBDatabaseProxy.h:
+ * src/WebIDBDatabaseImpl.cpp:
+ (WebKit::WebIDBDatabaseImpl::WebIDBDatabaseImpl):
+ (WebKit::WebIDBDatabaseImpl::name):
+ (WebKit::WebIDBDatabaseImpl::description):
+ (WebKit::WebIDBDatabaseImpl::version):
+ (WebKit::WebIDBDatabaseImpl::objectStores):
+ (WebKit::WebIDBDatabaseImpl::createObjectStore):
+ (WebKit::WebIDBDatabaseImpl::objectStore):
+ (WebKit::WebIDBDatabaseImpl::removeObjectStore):
+ * src/WebIDBDatabaseImpl.h:
+
+2010-08-02 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Chromium DevTools: Get rid of DevTools RPC.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43335
+
+ * WebKit.gyp:
+ * public/WebDevToolsAgent.h:
+ * public/WebDevToolsAgentClient.h:
+ (WebKit::WebDevToolsAgentClient::sendMessageToInspectorFrontend):
+ (WebKit::WebDevToolsAgentClient::sendDebuggerOutput):
+ (WebKit::WebDevToolsAgentClient::sendDispatchToAPU):
+ * public/WebDevToolsFrontend.h:
+ * public/WebDevToolsFrontendClient.h:
+ (WebKit::WebDevToolsFrontendClient::sendMessageToBackend):
+ * public/WebDevToolsMessageData.h: Removed.
+ * public/WebDevToolsMessageTransport.h: Removed.
+ * src/APUAgentDelegate.h: Removed.
+ * src/DebuggerAgent.h: Removed.
+ * src/DebuggerAgentImpl.cpp:
+ (WebKit::DebuggerAgentImpl::DebuggerAgentImpl):
+ (WebKit::DebuggerAgentImpl::debuggerOutput):
+ * src/DebuggerAgentImpl.h:
+ * src/DebuggerAgentManager.cpp:
+ (WebKit::DebuggerAgentManager::debugDetach):
+ (WebKit::DebuggerAgentManager::onV8DebugMessage):
+ (WebKit::DebuggerAgentManager::executeDebuggerCommand):
+ (WebKit::DebuggerAgentManager::sendCommandToV8):
+ (WebKit::DebuggerAgentManager::sendContinueCommandToV8):
+ * src/DevToolsRPC.h: Removed.
+ * src/DevToolsRPCJS.h: Removed.
+ * src/InspectorClientImpl.cpp:
+ * src/InspectorFrontendClientImpl.cpp:
+ (WebKit::InspectorFrontendClientImpl::sendMessageToBackend):
+ * src/ProfilerAgent.h: Removed.
+ * src/ProfilerAgentImpl.cpp: Removed.
+ * src/ProfilerAgentImpl.h: Removed.
+ * src/ToolsAgent.h: Removed.
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::):
+ (WebKit::WebDevToolsAgentImpl::WebDevToolsAgentImpl):
+ (WebKit::WebDevToolsAgentImpl::attach):
+ (WebKit::WebDevToolsAgentImpl::didClearWindowObject):
+ (WebKit::WebDevToolsAgentImpl::dispatchOnInspectorBackend):
+ (WebKit::WebDevToolsAgentImpl::jsDispatchOnClient):
+ (WebKit::WebDevToolsAgentImpl::sendMessageToFrontend):
+ * src/WebDevToolsAgentImpl.h:
+ * src/WebDevToolsFrontendImpl.cpp:
+ (WebKit::WebDevToolsFrontendImpl::WebDevToolsFrontendImpl):
+ (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):
+ (WebKit::WebDevToolsFrontendImpl::frontendLoaded):
+ (WebKit::WebDevToolsFrontendImpl::executeScript):
+ * src/WebDevToolsFrontendImpl.h:
+ * src/js/DevTools.js:
+ (devtools.dispatch):
+ (devtools.ToolsAgent):
+ * src/js/DevToolsHostStub.js:
+ * src/js/ProfilerAgent.js:
+ (devtools.ProfilerAgent):
+ (devtools.ProfilerAgent.prototype._getNextLogLines.else.delayedRequest):
+ (devtools.ProfilerAgent.prototype._getNextLogLines):
+ (devtools.ProfilerAgent.prototype._didGetProfilerLogLines):
+ * src/js/ProfilerProcessor.js:
+ (devtools.profiler.Processor.prototype.printError):
+
+2010-08-02 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [DRT/Chromium] Remove dependencies to some Chromium headers
+ https://bugs.webkit.org/show_bug.cgi?id=43396
+
+ * DEPS: Update Chromium revision to 54649 in order to have a
+ webkit_support change (r54646)
+
2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Darin Fisher.
diff --git a/WebKit/chromium/DEPS b/WebKit/chromium/DEPS
index 7c7d7e7..d7afc77 100644
--- a/WebKit/chromium/DEPS
+++ b/WebKit/chromium/DEPS
@@ -32,7 +32,7 @@
vars = {
'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
- 'chromium_rev': '53434',
+ 'chromium_rev': '54723',
}
deps = {
diff --git a/WebKit/chromium/WebKit.gyp b/WebKit/chromium/WebKit.gyp
index 10f01e5..eb5abbe 100644
--- a/WebKit/chromium/WebKit.gyp
+++ b/WebKit/chromium/WebKit.gyp
@@ -142,8 +142,10 @@
'public/WebDevToolsAgentClient.h',
'public/WebDevToolsFrontend.h',
'public/WebDevToolsFrontendClient.h',
- 'public/WebDevToolsMessageData.h',
- 'public/WebDevToolsMessageTransport.h',
+ 'public/WebDeviceOrientation.h',
+ 'public/WebDeviceOrientationClient.h',
+ 'public/WebDeviceOrientationClientMock.h',
+ 'public/WebDeviceOrientationController.h',
'public/WebDocument.h',
'public/WebDocumentType.h',
'public/WebDragData.h',
@@ -176,9 +178,11 @@
'public/WebImage.h',
'public/WebImageDecoder.h',
'public/WebIDBCallbacks.h',
+ 'public/WebIDBCursor.h',
'public/WebIDBDatabase.h',
'public/WebIDBDatabaseError.h',
'public/WebIDBFactory.h',
+ 'public/WebIDBKeyRange.h',
'public/WebIDBIndex.h',
'public/WebIDBKey.h',
'public/WebIDBObjectStore.h',
@@ -242,6 +246,7 @@
'public/WebSocketStreamHandle.h',
'public/WebSocketStreamHandleClient.h',
'public/WebSpeechInputController.h',
+ 'public/WebSpeechInputControllerMock.h',
'public/WebSpeechInputListener.h',
'public/WebStorageArea.h',
'public/WebStorageEventDispatcher.h',
@@ -271,7 +276,6 @@
'public/win/WebSandboxSupport.h',
'public/win/WebScreenInfoFactory.h',
'public/win/WebScreenInfoFactory.h',
- 'src/APUAgentDelegate.h',
'src/ApplicationCacheHost.cpp',
'src/ApplicationCacheHostInternal.h',
'src/AssertMatchingEnums.cpp',
@@ -292,13 +296,12 @@
'src/ContextMenuClientImpl.cpp',
'src/ContextMenuClientImpl.h',
'src/DatabaseObserver.cpp',
- 'src/DebuggerAgent.h',
'src/DebuggerAgentImpl.cpp',
'src/DebuggerAgentImpl.h',
'src/DebuggerAgentManager.cpp',
'src/DebuggerAgentManager.h',
- 'src/DevToolsRPC.h',
- 'src/DevToolsRPCJS.h',
+ 'src/DeviceOrientationClientProxy.cpp',
+ 'src/DeviceOrientationClientProxy.h',
'src/DOMUtilitiesPrivate.cpp',
'src/DOMUtilitiesPrivate.h',
'src/DragClientImpl.cpp',
@@ -319,6 +322,8 @@
'src/gtk/WebInputEventFactory.cpp',
'src/IDBCallbacksProxy.cpp',
'src/IDBCallbacksProxy.h',
+ 'src/IDBCursorBackendProxy.cpp',
+ 'src/IDBCursorBackendProxy.h',
'src/IDBDatabaseProxy.cpp',
'src/IDBDatabaseProxy.h',
'src/IDBFactoryBackendProxy.cpp',
@@ -343,9 +348,6 @@
'src/NotificationPresenterImpl.cpp',
'src/PlatformMessagePortChannel.cpp',
'src/PlatformMessagePortChannel.h',
- 'src/ProfilerAgent.h',
- 'src/ProfilerAgentImpl.cpp',
- 'src/ProfilerAgentImpl.h',
'src/ResourceHandle.cpp',
'src/SharedWorkerRepository.cpp',
'src/SocketStreamHandle.cpp',
@@ -359,7 +361,6 @@
'src/StorageNamespaceProxy.cpp',
'src/StorageNamespaceProxy.h',
'src/TemporaryGlue.h',
- 'src/ToolsAgent.h',
'src/WebAccessibilityCache.cpp',
'src/WebAccessibilityCacheImpl.cpp',
'src/WebAccessibilityCacheImpl.h',
@@ -383,6 +384,9 @@
'src/WebDevToolsAgentImpl.h',
'src/WebDevToolsFrontendImpl.cpp',
'src/WebDevToolsFrontendImpl.h',
+ 'src/WebDeviceOrientation.cpp',
+ 'src/WebDeviceOrientationClientMock.cpp',
+ 'src/WebDeviceOrientationController.cpp',
'src/WebDocument.cpp',
'src/WebDocumentType.cpp',
'src/WebDragData.cpp',
@@ -414,6 +418,8 @@
'src/WebHTTPBody.cpp',
'src/WebIDBCallbacksImpl.cpp',
'src/WebIDBCallbacksImpl.h',
+ 'src/WebIDBCursorImpl.cpp',
+ 'src/WebIDBCursorImpl.h',
'src/WebIDBDatabaseError.cpp',
'src/WebIDBDatabaseImpl.cpp',
'src/WebIDBDatabaseImpl.h',
@@ -422,6 +428,7 @@
'src/WebIDBIndexImpl.cpp',
'src/WebIDBIndexImpl.h',
'src/WebIDBKey.cpp',
+ 'src/WebIDBKeyRange.cpp',
'src/WebIDBObjectStoreImpl.cpp',
'src/WebIDBObjectStoreImpl.h',
'src/WebImageCG.cpp',
@@ -473,6 +480,8 @@
'src/WebSettingsImpl.h',
'src/WebSharedWorkerImpl.cpp',
'src/WebSharedWorkerImpl.h',
+ 'src/WebSpeechInputControllerMockImpl.cpp',
+ 'src/WebSpeechInputControllerMockImpl.h',
'src/WebStorageAreaImpl.cpp',
'src/WebStorageAreaImpl.h',
'src/WebStorageEventDispatcherImpl.cpp',
@@ -695,6 +704,7 @@
'<(chromium_src_dir)/testing/gtest.gyp:gtest',
'<(chromium_src_dir)/base/base.gyp:base',
'<(chromium_src_dir)/base/base.gyp:base_i18n',
+ '<(chromium_src_dir)/base/base.gyp:test_support_base',
'<(chromium_src_dir)/gpu/gpu.gyp:gles2_c_lib',
],
'include_dirs': [
diff --git a/WebKit/chromium/features.gypi b/WebKit/chromium/features.gypi
index 559ebd8..9b758f9 100644
--- a/WebKit/chromium/features.gypi
+++ b/WebKit/chromium/features.gypi
@@ -40,7 +40,7 @@
# features_override.gypi inline documentation for more details.
'feature_defines%': [
'ENABLE_3D_CANVAS=1',
- 'ENABLE_BLOB_SLICE=1',
+ 'ENABLE_BLOB=1',
'ENABLE_CHANNEL_MESSAGING=1',
'ENABLE_DASHBOARD_SUPPORT=0',
'ENABLE_DATABASE=1',
@@ -49,7 +49,6 @@
'ENABLE_DIRECTORY_UPLOAD=1',
'ENABLE_DOM_STORAGE=1',
'ENABLE_EVENTSOURCE=1',
- 'ENABLE_FILE_READER=1',
'ENABLE_FILE_WRITER=1',
'ENABLE_FILE_SYSTEM=1',
'ENABLE_FILTERS=1',
diff --git a/WebKit/chromium/public/WebCString.h b/WebKit/chromium/public/WebCString.h
index 2c1e137..0320eb6 100644
--- a/WebKit/chromium/public/WebCString.h
+++ b/WebKit/chromium/public/WebCString.h
@@ -34,11 +34,15 @@
#include "WebCommon.h"
#if WEBKIT_IMPLEMENTATION
-namespace WTF { class CString; }
+#include <wtf/Forward.h>
#else
#include <string>
#endif
+namespace WTF {
+class CString;
+}
+
namespace WebKit {
class WebCStringPrivate;
diff --git a/WebKit/chromium/public/WebDevToolsAgent.h b/WebKit/chromium/public/WebDevToolsAgent.h
index 0e26cc9..4fd1cbd 100644
--- a/WebKit/chromium/public/WebDevToolsAgent.h
+++ b/WebKit/chromium/public/WebDevToolsAgent.h
@@ -51,10 +51,11 @@ public:
virtual void attach() = 0;
virtual void detach() = 0;
+ virtual void frontendLoaded() = 0;
virtual void didNavigate() = 0;
- virtual void dispatchMessageFromFrontend(const WebDevToolsMessageData&) = 0;
+ virtual void dispatchOnInspectorBackend(const WebString& message) = 0;
virtual void inspectElementAt(const WebPoint&) = 0;
@@ -72,8 +73,6 @@ public:
// Asynchronously request debugger to pause immediately.
WEBKIT_API static void debuggerPauseScript();
- WEBKIT_API static bool dispatchMessageFromFrontendOnIOThread(WebDevToolsMessageTransport*, const WebDevToolsMessageData&);
-
typedef void (*MessageLoopDispatchHandler)();
// Installs dispatch handle that is going to be called periodically
diff --git a/WebKit/chromium/public/WebDevToolsAgentClient.h b/WebKit/chromium/public/WebDevToolsAgentClient.h
index 91fd3e8..ec013ac 100644
--- a/WebKit/chromium/public/WebDevToolsAgentClient.h
+++ b/WebKit/chromium/public/WebDevToolsAgentClient.h
@@ -40,7 +40,9 @@ struct WebDevToolsMessageData;
class WebDevToolsAgentClient {
public:
- virtual void sendMessageToFrontend(const WebDevToolsMessageData&) { }
+ virtual void sendMessageToInspectorFrontend(const WebString&) { }
+ virtual void sendDebuggerOutput(const WebString&) { }
+ virtual void sendDispatchToAPU(const WebString&) { }
// Invalidates widget which leads to the repaint.
virtual void forceRepaint() { }
@@ -52,7 +54,6 @@ public:
virtual void runtimeFeatureStateChanged(const WebString& feature, bool enabled) { }
virtual WebCString injectedScriptSource() { return WebCString(); }
- virtual WebCString injectedScriptDispatcherSource() { return WebCString(); }
virtual WebCString debuggerScriptSource() { return WebCString(); }
class WebKitClientMessageLoop {
diff --git a/WebKit/chromium/public/WebDevToolsFrontend.h b/WebKit/chromium/public/WebDevToolsFrontend.h
index d95f35a..0325f92 100644
--- a/WebKit/chromium/public/WebDevToolsFrontend.h
+++ b/WebKit/chromium/public/WebDevToolsFrontend.h
@@ -38,7 +38,6 @@ namespace WebKit {
class WebDevToolsFrontendClient;
class WebString;
class WebView;
-struct WebDevToolsMessageData;
// WebDevToolsFrontend represents DevTools client sitting in the Glue. It provides
// direct and delegate Apis to the host.
@@ -50,7 +49,7 @@ public:
virtual ~WebDevToolsFrontend() {}
- virtual void dispatchMessageFromAgent(const WebDevToolsMessageData&) = 0;
+ virtual void dispatchOnInspectorFrontend(const WebString&) = 0;
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebDevToolsFrontendClient.h b/WebKit/chromium/public/WebDevToolsFrontendClient.h
index 159a3cd..df34dc5 100644
--- a/WebKit/chromium/public/WebDevToolsFrontendClient.h
+++ b/WebKit/chromium/public/WebDevToolsFrontendClient.h
@@ -40,7 +40,8 @@ class WebDevToolsFrontendClient {
public:
WebDevToolsFrontendClient() { }
- virtual void sendMessageToAgent(const WebDevToolsMessageData&) { }
+ virtual void sendFrontendLoaded() { }
+ virtual void sendMessageToBackend(const WebString&) { }
virtual void sendDebuggerCommandToAgent(const WebString& command) { }
virtual void sendDebuggerPauseScript() { }
diff --git a/WebKit/chromium/public/WebDevToolsMessageData.h b/WebKit/chromium/public/WebDevToolsMessageData.h
deleted file mode 100644
index 9bf9acd..0000000
--- a/WebKit/chromium/public/WebDevToolsMessageData.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WebDevToolsMessageData_h
-#define WebDevToolsMessageData_h
-
-#include "WebCommon.h"
-#include "WebString.h"
-#include "WebVector.h"
-
-namespace WebKit {
-
-struct WebDevToolsMessageData {
- WebString className;
- WebString methodName;
- WebVector<WebString> arguments;
-};
-
-} // namespace WebKit
-
-#endif
diff --git a/WebKit/chromium/public/WebDeviceOrientation.h b/WebKit/chromium/public/WebDeviceOrientation.h
new file mode 100644
index 0000000..7e8aa72
--- /dev/null
+++ b/WebKit/chromium/public/WebDeviceOrientation.h
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebDeviceOrientation_h
+#define WebDeviceOrientation_h
+
+#if WEBKIT_IMPLEMENTATION
+namespace WTF { template <typename T> class PassRefPtr; }
+namespace WebCore { class DeviceOrientation; }
+#endif
+
+namespace WebKit {
+
+class WebDeviceOrientation {
+public:
+ WebDeviceOrientation(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma)
+ : m_isNull(false),
+ m_canProvideAlpha(canProvideAlpha),
+ m_alpha(alpha),
+ m_canProvideBeta(canProvideBeta),
+ m_beta(beta),
+ m_canProvideGamma(canProvideGamma),
+ m_gamma(gamma)
+ {
+ }
+
+ static WebDeviceOrientation nullOrientation() { return WebDeviceOrientation(); }
+
+ bool isNull() { return m_isNull; }
+ bool canProvideAlpha() { return m_canProvideAlpha; }
+ double alpha() { return m_alpha; }
+ bool canProvideBeta() { return m_canProvideBeta; }
+ double beta() { return m_beta; }
+ bool canProvideGamma() { return m_canProvideGamma; }
+ double gamma() { return m_gamma; }
+
+#if WEBKIT_IMPLEMENTATION
+ WebDeviceOrientation(const WTF::PassRefPtr<WebCore::DeviceOrientation>&);
+ WebDeviceOrientation& operator=(const WTF::PassRefPtr<WebCore::DeviceOrientation>&);
+ operator WTF::PassRefPtr<WebCore::DeviceOrientation>() const;
+#endif
+
+private:
+ WebDeviceOrientation()
+ : m_isNull(true),
+ m_canProvideAlpha(false),
+ m_alpha(0),
+ m_canProvideBeta(false),
+ m_beta(0),
+ m_canProvideGamma(false),
+ m_gamma(0)
+ {
+ }
+
+ bool m_isNull;
+ bool m_canProvideAlpha;
+ double m_alpha;
+ bool m_canProvideBeta;
+ double m_beta;
+ bool m_canProvideGamma;
+ double m_gamma;
+};
+
+} // namespace WebKit
+
+#endif // WebDeviceOrientation_h
diff --git a/WebKit/chromium/public/WebDeviceOrientationClient.h b/WebKit/chromium/public/WebDeviceOrientationClient.h
new file mode 100644
index 0000000..4df8665
--- /dev/null
+++ b/WebKit/chromium/public/WebDeviceOrientationClient.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebDeviceOrientationClient_h
+#define WebDeviceOrientationClient_h
+
+namespace WebKit {
+
+class WebDeviceOrientation;
+class WebDeviceOrientationController;
+
+class WebDeviceOrientationClient {
+public:
+ virtual ~WebDeviceOrientationClient() {}
+
+ virtual void setController(WebDeviceOrientationController*) = 0;
+ virtual void startUpdating() = 0;
+ virtual void stopUpdating() = 0;
+
+ virtual WebDeviceOrientation lastOrientation() const = 0;
+};
+
+} // namespace WebKit
+
+#endif // WebDeviceOrientationClient_h
diff --git a/WebKit/chromium/public/WebDeviceOrientationClientMock.h b/WebKit/chromium/public/WebDeviceOrientationClientMock.h
new file mode 100644
index 0000000..fce964b
--- /dev/null
+++ b/WebKit/chromium/public/WebDeviceOrientationClientMock.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebDeviceOrientationClientMock_h
+#define WebDeviceOrientationClientMock_h
+
+#include "WebCommon.h"
+#include "WebDeviceOrientationClient.h"
+
+namespace WebCore { class DeviceOrientationClientMock; }
+
+namespace WebKit {
+
+class WebDeviceOrientationClientMock : public WebDeviceOrientationClient {
+public:
+ WebDeviceOrientationClientMock() { initialize(); }
+ ~WebDeviceOrientationClientMock() { reset(); }
+
+ virtual void setController(WebDeviceOrientationController*);
+ virtual void startUpdating();
+ virtual void stopUpdating();
+ virtual WebDeviceOrientation lastOrientation() const;
+
+ WEBKIT_API void setOrientation(WebDeviceOrientation&);
+
+private:
+ WEBKIT_API void initialize();
+ WEBKIT_API void reset();
+
+ WebCore::DeviceOrientationClientMock* m_clientMock;
+};
+
+} // namespace WebKit
+
+#endif // WebDeviceOrientationClientMock_h
diff --git a/WebKit/chromium/public/WebDeviceOrientationController.h b/WebKit/chromium/public/WebDeviceOrientationController.h
new file mode 100644
index 0000000..ef843ee
--- /dev/null
+++ b/WebKit/chromium/public/WebDeviceOrientationController.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebDeviceOrientationController_h
+#define WebDeviceOrientationController_h
+
+#include "WebCommon.h"
+
+namespace WebCore { class DeviceOrientationController; }
+
+namespace WebKit {
+
+class WebDeviceOrientation;
+
+class WebDeviceOrientationController {
+public:
+ WebDeviceOrientationController(WebCore::DeviceOrientationController* c)
+ : m_controller(c)
+ {
+ }
+
+ WEBKIT_API void didChangeDeviceOrientation(const WebDeviceOrientation&);
+
+#if WEBKIT_IMPLEMENTATION
+ WebCore::DeviceOrientationController* controller() const;
+#endif
+
+private:
+ WebCore::DeviceOrientationController* m_controller;
+};
+
+} // namespace WebKit
+
+#endif // WebDeviceOrientationController_h
diff --git a/WebKit/chromium/public/WebFileChooserParams.h b/WebKit/chromium/public/WebFileChooserParams.h
index 2a30944..8e56d70 100644
--- a/WebKit/chromium/public/WebFileChooserParams.h
+++ b/WebKit/chromium/public/WebFileChooserParams.h
@@ -59,6 +59,12 @@ struct WebFileChooserParams {
// - replacing with other files
// before opening a file chooser dialog.
WebVector<WebString> selectedFiles;
+
+ WebFileChooserParams()
+ : multiSelect(false)
+ , directory(false)
+ {
+ }
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebGLES2Context.h b/WebKit/chromium/public/WebGLES2Context.h
index c67faf2..45184aa 100644
--- a/WebKit/chromium/public/WebGLES2Context.h
+++ b/WebKit/chromium/public/WebGLES2Context.h
@@ -58,6 +58,12 @@ public:
// Returns the ID of the texture used for offscreen rendering in the context of the parent.
virtual unsigned getOffscreenContentParentTextureId() = 0;
+
+ // The following function is used only on Mac OS X and is needed
+ // in order to report window size changes.
+#if defined(__APPLE__)
+ virtual void resizeOnscreenContent(const WebSize&) = 0;
+#endif
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebIDBCallbacks.h b/WebKit/chromium/public/WebIDBCallbacks.h
index cee8612..2e2c4d2 100644
--- a/WebKit/chromium/public/WebIDBCallbacks.h
+++ b/WebKit/chromium/public/WebIDBCallbacks.h
@@ -30,6 +30,7 @@
namespace WebKit {
+class WebIDBCursor;
class WebIDBDatabase;
class WebIDBDatabaseError;
class WebIDBKey;
@@ -45,6 +46,7 @@ public:
// For the rest, pass ownership to the callee via a pointer.
virtual void onError(const WebIDBDatabaseError&) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onSuccess() { WEBKIT_ASSERT_NOT_REACHED(); } // For "null".
+ virtual void onSuccess(WebIDBCursor*) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onSuccess(WebIDBDatabase*) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onSuccess(const WebIDBKey&) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onSuccess(WebIDBIndex*) { WEBKIT_ASSERT_NOT_REACHED(); }
diff --git a/WebKit/chromium/public/WebIDBCursor.h b/WebKit/chromium/public/WebIDBCursor.h
new file mode 100644
index 0000000..27eb924
--- /dev/null
+++ b/WebKit/chromium/public/WebIDBCursor.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebIDBCursor_h
+#define WebIDBCursor_h
+
+#include "WebCommon.h"
+#include "WebIDBCallbacks.h"
+#include "WebIDBKey.h"
+#include "WebSerializedScriptValue.h"
+#include "WebString.h"
+
+namespace WebKit {
+
+// See comment in WebIndexedDatabase for a high level overview these classes.
+class WebIDBCursor {
+public:
+ virtual ~WebIDBCursor() { }
+
+ virtual unsigned short direction() const
+ {
+ WEBKIT_ASSERT_NOT_REACHED();
+ return 0;
+ }
+
+ virtual WebIDBKey key() const
+ {
+ WEBKIT_ASSERT_NOT_REACHED();
+ return WebIDBKey("");
+ }
+
+ virtual WebSerializedScriptValue value() const
+ {
+ WEBKIT_ASSERT_NOT_REACHED();
+ return WebSerializedScriptValue();
+ }
+
+ virtual void update(const WebSerializedScriptValue&, WebIDBCallbacks*)
+ {
+ WEBKIT_ASSERT_NOT_REACHED();
+ }
+
+ virtual void continueFunction(const WebIDBKey&, WebIDBCallbacks*)
+ {
+ WEBKIT_ASSERT_NOT_REACHED();
+ }
+
+ virtual void remove(WebIDBCallbacks*)
+ {
+ WEBKIT_ASSERT_NOT_REACHED();
+ }
+};
+
+} // namespace WebKit
+
+#endif // WebIDBCursor_h
diff --git a/WebKit/chromium/public/WebIDBKeyRange.h b/WebKit/chromium/public/WebIDBKeyRange.h
new file mode 100644
index 0000000..82953ce
--- /dev/null
+++ b/WebKit/chromium/public/WebIDBKeyRange.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebIDBKeyRange_h
+#define WebIDBKeyRange_h
+
+#include "WebCommon.h"
+#include "WebPrivatePtr.h"
+
+namespace WebCore { class IDBKeyRange; }
+
+namespace WebKit {
+
+class WebIDBKey;
+class WebString;
+
+class WebIDBKeyRange {
+public:
+ ~WebIDBKeyRange() { reset(); }
+
+ WebIDBKeyRange(const WebIDBKeyRange& keyRange) { assign(keyRange); }
+ WebIDBKeyRange(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags) { assign(left, right, flags); }
+
+ WEBKIT_API WebIDBKey left() const;
+ WEBKIT_API WebIDBKey right() const;
+ WEBKIT_API unsigned short flags() const;
+
+ WEBKIT_API void assign(const WebIDBKeyRange&);
+ WEBKIT_API void assign(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags);
+ WEBKIT_API void reset();
+
+#if WEBKIT_IMPLEMENTATION
+ WebIDBKeyRange(const WTF::PassRefPtr<WebCore::IDBKeyRange>&);
+ WebIDBKeyRange& operator=(const WTF::PassRefPtr<WebCore::IDBKeyRange>&);
+ operator WTF::PassRefPtr<WebCore::IDBKeyRange>() const;
+#endif
+
+private:
+ WebPrivatePtr<WebCore::IDBKeyRange> m_private;
+};
+
+} // namespace WebKit
+
+#endif // WebIDBKeyRange_h
diff --git a/WebKit/chromium/public/WebIDBObjectStore.h b/WebKit/chromium/public/WebIDBObjectStore.h
index fb81fb9..7452be9 100755
--- a/WebKit/chromium/public/WebIDBObjectStore.h
+++ b/WebKit/chromium/public/WebIDBObjectStore.h
@@ -33,6 +33,8 @@
namespace WebKit {
+class WebIDBKeyRange;
+
// See comment in WebIndexedDatabase for a high level overview these classes.
class WebIDBObjectStore {
public:
@@ -79,6 +81,10 @@ public:
{
WEBKIT_ASSERT_NOT_REACHED();
}
+ virtual void openCursor(const WebIDBKeyRange&, unsigned short direction, WebIDBCallbacks*)
+ {
+ WEBKIT_ASSERT_NOT_REACHED();
+ }
// FIXME: finish.
};
diff --git a/WebKit/chromium/public/WebRuntimeFeatures.h b/WebKit/chromium/public/WebRuntimeFeatures.h
index 517aad5..9aa1f4f 100644
--- a/WebKit/chromium/public/WebRuntimeFeatures.h
+++ b/WebKit/chromium/public/WebRuntimeFeatures.h
@@ -77,6 +77,9 @@ public:
WEBKIT_API static void enableTouch(bool);
WEBKIT_API static bool isTouchEnabled();
+ WEBKIT_API static void enableDeviceMotion(bool);
+ WEBKIT_API static bool isDeviceMotionEnabled();
+
WEBKIT_API static void enableDeviceOrientation(bool);
WEBKIT_API static bool isDeviceOrientationEnabled();
diff --git a/WebKit/chromium/public/WebDevToolsMessageTransport.h b/WebKit/chromium/public/WebSpeechInputControllerMock.h
index 54c07f1..9a26235 100644
--- a/WebKit/chromium/public/WebDevToolsMessageTransport.h
+++ b/WebKit/chromium/public/WebSpeechInputControllerMock.h
@@ -28,19 +28,23 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef WebDevToolsMessageTransport_h
-#define WebDevToolsMessageTransport_h
+#ifndef WebSpeechInputControllerMock_h
+#define WebSpeechInputControllerMock_h
-#include "WebCString.h"
-#include "WebCommon.h"
+#include "WebSpeechInputController.h"
namespace WebKit {
-struct WebDevToolsMessageData;
-class WebDevToolsMessageTransport {
+class WebString;
+class WebSpeechInputListener;
+
+class WebSpeechInputControllerMock : public WebSpeechInputController {
public:
- virtual ~WebDevToolsMessageTransport() { }
- virtual void sendMessageToFrontendOnIOThread(const WebDevToolsMessageData&) = 0;
+ WEBKIT_API static WebSpeechInputControllerMock* create(
+ WebSpeechInputListener* listener);
+ virtual ~WebSpeechInputControllerMock() { }
+
+ virtual void setMockRecognitionResult(const WebString& result) = 0;
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebString.h b/WebKit/chromium/public/WebString.h
index 2c9664e..4d5e502 100644
--- a/WebKit/chromium/public/WebString.h
+++ b/WebKit/chromium/public/WebString.h
@@ -34,10 +34,7 @@
#include "WebCommon.h"
#if WEBKIT_IMPLEMENTATION
-namespace WebCore {
-class String;
-class AtomicString;
-}
+#include <wtf/Forward.h>
#else
#include <base/nullable_string16.h>
#include <base/string16.h>
@@ -102,13 +99,13 @@ public:
}
#if WEBKIT_IMPLEMENTATION
- WebString(const WebCore::String&);
- WebString& operator=(const WebCore::String&);
- operator WebCore::String() const;
+ WebString(const WTF::String&);
+ WebString& operator=(const WTF::String&);
+ operator WTF::String() const;
- WebString(const WebCore::AtomicString&);
- WebString& operator=(const WebCore::AtomicString&);
- operator WebCore::AtomicString() const;
+ WebString(const WTF::AtomicString&);
+ WebString& operator=(const WTF::AtomicString&);
+ operator WTF::AtomicString() const;
#else
WebString(const string16& s) : m_private(0)
diff --git a/WebKit/chromium/public/WebViewClient.h b/WebKit/chromium/public/WebViewClient.h
index 4628c2f..c64418b 100644
--- a/WebKit/chromium/public/WebViewClient.h
+++ b/WebKit/chromium/public/WebViewClient.h
@@ -44,6 +44,7 @@
namespace WebKit {
class WebAccessibilityObject;
+class WebDeviceOrientationClient;
class WebDragData;
class WebElement;
class WebFileChooserCompletion;
@@ -341,6 +342,11 @@ public:
virtual WebSpeechInputController* speechInputController(
WebSpeechInputListener*) { return 0; }
+ // Device Orientation --------------------------------------------------
+
+ // Access the embedder API for device orientation services.
+ virtual WebDeviceOrientationClient* deviceOrientationClient() { return 0; }
+
protected:
~WebViewClient() { }
};
diff --git a/WebKit/chromium/src/APUAgentDelegate.h b/WebKit/chromium/src/APUAgentDelegate.h
deleted file mode 100644
index 70be702..0000000
--- a/WebKit/chromium/src/APUAgentDelegate.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef APUAgentDelegate_h
-#define APUAgentDelegate_h
-
-#include "DevToolsRPC.h"
-
-namespace WebKit {
-
-#define APU_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, MEHTOD4, METHOD5) \
- /* Sends a json object to apu. */ \
- METHOD1(dispatchToApu, String /* data */)
-
-DEFINE_RPC_CLASS(ApuAgentDelegate, APU_AGENT_DELEGATE_STRUCT)
-
-} // namespace WebKit
-
-#endif
diff --git a/WebKit/chromium/src/AssertMatchingEnums.cpp b/WebKit/chromium/src/AssertMatchingEnums.cpp
index 093ac11..bcd7931 100644
--- a/WebKit/chromium/src/AssertMatchingEnums.cpp
+++ b/WebKit/chromium/src/AssertMatchingEnums.cpp
@@ -69,6 +69,12 @@
#define COMPILE_ASSERT_MATCHING_ENUM(webkit_name, webcore_name) \
COMPILE_ASSERT(int(WebKit::webkit_name) == int(WebCore::webcore_name), mismatching_enums)
+// These constants are in WTF, bring them into WebCore so the ASSERT still works for them!
+namespace WebCore {
+ using WTF::TextCaseSensitive;
+ using WTF::TextCaseInsensitive;
+};
+
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleUnknown, UnknownRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleButton, ButtonRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleRadioButton, RadioButtonRole);
diff --git a/WebKit/chromium/src/AutoFillPopupMenuClient.h b/WebKit/chromium/src/AutoFillPopupMenuClient.h
index 223cf16..a946e34 100644
--- a/WebKit/chromium/src/AutoFillPopupMenuClient.h
+++ b/WebKit/chromium/src/AutoFillPopupMenuClient.h
@@ -73,11 +73,11 @@ public:
virtual void valueChanged(unsigned listIndex, bool fireEvents = true);
virtual void selectionChanged(unsigned, bool);
virtual void selectionCleared();
- virtual WebCore::String itemText(unsigned listIndex) const;
- virtual WebCore::String itemLabel(unsigned listIndex) const;
- virtual WebCore::String itemIcon(unsigned listIndex) const;
- virtual WebCore::String itemToolTip(unsigned lastIndex) const { return WebCore::String(); }
- virtual WebCore::String itemAccessibilityText(unsigned lastIndex) const { return WebCore::String(); }
+ virtual WTF::String itemText(unsigned listIndex) const;
+ virtual WTF::String itemLabel(unsigned listIndex) const;
+ virtual WTF::String itemIcon(unsigned listIndex) const;
+ virtual WTF::String itemToolTip(unsigned lastIndex) const { return WTF::String(); }
+ virtual WTF::String itemAccessibilityText(unsigned lastIndex) const { return WTF::String(); }
virtual bool itemIsEnabled(unsigned listIndex) const { return true; }
virtual WebCore::PopupMenuStyle itemStyle(unsigned listIndex) const;
virtual WebCore::PopupMenuStyle menuStyle() const;
@@ -131,9 +131,9 @@ private:
void setSelectedIndex(int index) { m_selectedIndex = index; }
// The names, labels and icons that make up the contents of the menu items.
- Vector<WebCore::String> m_names;
- Vector<WebCore::String> m_labels;
- Vector<WebCore::String> m_icons;
+ Vector<WTF::String> m_names;
+ Vector<WTF::String> m_labels;
+ Vector<WTF::String> m_icons;
Vector<int> m_uniqueIDs;
// The index of the separator. -1 if there is no separator.
diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp
index 2a5c32e..405fbf6 100644
--- a/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -616,7 +616,7 @@ void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileCh
chooserCompletion->didChooseFile(WebVector<WebString>());
}
-void ChromeClientImpl::chooseIconForFiles(const Vector<WebCore::String>&, WebCore::FileChooser*)
+void ChromeClientImpl::chooseIconForFiles(const Vector<WTF::String>&, WebCore::FileChooser*)
{
notImplemented();
}
diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h
index 7f3febf..8763def 100644
--- a/WebKit/chromium/src/ChromeClientImpl.h
+++ b/WebKit/chromium/src/ChromeClientImpl.h
@@ -86,18 +86,18 @@ public:
virtual void setResizable(bool);
virtual void addMessageToConsole(
WebCore::MessageSource, WebCore::MessageType, WebCore::MessageLevel,
- const WebCore::String& message, unsigned lineNumber,
- const WebCore::String& sourceID);
+ const WTF::String& message, unsigned lineNumber,
+ const WTF::String& sourceID);
virtual bool canRunBeforeUnloadConfirmPanel();
virtual bool runBeforeUnloadConfirmPanel(
- const WebCore::String& message, WebCore::Frame*);
+ const WTF::String& message, WebCore::Frame*);
virtual void closeWindowSoon();
- virtual void runJavaScriptAlert(WebCore::Frame*, const WebCore::String&);
- virtual bool runJavaScriptConfirm(WebCore::Frame*, const WebCore::String&);
+ virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&);
+ virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&);
virtual bool runJavaScriptPrompt(
- WebCore::Frame*, const WebCore::String& message,
- const WebCore::String& defaultValue, WebCore::String& result);
- virtual void setStatusbarText(const WebCore::String& message);
+ WebCore::Frame*, const WTF::String& message,
+ const WTF::String& defaultValue, WTF::String& result);
+ virtual void setStatusbarText(const WTF::String& message);
virtual bool shouldInterruptJavaScript();
virtual bool tabsToLinks() const;
virtual WebCore::IntRect windowResizerRect() const;
@@ -116,10 +116,10 @@ public:
virtual void scrollbarsModeDidChange() const;
virtual void mouseDidMoveOverElement(
const WebCore::HitTestResult& result, unsigned modifierFlags);
- virtual void setToolTip(const WebCore::String& tooltipText, WebCore::TextDirection);
+ virtual void setToolTip(const WTF::String& tooltipText, WebCore::TextDirection);
virtual void print(WebCore::Frame*);
virtual void exceededDatabaseQuota(
- WebCore::Frame*, const WebCore::String& databaseName);
+ WebCore::Frame*, const WTF::String& databaseName);
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
virtual void reachedMaxAppCacheSize(int64_t spaceNeeded);
virtual void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*);
@@ -130,7 +130,7 @@ public:
virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*);
virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*);
virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
- virtual void chooseIconForFiles(const Vector<WebCore::String>&, WebCore::FileChooser*);
+ virtual void chooseIconForFiles(const Vector<WTF::String>&, WebCore::FileChooser*);
virtual void setCursor(const WebCore::Cursor&) { }
virtual void formStateDidChange(const WebCore::Node*);
virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks() { return 0; }
diff --git a/WebKit/chromium/src/ChromiumBridge.cpp b/WebKit/chromium/src/ChromiumBridge.cpp
index 397ea17..a43109c 100644
--- a/WebKit/chromium/src/ChromiumBridge.cpp
+++ b/WebKit/chromium/src/ChromiumBridge.cpp
@@ -862,13 +862,6 @@ void ChromiumBridge::widgetSetCursor(Widget* widget, const Cursor& cursor)
client->setCursor(WebCursorInfo(cursor));
}
-void ChromiumBridge::widgetSetFocus(Widget* widget)
-{
- ChromeClientImpl* client = toChromeClientImpl(widget);
- if (client)
- client->focus();
-}
-
WorkerContextProxy* WorkerContextProxy::create(Worker* worker)
{
return WebWorkerClientImpl::createWorkerContextProxy(worker);
diff --git a/WebKit/chromium/src/ContextMenuClientImpl.h b/WebKit/chromium/src/ContextMenuClientImpl.h
index 4191fad..97ea967 100644
--- a/WebKit/chromium/src/ContextMenuClientImpl.h
+++ b/WebKit/chromium/src/ContextMenuClientImpl.h
@@ -51,7 +51,7 @@ public:
virtual void lookUpInDictionary(WebCore::Frame*) {}
virtual void searchWithGoogle(const WebCore::Frame*) {}
virtual bool shouldIncludeInspectElementItem() { return false; }
- virtual void speak(const WebCore::String&) {}
+ virtual void speak(const WTF::String&) {}
virtual void stopSpeaking() {}
private:
void populateCustomMenuItems(WebCore::ContextMenu*, WebContextMenuData*);
diff --git a/WebKit/chromium/src/DOMUtilitiesPrivate.h b/WebKit/chromium/src/DOMUtilitiesPrivate.h
index 253ab3f..f5d03a5 100644
--- a/WebKit/chromium/src/DOMUtilitiesPrivate.h
+++ b/WebKit/chromium/src/DOMUtilitiesPrivate.h
@@ -31,6 +31,8 @@
#ifndef DOMUtilitiesPrivate_h
#define DOMUtilitiesPrivate_h
+#include <wtf/Forward.h>
+
namespace WebCore {
class Element;
class HTMLInputElement;
@@ -39,7 +41,6 @@ class HTMLMetaElement;
class HTMLOptionElement;
class Node;
class QualifiedName;
-class String;
}
// This file is an aggregate of useful WebCore operations.
@@ -53,7 +54,7 @@ WebCore::HTMLMetaElement* toHTMLMetaElement(WebCore::Node*);
WebCore::HTMLOptionElement* toHTMLOptionElement(WebCore::Node*);
// FIXME: Deprecate. Use WebInputElement::nameForAutofill instead.
-WebCore::String nameOfInputElement(WebCore::HTMLInputElement*);
+WTF::String nameOfInputElement(WebCore::HTMLInputElement*);
// For img, script, iframe, frame element, when attribute name is src,
// for link, a, area element, when attribute name is href,
diff --git a/WebKit/chromium/src/DebuggerAgent.h b/WebKit/chromium/src/DebuggerAgent.h
deleted file mode 100644
index 17cde11..0000000
--- a/WebKit/chromium/src/DebuggerAgent.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef DebuggerAgent_h
-#define DebuggerAgent_h
-
-#include "DevToolsRPC.h"
-
-namespace WebKit {
-
-#define DEBUGGER_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
- /* Requests global context id of the inspected tab. */ \
- METHOD0(getContextId) \
- \
- /* Request v8 to process all debug commands in the queue. */ \
- METHOD0(processDebugCommands)
-
-DEFINE_RPC_CLASS(DebuggerAgent, DEBUGGER_AGENT_STRUCT)
-
-#define DEBUGGER_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
- METHOD1(debuggerOutput, String /* output text */) \
- \
- /* Pushes debugger context id into the client. */ \
- METHOD1(setContextId, int /* context id */)
-
-DEFINE_RPC_CLASS(DebuggerAgentDelegate, DEBUGGER_AGENT_DELEGATE_STRUCT)
-
-} // namespace WebKit
-
-#endif
diff --git a/WebKit/chromium/src/DebuggerAgentImpl.cpp b/WebKit/chromium/src/DebuggerAgentImpl.cpp
index dde9e1d..46c6e7c 100644
--- a/WebKit/chromium/src/DebuggerAgentImpl.cpp
+++ b/WebKit/chromium/src/DebuggerAgentImpl.cpp
@@ -32,32 +32,21 @@
#include "DebuggerAgentImpl.h"
#include "DebuggerAgentManager.h"
-#include "Document.h"
-#include "Frame.h"
-#include "Page.h"
-#include "ScriptDebugServer.h"
-#include "V8Binding.h"
+#include "WebDevToolsAgentClient.h"
#include "WebDevToolsAgentImpl.h"
#include "WebViewImpl.h"
-#include <wtf/HashSet.h>
-#include <wtf/RefPtr.h>
-#include <wtf/Vector.h>
-using WebCore::DOMWindow;
-using WebCore::Document;
-using WebCore::Frame;
-using WebCore::Page;
-using WebCore::String;
+using WTF::String;
namespace WebKit {
DebuggerAgentImpl::DebuggerAgentImpl(
WebViewImpl* webViewImpl,
- DebuggerAgentDelegate* delegate,
- WebDevToolsAgentImpl* webdevtoolsAgent)
+ WebDevToolsAgentImpl* webdevtoolsAgent,
+ WebDevToolsAgentClient* webdevtoolsAgentClient)
: m_webViewImpl(webViewImpl)
- , m_delegate(delegate)
, m_webdevtoolsAgent(webdevtoolsAgent)
+ , m_webdevtoolsAgentClient(webdevtoolsAgentClient)
, m_autoContinueOnException(false)
{
DebuggerAgentManager::debugAttach(this);
@@ -68,75 +57,12 @@ DebuggerAgentImpl::~DebuggerAgentImpl()
DebuggerAgentManager::debugDetach(this);
}
-void DebuggerAgentImpl::getContextId()
-{
- m_delegate->setContextId(m_webdevtoolsAgent->hostId());
-}
-
-void DebuggerAgentImpl::processDebugCommands()
-{
- DebuggerAgentManager::UtilityContextScope utilityScope;
- v8::Debug::ProcessDebugMessages();
-}
-
void DebuggerAgentImpl::debuggerOutput(const String& command)
{
- m_delegate->debuggerOutput(command);
+ m_webdevtoolsAgentClient->sendDebuggerOutput(command);
m_webdevtoolsAgent->forceRepaint();
}
-String DebuggerAgentImpl::executeUtilityFunction(
- v8::Handle<v8::Context> context,
- int callId,
- const char* object,
- const String &functionName,
- const String& jsonArgs,
- bool async,
- String* exception)
-{
- v8::HandleScope scope;
- ASSERT(!context.IsEmpty());
- if (context.IsEmpty()) {
- *exception = "No window context.";
- return "";
- }
- v8::Context::Scope contextScope(context);
-
- DebuggerAgentManager::UtilityContextScope utilityScope;
-
- v8::Handle<v8::Object> dispatchObject = v8::Handle<v8::Object>::Cast(
- context->Global()->Get(v8::String::New(object)));
-
- v8::Handle<v8::Value> dispatchFunction = dispatchObject->Get(v8::String::New("dispatch"));
- ASSERT(dispatchFunction->IsFunction());
- v8::Handle<v8::Function> function = v8::Handle<v8::Function>::Cast(dispatchFunction);
-
- v8::Handle<v8::String> functionNameWrapper = v8::Handle<v8::String>(
- v8::String::New(functionName.utf8().data()));
- v8::Handle<v8::String> jsonArgsWrapper = v8::Handle<v8::String>(
- v8::String::New(jsonArgs.utf8().data()));
- v8::Handle<v8::Number> callIdWrapper = v8::Handle<v8::Number>(
- v8::Number::New(async ? callId : 0));
-
- v8::Handle<v8::Value> args[] = {
- functionNameWrapper,
- jsonArgsWrapper,
- callIdWrapper
- };
-
- v8::TryCatch tryCatch;
- v8::Handle<v8::Value> resObj = function->Call(context->Global(), 3, args);
- if (tryCatch.HasCaught()) {
- v8::Local<v8::Message> message = tryCatch.Message();
- if (message.IsEmpty())
- *exception = "Unknown exception";
- else
- *exception = WebCore::toWebCoreString(message->Get());
- return "";
- }
- return WebCore::toWebCoreStringWithNullCheck(resObj);
-}
-
WebCore::Page* DebuggerAgentImpl::page()
{
return m_webViewImpl->page();
diff --git a/WebKit/chromium/src/DebuggerAgentImpl.h b/WebKit/chromium/src/DebuggerAgentImpl.h
index 0e6e6af..a8fcc4e 100644
--- a/WebKit/chromium/src/DebuggerAgentImpl.h
+++ b/WebKit/chromium/src/DebuggerAgentImpl.h
@@ -31,55 +31,31 @@
#ifndef DebuggerAgentImpl_h
#define DebuggerAgentImpl_h
-#include "DebuggerAgent.h"
-
-#include <v8.h>
-#include <wtf/HashSet.h>
-#include <wtf/Noncopyable.h>
+#include <wtf/Forward.h>
namespace WebCore {
-class Document;
-class Frame;
-class Node;
class Page;
-class String;
}
namespace WebKit {
+class WebDevToolsAgentClient;
class WebDevToolsAgentImpl;
class WebViewImpl;
-class DebuggerAgentImpl : public DebuggerAgent {
+class DebuggerAgentImpl {
public:
DebuggerAgentImpl(WebKit::WebViewImpl* webViewImpl,
- DebuggerAgentDelegate* delegate,
- WebDevToolsAgentImpl* webdevtoolsAgent);
+ WebDevToolsAgentImpl* webdevtoolsAgent,
+ WebDevToolsAgentClient* webdevtoolsAgentClient);
virtual ~DebuggerAgentImpl();
- // DebuggerAgent implementation.
- virtual void getContextId();
- virtual void processDebugCommands();
-
- void debuggerOutput(const WebCore::String& out);
+ void debuggerOutput(const WTF::String& out);
void setAutoContinueOnException(bool autoContinue) { m_autoContinueOnException = autoContinue; }
bool autoContinueOnException() { return m_autoContinueOnException; }
- // Executes function with the given name in the utility context. Passes node
- // and json args as parameters. Note that the function called must be
- // implemented in the inject_dispatch.js file.
- WebCore::String executeUtilityFunction(
- v8::Handle<v8::Context> context,
- int callId,
- const char* object,
- const WebCore::String& functionName,
- const WebCore::String& jsonArgs,
- bool async,
- WebCore::String* exception);
-
-
WebCore::Page* page();
WebDevToolsAgentImpl* webdevtoolsAgent() { return m_webdevtoolsAgent; }
@@ -87,8 +63,8 @@ public:
private:
WebKit::WebViewImpl* m_webViewImpl;
- DebuggerAgentDelegate* m_delegate;
WebDevToolsAgentImpl* m_webdevtoolsAgent;
+ WebDevToolsAgentClient* m_webdevtoolsAgentClient;
bool m_autoContinueOnException;
};
diff --git a/WebKit/chromium/src/DebuggerAgentManager.cpp b/WebKit/chromium/src/DebuggerAgentManager.cpp
index 1cc6740..1df7172 100644
--- a/WebKit/chromium/src/DebuggerAgentManager.cpp
+++ b/WebKit/chromium/src/DebuggerAgentManager.cpp
@@ -157,7 +157,7 @@ void DebuggerAgentManager::debugDetach(DebuggerAgentImpl* debuggerAgent)
}
} else {
// Remove all breakpoints set by the agent.
- String clearBreakpointGroupCmd = String::format(
+ WTF::String clearBreakpointGroupCmd = WTF::String::format(
"{\"seq\":1,\"type\":\"request\",\"command\":\"clearbreakpointgroup\","
"\"arguments\":{\"groupId\":%d}}",
hostId);
@@ -176,7 +176,7 @@ void DebuggerAgentManager::onV8DebugMessage(const v8::Debug::Message& message)
{
v8::HandleScope scope;
v8::String::Value value(message.GetJSON());
- String out(reinterpret_cast<const UChar*>(*value), value.length());
+ WTF::String out(reinterpret_cast<const UChar*>(*value), value.length());
// If callerData is not 0 the message is a response to a debugger command.
if (v8::Debug::ClientData* callerData = message.GetClientData()) {
@@ -248,7 +248,7 @@ void DebuggerAgentManager::pauseScript()
v8::Debug::DebugBreak();
}
-void DebuggerAgentManager::executeDebuggerCommand(const String& command, int callerId)
+void DebuggerAgentManager::executeDebuggerCommand(const WTF::String& command, int callerId)
{
sendCommandToV8(command, new CallerIdWrapper(callerId));
}
@@ -286,14 +286,14 @@ void DebuggerAgentManager::onNavigate()
DebuggerAgentManager::sendContinueCommandToV8();
}
-void DebuggerAgentManager::sendCommandToV8(const String& cmd, v8::Debug::ClientData* data)
+void DebuggerAgentManager::sendCommandToV8(const WTF::String& cmd, v8::Debug::ClientData* data)
{
v8::Debug::SendCommand(reinterpret_cast<const uint16_t*>(cmd.characters()), cmd.length(), data);
}
void DebuggerAgentManager::sendContinueCommandToV8()
{
- String continueCmd("{\"seq\":1,\"type\":\"request\",\"command\":\"continue\"}");
+ WTF::String continueCmd("{\"seq\":1,\"type\":\"request\",\"command\":\"continue\"}");
sendCommandToV8(continueCmd, new CallerIdWrapper());
}
diff --git a/WebKit/chromium/src/DebuggerAgentManager.h b/WebKit/chromium/src/DebuggerAgentManager.h
index dbb600a..300cada 100644
--- a/WebKit/chromium/src/DebuggerAgentManager.h
+++ b/WebKit/chromium/src/DebuggerAgentManager.h
@@ -34,6 +34,7 @@
#include "WebCString.h"
#include "WebDevToolsAgent.h"
#include <v8-debug.h>
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/Noncopyable.h>
#include <wtf/Vector.h>
@@ -41,7 +42,6 @@
namespace WebCore {
class Page;
class PageGroupLoadDeferrer;
-class String;
}
namespace WebKit {
@@ -68,7 +68,7 @@ public:
static void debugAttach(DebuggerAgentImpl* debuggerAgent);
static void debugDetach(DebuggerAgentImpl* debuggerAgent);
static void pauseScript();
- static void executeDebuggerCommand(const WebCore::String& command, int callerId);
+ static void executeDebuggerCommand(const WTF::String& command, int callerId);
static void setMessageLoopDispatchHandler(WebDevToolsAgent::MessageLoopDispatchHandler handler);
static void setExposeV8DebuggerProtocol(bool);
@@ -103,7 +103,7 @@ private:
static void debugHostDispatchHandler();
static void onV8DebugMessage(const v8::Debug::Message& message);
- static void sendCommandToV8(const WebCore::String& cmd,
+ static void sendCommandToV8(const WTF::String& cmd,
v8::Debug::ClientData* data);
static void sendContinueCommandToV8();
diff --git a/WebKit/chromium/src/DevToolsRPC.h b/WebKit/chromium/src/DevToolsRPC.h
deleted file mode 100644
index 7176821..0000000
--- a/WebKit/chromium/src/DevToolsRPC.h
+++ /dev/null
@@ -1,396 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// DevTools RPC subsystem is a simple string serialization-based rpc
-// implementation. The client is responsible for defining the Rpc-enabled
-// interface in terms of its macros:
-//
-// #define MYAPI_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3)
-// METHOD0(Method1)
-// METHOD1(Method3, int)
-// (snippet above should be multiline macro, add trailing backslashes)
-//
-// DEFINE_RPC_CLASS(MyApi, MYAPI_STRUCT)
-//
-// The snippet above will generate three classes: MyApi, MyApiStub and
-// MyApiDispatch.
-//
-// 1. For each method defined in the marco MyApi will have a
-// pure virtual function generated, so that MyApi would look like:
-//
-// class MyApi {
-// private:
-// MyApi() { }
-// ~MyApi() { }
-// virtual void method1() = 0;
-// virtual void method2(
-// int param1,
-// const String& param2,
-// const Value& param3) = 0;
-// virtual void method3(int param1) = 0;
-// };
-//
-// 2. MyApiStub will implement MyApi interface and would serialize all calls
-// into the string-based calls of the underlying transport:
-//
-// DevToolsRPC::Delegate* transport;
-// myApi = new MyApiStub(transport);
-// myApi->method1();
-// myApi->method3(2);
-//
-// 3. MyApiDelegate is capable of dispatching the calls and convert them to the
-// calls to the underlying MyApi methods:
-//
-// MyApi* realObject;
-// MyApiDispatch::dispatch(realObject, rawStringCallGeneratedByStub);
-//
-// will make corresponding calls to the real object.
-
-#ifndef DevToolsRPC_h
-#define DevToolsRPC_h
-
-#include "PlatformString.h"
-#include "Vector.h"
-#include "WebDevToolsMessageData.h"
-
-#include <wtf/Noncopyable.h>
-
-namespace WebCore {
-class String;
-}
-
-using WebCore::String;
-using WTF::Vector;
-
-namespace WebKit {
-
-///////////////////////////////////////////////////////
-// RPC dispatch macro
-
-template<typename T>
-struct RpcTypeTrait {
- typedef T ApiType;
-};
-
-template<>
-struct RpcTypeTrait<bool> {
- typedef bool ApiType;
- static bool parse(const WebCore::String& t)
- {
- return t == "true";
- }
- static WebCore::String toString(bool b)
- {
- return b ? "true" : "false";
- }
-};
-
-template<>
-struct RpcTypeTrait<int> {
- typedef int ApiType;
- static int parse(const WebCore::String& t)
- {
- bool success;
- int i = t.toIntStrict(&success);
- ASSERT(success);
- return i;
- }
- static WebCore::String toString(int i)
- {
- return WebCore::String::number(i);
- }
-};
-
-template<>
-struct RpcTypeTrait<String> {
- typedef const String& ApiType;
- static String parse(const WebCore::String& t)
- {
- return t;
- }
- static WebCore::String toString(const String& t)
- {
- return t;
- }
-};
-
-///////////////////////////////////////////////////////
-// RPC Api method declarations
-
-#define TOOLS_RPC_API_METHOD0(Method) \
- virtual void Method() = 0;
-
-#define TOOLS_RPC_API_METHOD1(Method, T1) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1) = 0;
-
-#define TOOLS_RPC_API_METHOD2(Method, T1, T2) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
- RpcTypeTrait<T2>::ApiType t2) = 0;
-
-#define TOOLS_RPC_API_METHOD3(Method, T1, T2, T3) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
- RpcTypeTrait<T2>::ApiType t2, \
- RpcTypeTrait<T3>::ApiType t3) = 0;
-
-#define TOOLS_RPC_API_METHOD4(Method, T1, T2, T3, T4) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
- RpcTypeTrait<T2>::ApiType t2, \
- RpcTypeTrait<T3>::ApiType t3, \
- RpcTypeTrait<T4>::ApiType t4) = 0;
-
-#define TOOLS_RPC_API_METHOD5(Method, T1, T2, T3, T4, T5) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
- RpcTypeTrait<T2>::ApiType t2, \
- RpcTypeTrait<T3>::ApiType t3, \
- RpcTypeTrait<T4>::ApiType t4, \
- RpcTypeTrait<T5>::ApiType t5) = 0;
-
-///////////////////////////////////////////////////////
-// RPC stub method implementations
-
-#define TOOLS_RPC_STUB_METHOD0(Method) \
- virtual void Method() { \
- Vector<String> args; \
- this->sendRpcMessage(m_className, #Method, args); \
- }
-
-#define TOOLS_RPC_STUB_METHOD1(Method, T1) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1) { \
- Vector<String> args(1); \
- args[0] = RpcTypeTrait<T1>::toString(t1); \
- this->sendRpcMessage(m_className, #Method, args); \
- }
-
-#define TOOLS_RPC_STUB_METHOD2(Method, T1, T2) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
- RpcTypeTrait<T2>::ApiType t2) { \
- Vector<String> args(2); \
- args[0] = RpcTypeTrait<T1>::toString(t1); \
- args[1] = RpcTypeTrait<T2>::toString(t2); \
- this->sendRpcMessage(m_className, #Method, args); \
- }
-
-#define TOOLS_RPC_STUB_METHOD3(Method, T1, T2, T3) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
- RpcTypeTrait<T2>::ApiType t2, \
- RpcTypeTrait<T3>::ApiType t3) { \
- Vector<String> args(3); \
- args[0] = RpcTypeTrait<T1>::toString(t1); \
- args[1] = RpcTypeTrait<T2>::toString(t2); \
- args[2] = RpcTypeTrait<T3>::toString(t3); \
- this->sendRpcMessage(m_className, #Method, args); \
- }
-
-#define TOOLS_RPC_STUB_METHOD4(Method, T1, T2, T3, T4) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
- RpcTypeTrait<T2>::ApiType t2, \
- RpcTypeTrait<T3>::ApiType t3, \
- RpcTypeTrait<T4>::ApiType t4) { \
- Vector<String> args(4); \
- args[0] = RpcTypeTrait<T1>::toString(t1); \
- args[1] = RpcTypeTrait<T2>::toString(t2); \
- args[2] = RpcTypeTrait<T3>::toString(t3); \
- args[3] = RpcTypeTrait<T4>::toString(t4); \
- this->sendRpcMessage(m_className, #Method, args); \
- }
-
-#define TOOLS_RPC_STUB_METHOD5(Method, T1, T2, T3, T4, T5) \
- virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
- RpcTypeTrait<T2>::ApiType t2, \
- RpcTypeTrait<T3>::ApiType t3, \
- RpcTypeTrait<T4>::ApiType t4, \
- RpcTypeTrait<T5>::ApiType t5) { \
- Vector<String> args(5); \
- args[0] = RpcTypeTrait<T1>::toString(t1); \
- args[1] = RpcTypeTrait<T2>::toString(t2); \
- args[2] = RpcTypeTrait<T3>::toString(t3); \
- args[3] = RpcTypeTrait<T4>::toString(t4); \
- args[4] = RpcTypeTrait<T5>::toString(t5); \
- this->sendRpcMessage(m_className, #Method, args); \
- }
-
-///////////////////////////////////////////////////////
-// RPC dispatch method implementations
-
-#define TOOLS_RPC_DISPATCH0(Method) \
-if (methodName == #Method) { \
- delegate->Method(); \
- return true; \
-}
-
-#define TOOLS_RPC_DISPATCH1(Method, T1) \
-if (methodName == #Method) { \
- delegate->Method(RpcTypeTrait<T1>::parse(args[0])); \
- return true; \
-}
-
-#define TOOLS_RPC_DISPATCH2(Method, T1, T2) \
-if (methodName == #Method) { \
- delegate->Method( \
- RpcTypeTrait<T1>::parse(args[0]), \
- RpcTypeTrait<T2>::parse(args[1]) \
- ); \
- return true; \
-}
-
-#define TOOLS_RPC_DISPATCH3(Method, T1, T2, T3) \
-if (methodName == #Method) { \
- delegate->Method( \
- RpcTypeTrait<T1>::parse(args[0]), \
- RpcTypeTrait<T2>::parse(args[1]), \
- RpcTypeTrait<T3>::parse(args[2]) \
- ); \
- return true; \
-}
-
-#define TOOLS_RPC_DISPATCH4(Method, T1, T2, T3, T4) \
-if (methodName == #Method) { \
- delegate->Method( \
- RpcTypeTrait<T1>::parse(args[0]), \
- RpcTypeTrait<T2>::parse(args[1]), \
- RpcTypeTrait<T3>::parse(args[2]), \
- RpcTypeTrait<T4>::parse(args[3]) \
- ); \
- return true; \
-}
-
-#define TOOLS_RPC_DISPATCH5(Method, T1, T2, T3, T4, T5) \
-if (methodName == #Method) { \
- delegate->Method( \
- RpcTypeTrait<T1>::parse(args[0]), \
- RpcTypeTrait<T2>::parse(args[1]), \
- RpcTypeTrait<T3>::parse(args[2]), \
- RpcTypeTrait<T4>::parse(args[3]), \
- RpcTypeTrait<T5>::parse(args[4]) \
- ); \
- return true; \
-}
-
-#define TOOLS_END_RPC_DISPATCH() \
-}
-
-// This macro defines three classes: Class with the Api, ClassStub that is
-// serializing method calls and ClassDispatch that is capable of dispatching
-// the serialized message into its delegate.
-#define DEFINE_RPC_CLASS(Class, STRUCT) \
-class Class : public Noncopyable {\
-public: \
- Class() \
- { \
- m_className = #Class; \
- } \
- virtual ~Class() { } \
- \
- STRUCT( \
- TOOLS_RPC_API_METHOD0, \
- TOOLS_RPC_API_METHOD1, \
- TOOLS_RPC_API_METHOD2, \
- TOOLS_RPC_API_METHOD3, \
- TOOLS_RPC_API_METHOD4, \
- TOOLS_RPC_API_METHOD5) \
- WebCore::String m_className; \
-}; \
-\
-class Class##Stub \
- : public Class \
- , public DevToolsRPC { \
-public: \
- explicit Class##Stub(Delegate* delegate) : DevToolsRPC(delegate) { } \
- virtual ~Class##Stub() { } \
- typedef Class CLASS; \
- STRUCT( \
- TOOLS_RPC_STUB_METHOD0, \
- TOOLS_RPC_STUB_METHOD1, \
- TOOLS_RPC_STUB_METHOD2, \
- TOOLS_RPC_STUB_METHOD3, \
- TOOLS_RPC_STUB_METHOD4, \
- TOOLS_RPC_STUB_METHOD5) \
-}; \
-\
-class Class##Dispatch : public Noncopyable { \
-public: \
- Class##Dispatch() { } \
- virtual ~Class##Dispatch() { } \
- \
- static bool dispatch(Class* delegate, \
- const WebKit::WebDevToolsMessageData& data) { \
- String className = data.className; \
- if (className != #Class) \
- return false; \
- String methodName = data.methodName; \
- Vector<String> args; \
- for (size_t i = 0; i < data.arguments.size(); i++) \
- args.append(data.arguments[i]); \
- typedef Class CLASS; \
- STRUCT( \
- TOOLS_RPC_DISPATCH0, \
- TOOLS_RPC_DISPATCH1, \
- TOOLS_RPC_DISPATCH2, \
- TOOLS_RPC_DISPATCH3, \
- TOOLS_RPC_DISPATCH4, \
- TOOLS_RPC_DISPATCH5) \
- return false; \
- } \
-};
-
-///////////////////////////////////////////////////////
-// RPC base class
-class DevToolsRPC {
-public:
- class Delegate {
- public:
- Delegate() { }
- virtual ~Delegate() { }
- virtual void sendRpcMessage(const WebKit::WebDevToolsMessageData& data) = 0;
- };
-
- explicit DevToolsRPC(Delegate* delegate) : m_delegate(delegate) { }
- virtual ~DevToolsRPC() { };
-
-protected:
- void sendRpcMessage(const String& className,
- const String& methodName,
- const Vector<String>& args) {
- WebKit::WebVector<WebKit::WebString> webArgs(args.size());
- for (size_t i = 0; i < args.size(); i++)
- webArgs[i] = args[i];
- WebKit::WebDevToolsMessageData data;
- data.className = className;
- data.methodName = methodName;
- data.arguments.swap(webArgs);
- this->m_delegate->sendRpcMessage(data);
- }
-
- Delegate* m_delegate;
-};
-
-} // namespace WebKit
-
-#endif
diff --git a/WebKit/chromium/src/DevToolsRPCJS.h b/WebKit/chromium/src/DevToolsRPCJS.h
deleted file mode 100644
index 8ae279f..0000000
--- a/WebKit/chromium/src/DevToolsRPCJS.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// Additional set of macros for the JS RPC.
-
-#ifndef DevToolsRPCJS_h
-#define DevToolsRPCJS_h
-
-// Do not remove this one although it is not used.
-#include "BoundObject.h"
-#include "DevToolsRPC.h"
-#include "WebFrame.h"
-#include <wtf/Noncopyable.h>
-#include <wtf/OwnPtr.h>
-
-namespace WebKit {
-
-///////////////////////////////////////////////////////
-// JS RPC binds and stubs
-
-#define TOOLS_RPC_JS_BIND_METHOD0(Method) \
- boundObj.addProtoFunction(#Method, OCLASS::js##Method);
-
-#define TOOLS_RPC_JS_BIND_METHOD1(Method, T1) \
- boundObj.addProtoFunction(#Method, OCLASS::js##Method);
-
-#define TOOLS_RPC_JS_BIND_METHOD2(Method, T1, T2) \
- boundObj.addProtoFunction(#Method, OCLASS::js##Method);
-
-#define TOOLS_RPC_JS_BIND_METHOD3(Method, T1, T2, T3) \
- boundObj.addProtoFunction(#Method, OCLASS::js##Method);
-
-#define TOOLS_RPC_JS_BIND_METHOD4(Method, T1, T2, T3, T4) \
- boundObj.addProtoFunction(#Method, OCLASS::js##Method);
-
-#define TOOLS_RPC_JS_BIND_METHOD5(Method, T1, T2, T3, T4, T5) \
- boundObj.addProtoFunction(#Method, OCLASS::js##Method);
-
-#define TOOLS_RPC_JS_STUB_METHOD0(Method) \
- static v8::Handle<v8::Value> js##Method(const v8::Arguments& args) { \
- sendRpcMessageFromJS(#Method, args, 0); \
- return v8::Undefined(); \
- }
-
-#define TOOLS_RPC_JS_STUB_METHOD1(Method, T1) \
- static v8::Handle<v8::Value> js##Method(const v8::Arguments& args) { \
- sendRpcMessageFromJS(#Method, args, 1); \
- return v8::Undefined(); \
- }
-
-#define TOOLS_RPC_JS_STUB_METHOD2(Method, T1, T2) \
- static v8::Handle<v8::Value> js##Method(const v8::Arguments& args) { \
- sendRpcMessageFromJS(#Method, args, 2); \
- return v8::Undefined(); \
- }
-
-#define TOOLS_RPC_JS_STUB_METHOD3(Method, T1, T2, T3) \
- static v8::Handle<v8::Value> js##Method(const v8::Arguments& args) { \
- sendRpcMessageFromJS(#Method, args, 3); \
- return v8::Undefined(); \
- }
-
-#define TOOLS_RPC_JS_STUB_METHOD4(Method, T1, T2, T3, T4) \
- static v8::Handle<v8::Value> js##Method(const v8::Arguments& args) { \
- sendRpcMessageFromJS(#Method, args, 4); \
- return v8::Undefined(); \
- }
-
-#define TOOLS_RPC_JS_STUB_METHOD5(Method, T1, T2, T3, T4, T5) \
- static v8::Handle<v8::Value> js##Method(const v8::Arguments& args) { \
- sendRpcMessageFromJS(#Method, args, 5); \
- return v8::Undefined(); \
- }
-
-///////////////////////////////////////////////////////
-// JS RPC main obj macro
-
-#define DEFINE_RPC_JS_BOUND_OBJ(Class, STRUCT, DClass, DELEGATE_STRUCT) \
-class JS##Class##BoundObj : public Class##Stub { \
-public: \
- JS##Class##BoundObj(Delegate* rpcDelegate, \
- v8::Handle<v8::Context> context, \
- const char* classname) \
- : Class##Stub(rpcDelegate) { \
- BoundObject boundObj(context, this, classname); \
- STRUCT( \
- TOOLS_RPC_JS_BIND_METHOD0, \
- TOOLS_RPC_JS_BIND_METHOD1, \
- TOOLS_RPC_JS_BIND_METHOD2, \
- TOOLS_RPC_JS_BIND_METHOD3, \
- TOOLS_RPC_JS_BIND_METHOD4, \
- TOOLS_RPC_JS_BIND_METHOD5) \
- boundObj.build(); \
- } \
- virtual ~JS##Class##BoundObj() { } \
- typedef JS##Class##BoundObj OCLASS; \
- STRUCT( \
- TOOLS_RPC_JS_STUB_METHOD0, \
- TOOLS_RPC_JS_STUB_METHOD1, \
- TOOLS_RPC_JS_STUB_METHOD2, \
- TOOLS_RPC_JS_STUB_METHOD3, \
- TOOLS_RPC_JS_STUB_METHOD4, \
- TOOLS_RPC_JS_STUB_METHOD5) \
-private: \
- static void sendRpcMessageFromJS(const char* method, \
- const v8::Arguments& jsArguments, \
- size_t argsCount) \
- { \
- Vector<String> args(argsCount); \
- for (size_t i = 0; i < argsCount; i++) \
- args[i] = WebCore::toWebCoreStringWithNullCheck(jsArguments[i]); \
- void* selfPtr = v8::External::Cast(*jsArguments.Data())->Value(); \
- JS##Class##BoundObj* self = static_cast<JS##Class##BoundObj*>(selfPtr); \
- self->sendRpcMessage(#Class, method, args); \
- } \
-};
-
-} // namespace WebKit
-
-#endif
diff --git a/WebKit/chromium/src/DeviceOrientationClientProxy.cpp b/WebKit/chromium/src/DeviceOrientationClientProxy.cpp
new file mode 100644
index 0000000..f4a0dd9
--- /dev/null
+++ b/WebKit/chromium/src/DeviceOrientationClientProxy.cpp
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "DeviceOrientationClientProxy.h"
+
+#include "DeviceOrientation.h"
+#include "WebDeviceOrientation.h"
+#include "WebDeviceOrientationController.h"
+#include <wtf/OwnPtr.h>
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+class DeviceOrientationController;
+}
+
+namespace WebKit {
+
+void DeviceOrientationClientProxy::setController(WebCore::DeviceOrientationController* c)
+{
+ if (!m_client) // FIXME: Get rid of these null checks once device orientation is enabled by default.
+ return;
+ m_client->setController(new WebDeviceOrientationController(c));
+}
+
+void DeviceOrientationClientProxy::startUpdating()
+{
+ if (!m_client)
+ return;
+ m_client->startUpdating();
+}
+
+void DeviceOrientationClientProxy::stopUpdating()
+{
+ if (!m_client)
+ return;
+ m_client->stopUpdating();
+}
+
+WebCore::DeviceOrientation* DeviceOrientationClientProxy::lastOrientation() const
+{
+ if (!m_client)
+ return 0;
+
+ // Cache the DeviceOrientation pointer so its reference count does not drop to zero upon return.
+ m_lastOrientation = m_client->lastOrientation();
+
+ return m_lastOrientation.get();
+}
+
+} // namespace WebKit
diff --git a/WebKit/chromium/src/DeviceOrientationClientProxy.h b/WebKit/chromium/src/DeviceOrientationClientProxy.h
new file mode 100644
index 0000000..2d3a7dc
--- /dev/null
+++ b/WebKit/chromium/src/DeviceOrientationClientProxy.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DeviceOrientationClientProxy_h
+#define DeviceOrientationClientProxy_h
+
+#include "DeviceOrientation.h"
+#include "DeviceOrientationClient.h"
+#include "WebDeviceOrientationClient.h"
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+class DeviceOrientationController;
+}
+
+namespace WebKit {
+
+class DeviceOrientationClientProxy : public WebCore::DeviceOrientationClient {
+public:
+ DeviceOrientationClientProxy(WebDeviceOrientationClient* client)
+ : m_client(client)
+ {
+ }
+
+ void setController(WebCore::DeviceOrientationController*);
+ void startUpdating();
+ void stopUpdating();
+ WebCore::DeviceOrientation* lastOrientation() const;
+
+private:
+ WebDeviceOrientationClient* m_client;
+ mutable RefPtr<WebCore::DeviceOrientation> m_lastOrientation;
+};
+
+} // namespace WebKit
+
+#endif // DeviceOrientationClientProxy_h
diff --git a/WebKit/chromium/src/DragClientImpl.h b/WebKit/chromium/src/DragClientImpl.h
index fc4c608..dac7acd 100644
--- a/WebKit/chromium/src/DragClientImpl.h
+++ b/WebKit/chromium/src/DragClientImpl.h
@@ -63,7 +63,7 @@ public:
WebCore::Frame* frame,
bool isLinkDrag = false);
virtual WebCore::DragImageRef createDragImageForLink(
- WebCore::KURL&, const WebCore::String& label, WebCore::Frame*);
+ WebCore::KURL&, const WTF::String& label, WebCore::Frame*);
virtual void dragControllerDestroyed();
private:
diff --git a/WebKit/chromium/src/EditorClientImpl.h b/WebKit/chromium/src/EditorClientImpl.h
index 549a512..b05a592 100644
--- a/WebKit/chromium/src/EditorClientImpl.h
+++ b/WebKit/chromium/src/EditorClientImpl.h
@@ -61,7 +61,7 @@ public:
virtual bool shouldBeginEditing(WebCore::Range*);
virtual bool shouldEndEditing(WebCore::Range*);
virtual bool shouldInsertNode(WebCore::Node*, WebCore::Range*, WebCore::EditorInsertAction);
- virtual bool shouldInsertText(const WebCore::String&, WebCore::Range*, WebCore::EditorInsertAction);
+ virtual bool shouldInsertText(const WTF::String&, WebCore::Range*, WebCore::EditorInsertAction);
virtual bool shouldDeleteRange(WebCore::Range*);
virtual bool shouldChangeSelectedRange(WebCore::Range* fromRange,
WebCore::Range* toRange,
@@ -92,8 +92,8 @@ public:
virtual bool doTextFieldCommandFromEvent(WebCore::Element*, WebCore::KeyboardEvent*);
virtual void textWillBeDeletedInTextField(WebCore::Element*);
virtual void textDidChangeInTextArea(WebCore::Element*);
- virtual void ignoreWordInSpellDocument(const WebCore::String&);
- virtual void learnWord(const WebCore::String&);
+ virtual void ignoreWordInSpellDocument(const WTF::String&);
+ virtual void learnWord(const WTF::String&);
virtual void checkSpellingOfString(const UChar*, int length,
int* misspellingLocation,
int* misspellingLength);
@@ -101,13 +101,13 @@ public:
WTF::Vector<WebCore::GrammarDetail>&,
int* badGrammarLocation,
int* badGrammarLength);
- virtual WebCore::String getAutoCorrectSuggestionForMisspelledWord(const WebCore::String&);
- virtual void updateSpellingUIWithGrammarString(const WebCore::String&, const WebCore::GrammarDetail&);
- virtual void updateSpellingUIWithMisspelledWord(const WebCore::String&);
+ virtual WTF::String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&);
+ virtual void updateSpellingUIWithGrammarString(const WTF::String&, const WebCore::GrammarDetail&);
+ virtual void updateSpellingUIWithMisspelledWord(const WTF::String&);
virtual void showSpellingUI(bool show);
virtual bool spellingUIIsShowing();
- virtual void getGuessesForWord(const WebCore::String& word,
- WTF::Vector<WebCore::String>& guesses);
+ virtual void getGuessesForWord(const WTF::String& word,
+ WTF::Vector<WTF::String>& guesses);
virtual void willSetInputMethodState();
virtual void setInputMethodState(bool enabled);
diff --git a/WebKit/chromium/src/FrameLoaderClientImpl.h b/WebKit/chromium/src/FrameLoaderClientImpl.h
index 25be623..3a8a714 100644
--- a/WebKit/chromium/src/FrameLoaderClientImpl.h
+++ b/WebKit/chromium/src/FrameLoaderClientImpl.h
@@ -99,7 +99,7 @@ public:
virtual void dispatchWillClose();
virtual void dispatchDidReceiveIcon();
virtual void dispatchDidStartProvisionalLoad();
- virtual void dispatchDidReceiveTitle(const WebCore::String& title);
+ virtual void dispatchDidReceiveTitle(const WTF::String& title);
virtual void dispatchDidChangeIcons();
virtual void dispatchDidCommitLoad();
virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&);
@@ -110,8 +110,8 @@ public:
virtual void dispatchDidFirstVisuallyNonEmptyLayout();
virtual WebCore::Frame* dispatchCreatePage();
virtual void dispatchShow();
- virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction function, const WebCore::String& mime_type, const WebCore::ResourceRequest&);
- virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState> form_state, const WebCore::String& frame_name);
+ virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction function, const WTF::String& mime_type, const WebCore::ResourceRequest&);
+ virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState> form_state, const WTF::String& frame_name);
virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState> form_state);
virtual void cancelPolicyCheck();
virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&);
@@ -148,9 +148,9 @@ public:
virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&);
virtual bool shouldFallBack(const WebCore::ResourceError&);
virtual bool canHandleRequest(const WebCore::ResourceRequest&) const;
- virtual bool canShowMIMEType(const WebCore::String& MIMEType) const;
- virtual bool representationExistsForURLScheme(const WebCore::String& URLScheme) const;
- virtual WebCore::String generatedMIMETypeForURLScheme(const WebCore::String& URLScheme) const;
+ virtual bool canShowMIMEType(const WTF::String& MIMEType) const;
+ virtual bool representationExistsForURLScheme(const WTF::String& URLScheme) const;
+ virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String& URLScheme) const;
virtual void frameLoadCompleted();
virtual void saveViewStateToItem(WebCore::HistoryItem*);
virtual void restoreViewState();
@@ -159,8 +159,8 @@ public:
virtual void prepareForDataSourceReplacement();
virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(
const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
- virtual void setTitle(const WebCore::String& title, const WebCore::KURL&);
- virtual WebCore::String userAgent(const WebCore::KURL&);
+ virtual void setTitle(const WTF::String& title, const WebCore::KURL&);
+ virtual WTF::String userAgent(const WebCore::KURL&);
virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
virtual void transitionToCommittedForNewPage();
@@ -170,25 +170,25 @@ public:
const WebCore::ResourceRequest& initialRequest,
const WebCore::ResourceResponse&);
virtual PassRefPtr<WebCore::Frame> createFrame(
- const WebCore::KURL& url, const WebCore::String& name,
+ const WebCore::KURL& url, const WTF::String& name,
WebCore::HTMLFrameOwnerElement* ownerElement,
- const WebCore::String& referrer, bool allowsScrolling,
+ const WTF::String& referrer, bool allowsScrolling,
int marginWidth, int marginHeight);
virtual void didTransferChildFrameToNewDocument();
virtual PassRefPtr<WebCore::Widget> createPlugin(
const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&,
- const Vector<WebCore::String>&, const Vector<WebCore::String>&,
- const WebCore::String&, bool loadManually);
+ const Vector<WTF::String>&, const Vector<WTF::String>&,
+ const WTF::String&, bool loadManually);
virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(
const WebCore::IntSize&,
WebCore::HTMLAppletElement*,
const WebCore::KURL& /* base_url */,
- const Vector<WebCore::String>& paramNames,
- const Vector<WebCore::String>& paramValues);
+ const Vector<WTF::String>& paramNames,
+ const Vector<WTF::String>& paramValues);
virtual WebCore::ObjectContentType objectContentType(
- const WebCore::KURL& url, const WebCore::String& mimeType);
- virtual WebCore::String overrideMediaType() const;
+ const WebCore::KURL& url, const WTF::String& mimeType);
+ virtual WTF::String overrideMediaType() const;
virtual void didPerformFirstNavigation() const;
virtual void registerForIconNotification(bool listen = true);
virtual void didChangeScrollOffset();
diff --git a/WebKit/chromium/src/GraphicsContext3D.cpp b/WebKit/chromium/src/GraphicsContext3D.cpp
index fec0b20..5b5afef 100644
--- a/WebKit/chromium/src/GraphicsContext3D.cpp
+++ b/WebKit/chromium/src/GraphicsContext3D.cpp
@@ -35,24 +35,18 @@
#include "GraphicsContext3D.h"
#include "CachedImage.h"
+#include "CanvasLayerChromium.h"
+#include "CanvasRenderingContext.h"
#include "Chrome.h"
#include "ChromeClientImpl.h"
+#include "Float32Array.h"
#include "HTMLCanvasElement.h"
#include "HTMLImageElement.h"
#include "ImageBuffer.h"
#include "ImageData.h"
-#include "WebGLBuffer.h"
-#include "Int8Array.h"
-#include "Float32Array.h"
-#include "WebGLFramebuffer.h"
#include "Int32Array.h"
-#include "WebGLProgram.h"
-#include "WebGLRenderbuffer.h"
-#include "WebGLRenderingContext.h"
-#include "WebGLShader.h"
-#include "WebGLTexture.h"
+#include "Int8Array.h"
#include "Uint8Array.h"
-#include "WebGLLayerChromium.h"
#include "WebGraphicsContext3D.h"
#include "WebGraphicsContext3DDefaultImpl.h"
#include "WebKit.h"
@@ -94,8 +88,6 @@ namespace WebCore {
// Uncomment this to render to a separate window for debugging
// #define RENDER_TO_DEBUGGING_WINDOW
-#define EXTRACT(val) (!val ? 0 : val->object())
-
class GraphicsContext3DInternal {
public:
GraphicsContext3DInternal();
@@ -112,14 +104,14 @@ public:
void reshape(int width, int height);
- void paintRenderingResultsToCanvas(WebGLRenderingContext* context);
- void beginPaint(WebGLRenderingContext* context);
+ void paintRenderingResultsToCanvas(CanvasRenderingContext* context);
+ void beginPaint(CanvasRenderingContext* context);
void endPaint();
void prepareTexture();
#if USE(ACCELERATED_COMPOSITING)
- WebGLLayerChromium* platformLayer() const;
+ CanvasLayerChromium* platformLayer() const;
#endif
bool isGLES2Compliant() const;
@@ -127,12 +119,12 @@ public:
// Entry points for WebGL.
//
void activeTexture(unsigned long texture);
- void attachShader(WebGLProgram* program, WebGLShader* shader);
- void bindAttribLocation(WebGLProgram*, unsigned long index, const String& name);
- void bindBuffer(unsigned long target, WebGLBuffer*);
- void bindFramebuffer(unsigned long target, WebGLFramebuffer*);
- void bindRenderbuffer(unsigned long target, WebGLRenderbuffer*);
- void bindTexture(unsigned long target, WebGLTexture* texture);
+ void attachShader(Platform3DObject program, Platform3DObject shader);
+ void bindAttribLocation(Platform3DObject, unsigned long index, const String& name);
+ void bindBuffer(unsigned long target, Platform3DObject);
+ void bindFramebuffer(unsigned long target, Platform3DObject);
+ void bindRenderbuffer(unsigned long target, Platform3DObject);
+ void bindTexture(unsigned long target, Platform3DObject texture);
void blendColor(double red, double green, double blue, double alpha);
void blendEquation(unsigned long mode);
void blendEquationSeparate(unsigned long modeRGB, unsigned long modeAlpha);
@@ -151,7 +143,7 @@ public:
void clearDepth(double depth);
void clearStencil(long s);
void colorMask(bool red, bool green, bool blue, bool alpha);
- void compileShader(WebGLShader*);
+ void compileShader(Platform3DObject);
void copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, unsigned long width, unsigned long height, long border);
void copyTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, long x, long y, unsigned long width, unsigned long height);
@@ -159,7 +151,7 @@ public:
void depthFunc(unsigned long func);
void depthMask(bool flag);
void depthRange(double zNear, double zFar);
- void detachShader(WebGLProgram*, WebGLShader*);
+ void detachShader(Platform3DObject, Platform3DObject);
void disable(unsigned long cap);
void disableVertexAttribArray(unsigned long index);
void drawArrays(unsigned long mode, long first, long count);
@@ -169,17 +161,17 @@ public:
void enableVertexAttribArray(unsigned long index);
void finish();
void flush();
- void framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, WebGLRenderbuffer*);
- void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, WebGLTexture*, long level);
+ void framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, Platform3DObject);
+ void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, Platform3DObject, long level);
void frontFace(unsigned long mode);
void generateMipmap(unsigned long target);
- bool getActiveAttrib(WebGLProgram* program, unsigned long index, ActiveInfo&);
- bool getActiveUniform(WebGLProgram* program, unsigned long index, ActiveInfo&);
+ bool getActiveAttrib(Platform3DObject program, unsigned long index, ActiveInfo&);
+ bool getActiveUniform(Platform3DObject program, unsigned long index, ActiveInfo&);
- void getAttachedShaders(WebGLProgram* program, int maxCount, int* count, unsigned int* shaders);
+ void getAttachedShaders(Platform3DObject program, int maxCount, int* count, unsigned int* shaders);
- int getAttribLocation(WebGLProgram*, const String& name);
+ int getAttribLocation(Platform3DObject, const String& name);
void getBooleanv(unsigned long pname, unsigned char* value);
@@ -195,26 +187,26 @@ public:
void getIntegerv(unsigned long pname, int* value);
- void getProgramiv(WebGLProgram* program, unsigned long pname, int* value);
+ void getProgramiv(Platform3DObject program, unsigned long pname, int* value);
- String getProgramInfoLog(WebGLProgram*);
+ String getProgramInfoLog(Platform3DObject);
void getRenderbufferParameteriv(unsigned long target, unsigned long pname, int* value);
- void getShaderiv(WebGLShader*, unsigned long pname, int* value);
+ void getShaderiv(Platform3DObject, unsigned long pname, int* value);
- String getShaderInfoLog(WebGLShader*);
+ String getShaderInfoLog(Platform3DObject);
- String getShaderSource(WebGLShader*);
+ String getShaderSource(Platform3DObject);
String getString(unsigned long name);
void getTexParameterfv(unsigned long target, unsigned long pname, float* value);
void getTexParameteriv(unsigned long target, unsigned long pname, int* value);
- void getUniformfv(WebGLProgram* program, long location, float* value);
- void getUniformiv(WebGLProgram* program, long location, int* value);
+ void getUniformfv(Platform3DObject program, long location, float* value);
+ void getUniformiv(Platform3DObject program, long location, int* value);
- long getUniformLocation(WebGLProgram*, const String& name);
+ long getUniformLocation(Platform3DObject, const String& name);
void getVertexAttribfv(unsigned long index, unsigned long pname, float* value);
void getVertexAttribiv(unsigned long index, unsigned long pname, int* value);
@@ -222,15 +214,15 @@ public:
long getVertexAttribOffset(unsigned long index, unsigned long pname);
void hint(unsigned long target, unsigned long mode);
- bool isBuffer(WebGLBuffer*);
+ bool isBuffer(Platform3DObject);
bool isEnabled(unsigned long cap);
- bool isFramebuffer(WebGLFramebuffer*);
- bool isProgram(WebGLProgram*);
- bool isRenderbuffer(WebGLRenderbuffer*);
- bool isShader(WebGLShader*);
- bool isTexture(WebGLTexture*);
+ bool isFramebuffer(Platform3DObject);
+ bool isProgram(Platform3DObject);
+ bool isRenderbuffer(Platform3DObject);
+ bool isShader(Platform3DObject);
+ bool isTexture(Platform3DObject);
void lineWidth(double);
- void linkProgram(WebGLProgram*);
+ void linkProgram(Platform3DObject);
void pixelStorei(unsigned long pname, long param);
void polygonOffset(double factor, double units);
@@ -240,7 +232,7 @@ public:
void renderbufferStorage(unsigned long target, unsigned long internalformat, unsigned long width, unsigned long height);
void sampleCoverage(double value, bool invert);
void scissor(long x, long y, unsigned long width, unsigned long height);
- void shaderSource(WebGLShader*, const String& string);
+ void shaderSource(Platform3DObject, const String& string);
void stencilFunc(unsigned long func, long ref, unsigned long mask);
void stencilFuncSeparate(unsigned long face, unsigned long func, long ref, unsigned long mask);
void stencilMask(unsigned long mask);
@@ -277,8 +269,8 @@ public:
void uniformMatrix3fv(long location, bool transpose, float* value, int size);
void uniformMatrix4fv(long location, bool transpose, float* value, int size);
- void useProgram(WebGLProgram*);
- void validateProgram(WebGLProgram*);
+ void useProgram(Platform3DObject);
+ void validateProgram(Platform3DObject);
void vertexAttrib1f(unsigned long indx, float x);
void vertexAttrib1fv(unsigned long indx, float* values);
@@ -311,8 +303,9 @@ public:
private:
OwnPtr<WebKit::WebGraphicsContext3D> m_impl;
+ WebKit::WebViewImpl* m_webViewImpl;
#if USE(ACCELERATED_COMPOSITING)
- RefPtr<WebGLLayerChromium> m_compositingLayer;
+ RefPtr<CanvasLayerChromium> m_compositingLayer;
#endif
#if PLATFORM(SKIA)
// If the width and height of the Canvas's backing store don't
@@ -329,9 +322,10 @@ private:
};
GraphicsContext3DInternal::GraphicsContext3DInternal()
+ : m_webViewImpl(0)
#if PLATFORM(SKIA)
#elif PLATFORM(CG)
- : m_renderOutput(0)
+ , m_renderOutput(0)
#else
#error Must port to your platform
#endif
@@ -362,18 +356,18 @@ bool GraphicsContext3DInternal::initialize(GraphicsContext3D::Attributes attrs,
Chrome* chrome = static_cast<Chrome*>(hostWindow);
WebKit::ChromeClientImpl* chromeClientImpl = static_cast<WebKit::ChromeClientImpl*>(chrome->client());
- WebKit::WebViewImpl* webView = chromeClientImpl->webView();
+ m_webViewImpl = chromeClientImpl->webView();
- if (!webView)
+ if (!m_webViewImpl)
return false;
- if (!webContext->initialize(webAttributes, webView)) {
+ if (!webContext->initialize(webAttributes, m_webViewImpl)) {
delete webContext;
return false;
}
m_impl.set(webContext);
#if USE(ACCELERATED_COMPOSITING)
- m_compositingLayer = WebGLLayerChromium::create(0);
+ m_compositingLayer = CanvasLayerChromium::create(0);
#endif
return true;
}
@@ -394,13 +388,13 @@ void GraphicsContext3DInternal::prepareTexture()
}
#if USE(ACCELERATED_COMPOSITING)
-WebGLLayerChromium* GraphicsContext3DInternal::platformLayer() const
+CanvasLayerChromium* GraphicsContext3DInternal::platformLayer() const
{
return m_compositingLayer.get();
}
#endif
-void GraphicsContext3DInternal::paintRenderingResultsToCanvas(WebGLRenderingContext* context)
+void GraphicsContext3DInternal::paintRenderingResultsToCanvas(CanvasRenderingContext* context)
{
HTMLCanvasElement* canvas = context->canvas();
ImageBuffer* imageBuffer = canvas->buffer();
@@ -422,9 +416,8 @@ void GraphicsContext3DInternal::paintRenderingResultsToCanvas(WebGLRenderingCont
m_resizingBitmap.setConfig(SkBitmap::kARGB_8888_Config,
m_impl->width(),
m_impl->height());
- if (!m_resizingBitmap.allocPixels()) {
+ if (!m_resizingBitmap.allocPixels())
return;
- }
}
readbackBitmap = &m_resizingBitmap;
}
@@ -459,8 +452,12 @@ void GraphicsContext3DInternal::paintRenderingResultsToCanvas(WebGLRenderingCont
#endif
}
-void GraphicsContext3DInternal::beginPaint(WebGLRenderingContext* context)
+void GraphicsContext3DInternal::beginPaint(CanvasRenderingContext* context)
{
+ // If the gpu compositor is on then skip the readback and software rendering path.
+ if (m_webViewImpl->isAcceleratedCompositingActive())
+ return;
+
paintRenderingResultsToCanvas(context);
}
@@ -508,42 +505,18 @@ void GraphicsContext3DInternal::name(t1 a1) \
m_impl->name(a1); \
}
-#define DELEGATE_TO_IMPL_1_X(name, t1) \
-void GraphicsContext3DInternal::name(t1 a1) \
-{ \
- m_impl->name(EXTRACT(a1)); \
-}
-
#define DELEGATE_TO_IMPL_1R(name, t1, rt) \
rt GraphicsContext3DInternal::name(t1 a1) \
{ \
return m_impl->name(a1); \
}
-#define DELEGATE_TO_IMPL_1R_X(name, t1, rt) \
-rt GraphicsContext3DInternal::name(t1 a1) \
-{ \
- return m_impl->name(EXTRACT(a1)); \
-}
-
#define DELEGATE_TO_IMPL_2(name, t1, t2) \
void GraphicsContext3DInternal::name(t1 a1, t2 a2) \
{ \
m_impl->name(a1, a2); \
}
-#define DELEGATE_TO_IMPL_2_X12(name, t1, t2) \
-void GraphicsContext3DInternal::name(t1 a1, t2 a2) \
-{ \
- m_impl->name(EXTRACT(a1), EXTRACT(a2)); \
-}
-
-#define DELEGATE_TO_IMPL_2_X2(name, t1, t2) \
-void GraphicsContext3DInternal::name(t1 a1, t2 a2) \
-{ \
- m_impl->name(a1, EXTRACT(a2)); \
-}
-
#define DELEGATE_TO_IMPL_2R(name, t1, t2, rt) \
rt GraphicsContext3DInternal::name(t1 a1, t2 a2) \
{ \
@@ -556,12 +529,6 @@ void GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3) \
m_impl->name(a1, a2, a3); \
}
-#define DELEGATE_TO_IMPL_3_X1(name, t1, t2, t3) \
-void GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3) \
-{ \
- m_impl->name(EXTRACT(a1), a2, a3); \
-}
-
#define DELEGATE_TO_IMPL_3R(name, t1, t2, t3, rt) \
rt GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3) \
{ \
@@ -574,30 +541,12 @@ void GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3, t4 a4) \
m_impl->name(a1, a2, a3, a4); \
}
-#define DELEGATE_TO_IMPL_4_X1(name, t1, t2, t3, t4) \
-void GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3, t4 a4) \
-{ \
- m_impl->name(EXTRACT(a1), a2, a3, a4); \
-}
-
-#define DELEGATE_TO_IMPL_4_X4(name, t1, t2, t3, t4) \
-void GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3, t4 a4) \
-{ \
- m_impl->name(a1, a2, a3, EXTRACT(a4)); \
-}
-
#define DELEGATE_TO_IMPL_5(name, t1, t2, t3, t4, t5) \
void GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5) \
{ \
m_impl->name(a1, a2, a3, a4, a5); \
}
-#define DELEGATE_TO_IMPL_5_X4(name, t1, t2, t3, t4, t5) \
-void GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5) \
-{ \
- m_impl->name(a1, a2, a3, EXTRACT(a4), a5); \
-}
-
#define DELEGATE_TO_IMPL_5R(name, t1, t2, t3, t4, t5, rt) \
rt GraphicsContext3DInternal::name(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5) \
{ \
@@ -649,43 +598,17 @@ bool GraphicsContext3DInternal::isGLES2Compliant() const
}
DELEGATE_TO_IMPL_1(activeTexture, unsigned long)
-DELEGATE_TO_IMPL_2_X12(attachShader, WebGLProgram*, WebGLShader*)
+DELEGATE_TO_IMPL_2(attachShader, Platform3DObject, Platform3DObject)
-void GraphicsContext3DInternal::bindAttribLocation(WebGLProgram* program, unsigned long index, const String& name)
+void GraphicsContext3DInternal::bindAttribLocation(Platform3DObject program, unsigned long index, const String& name)
{
- m_impl->bindAttribLocation(EXTRACT(program), index, name.utf8().data());
-}
-
-DELEGATE_TO_IMPL_2_X2(bindBuffer, unsigned long, WebGLBuffer*)
-DELEGATE_TO_IMPL_2_X2(bindFramebuffer, unsigned long, WebGLFramebuffer*)
-DELEGATE_TO_IMPL_2_X2(bindRenderbuffer, unsigned long, WebGLRenderbuffer*)
-
-static const int kTextureWrapR = 0x8072;
-
-// If we didn't have to hack GL_TEXTURE_WRAP_R for cube maps,
-// we could just use:
-// DELEGATE_TO_IMPL_2_X2(bindTexture, unsigned long, WebGLTexture*)
-void GraphicsContext3DInternal::bindTexture(unsigned long target,
- WebGLTexture* texture)
-{
- unsigned int textureObject = EXTRACT(texture);
-
- m_impl->bindTexture(target, textureObject);
-
- // FIXME: GL_TEXTURE_WRAP_R isn't exposed in the OpenGL ES 2.0
- // API. On desktop OpenGL implementations it seems necessary to
- // set this wrap mode to GL_CLAMP_TO_EDGE to get correct behavior
- // of cube maps.
- if (texture)
- if (target == GraphicsContext3D::TEXTURE_CUBE_MAP) {
- if (!texture->isCubeMapRWrapModeInitialized()) {
- m_impl->texParameteri(GraphicsContext3D::TEXTURE_CUBE_MAP, kTextureWrapR, GraphicsContext3D::CLAMP_TO_EDGE);
- texture->setCubeMapRWrapModeInitialized(true);
- }
- } else
- texture->setCubeMapRWrapModeInitialized(false);
+ m_impl->bindAttribLocation(program, index, name.utf8().data());
}
+DELEGATE_TO_IMPL_2(bindBuffer, unsigned long, Platform3DObject)
+DELEGATE_TO_IMPL_2(bindFramebuffer, unsigned long, Platform3DObject)
+DELEGATE_TO_IMPL_2(bindRenderbuffer, unsigned long, Platform3DObject)
+DELEGATE_TO_IMPL_2(bindTexture, unsigned long, Platform3DObject)
DELEGATE_TO_IMPL_4(blendColor, double, double, double, double)
DELEGATE_TO_IMPL_1(blendEquation, unsigned long)
DELEGATE_TO_IMPL_2(blendEquationSeparate, unsigned long, unsigned long)
@@ -723,7 +646,7 @@ DELEGATE_TO_IMPL_4(clearColor, double, double, double, double)
DELEGATE_TO_IMPL_1(clearDepth, double)
DELEGATE_TO_IMPL_1(clearStencil, long)
DELEGATE_TO_IMPL_4(colorMask, bool, bool, bool, bool)
-DELEGATE_TO_IMPL_1_X(compileShader, WebGLShader*)
+DELEGATE_TO_IMPL_1(compileShader, Platform3DObject)
DELEGATE_TO_IMPL_8(copyTexImage2D, unsigned long, long, unsigned long, long, long, unsigned long, unsigned long, long)
DELEGATE_TO_IMPL_8(copyTexSubImage2D, unsigned long, long, long, long, long, long, unsigned long, unsigned long)
@@ -731,7 +654,7 @@ DELEGATE_TO_IMPL_1(cullFace, unsigned long)
DELEGATE_TO_IMPL_1(depthFunc, unsigned long)
DELEGATE_TO_IMPL_1(depthMask, bool)
DELEGATE_TO_IMPL_2(depthRange, double, double)
-DELEGATE_TO_IMPL_2_X12(detachShader, WebGLProgram*, WebGLShader*)
+DELEGATE_TO_IMPL_2(detachShader, Platform3DObject, Platform3DObject)
DELEGATE_TO_IMPL_1(disable, unsigned long)
DELEGATE_TO_IMPL_1(disableVertexAttribArray, unsigned long)
DELEGATE_TO_IMPL_3(drawArrays, unsigned long, long, long)
@@ -741,15 +664,15 @@ DELEGATE_TO_IMPL_1(enable, unsigned long)
DELEGATE_TO_IMPL_1(enableVertexAttribArray, unsigned long)
DELEGATE_TO_IMPL(finish)
DELEGATE_TO_IMPL(flush)
-DELEGATE_TO_IMPL_4_X4(framebufferRenderbuffer, unsigned long, unsigned long, unsigned long, WebGLRenderbuffer*)
-DELEGATE_TO_IMPL_5_X4(framebufferTexture2D, unsigned long, unsigned long, unsigned long, WebGLTexture*, long)
+DELEGATE_TO_IMPL_4(framebufferRenderbuffer, unsigned long, unsigned long, unsigned long, Platform3DObject)
+DELEGATE_TO_IMPL_5(framebufferTexture2D, unsigned long, unsigned long, unsigned long, Platform3DObject, long)
DELEGATE_TO_IMPL_1(frontFace, unsigned long)
DELEGATE_TO_IMPL_1(generateMipmap, unsigned long)
-bool GraphicsContext3DInternal::getActiveAttrib(WebGLProgram* program, unsigned long index, ActiveInfo& info)
+bool GraphicsContext3DInternal::getActiveAttrib(Platform3DObject program, unsigned long index, ActiveInfo& info)
{
WebKit::WebGraphicsContext3D::ActiveInfo webInfo;
- if (!m_impl->getActiveAttrib(EXTRACT(program), index, webInfo))
+ if (!m_impl->getActiveAttrib(program, index, webInfo))
return false;
info.name = webInfo.name;
info.type = webInfo.type;
@@ -757,10 +680,10 @@ bool GraphicsContext3DInternal::getActiveAttrib(WebGLProgram* program, unsigned
return true;
}
-bool GraphicsContext3DInternal::getActiveUniform(WebGLProgram* program, unsigned long index, ActiveInfo& info)
+bool GraphicsContext3DInternal::getActiveUniform(Platform3DObject program, unsigned long index, ActiveInfo& info)
{
WebKit::WebGraphicsContext3D::ActiveInfo webInfo;
- if (!m_impl->getActiveUniform(EXTRACT(program), index, webInfo))
+ if (!m_impl->getActiveUniform(program, index, webInfo))
return false;
info.name = webInfo.name;
info.type = webInfo.type;
@@ -768,11 +691,11 @@ bool GraphicsContext3DInternal::getActiveUniform(WebGLProgram* program, unsigned
return true;
}
-DELEGATE_TO_IMPL_4_X1(getAttachedShaders, WebGLProgram*, int, int*, unsigned int*)
+DELEGATE_TO_IMPL_4(getAttachedShaders, Platform3DObject, int, int*, unsigned int*)
-int GraphicsContext3DInternal::getAttribLocation(WebGLProgram* program, const String& name)
+int GraphicsContext3DInternal::getAttribLocation(Platform3DObject program, const String& name)
{
- return m_impl->getAttribLocation(EXTRACT(program), name.utf8().data());
+ return m_impl->getAttribLocation(program, name.utf8().data());
}
DELEGATE_TO_IMPL_2(getBooleanv, unsigned long, unsigned char*)
@@ -799,25 +722,25 @@ DELEGATE_TO_IMPL_4(getFramebufferAttachmentParameteriv, unsigned long, unsigned
DELEGATE_TO_IMPL_2(getIntegerv, unsigned long, int*)
-DELEGATE_TO_IMPL_3_X1(getProgramiv, WebGLProgram*, unsigned long, int*)
+DELEGATE_TO_IMPL_3(getProgramiv, Platform3DObject, unsigned long, int*)
-String GraphicsContext3DInternal::getProgramInfoLog(WebGLProgram* program)
+String GraphicsContext3DInternal::getProgramInfoLog(Platform3DObject program)
{
- return m_impl->getProgramInfoLog(EXTRACT(program));
+ return m_impl->getProgramInfoLog(program);
}
DELEGATE_TO_IMPL_3(getRenderbufferParameteriv, unsigned long, unsigned long, int*)
-DELEGATE_TO_IMPL_3_X1(getShaderiv, WebGLShader*, unsigned long, int*)
+DELEGATE_TO_IMPL_3(getShaderiv, Platform3DObject, unsigned long, int*)
-String GraphicsContext3DInternal::getShaderInfoLog(WebGLShader* shader)
+String GraphicsContext3DInternal::getShaderInfoLog(Platform3DObject shader)
{
- return m_impl->getShaderInfoLog(EXTRACT(shader));
+ return m_impl->getShaderInfoLog(shader);
}
-String GraphicsContext3DInternal::getShaderSource(WebGLShader* shader)
+String GraphicsContext3DInternal::getShaderSource(Platform3DObject shader)
{
- return m_impl->getShaderSource(EXTRACT(shader));
+ return m_impl->getShaderSource(shader);
}
String GraphicsContext3DInternal::getString(unsigned long name)
@@ -828,12 +751,12 @@ String GraphicsContext3DInternal::getString(unsigned long name)
DELEGATE_TO_IMPL_3(getTexParameterfv, unsigned long, unsigned long, float*)
DELEGATE_TO_IMPL_3(getTexParameteriv, unsigned long, unsigned long, int*)
-DELEGATE_TO_IMPL_3_X1(getUniformfv, WebGLProgram*, long, float*)
-DELEGATE_TO_IMPL_3_X1(getUniformiv, WebGLProgram*, long, int*)
+DELEGATE_TO_IMPL_3(getUniformfv, Platform3DObject, long, float*)
+DELEGATE_TO_IMPL_3(getUniformiv, Platform3DObject, long, int*)
-long GraphicsContext3DInternal::getUniformLocation(WebGLProgram* program, const String& name)
+long GraphicsContext3DInternal::getUniformLocation(Platform3DObject program, const String& name)
{
- return m_impl->getUniformLocation(EXTRACT(program), name.utf8().data());
+ return m_impl->getUniformLocation(program, name.utf8().data());
}
DELEGATE_TO_IMPL_3(getVertexAttribfv, unsigned long, unsigned long, float*)
@@ -842,15 +765,15 @@ DELEGATE_TO_IMPL_3(getVertexAttribiv, unsigned long, unsigned long, int*)
DELEGATE_TO_IMPL_2R(getVertexAttribOffset, unsigned long, unsigned long, long)
DELEGATE_TO_IMPL_2(hint, unsigned long, unsigned long)
-DELEGATE_TO_IMPL_1R_X(isBuffer, WebGLBuffer*, bool)
+DELEGATE_TO_IMPL_1R(isBuffer, Platform3DObject, bool)
DELEGATE_TO_IMPL_1R(isEnabled, unsigned long, bool)
-DELEGATE_TO_IMPL_1R_X(isFramebuffer, WebGLFramebuffer*, bool)
-DELEGATE_TO_IMPL_1R_X(isProgram, WebGLProgram*, bool)
-DELEGATE_TO_IMPL_1R_X(isRenderbuffer, WebGLRenderbuffer*, bool)
-DELEGATE_TO_IMPL_1R_X(isShader, WebGLShader*, bool)
-DELEGATE_TO_IMPL_1R_X(isTexture, WebGLTexture*, bool)
+DELEGATE_TO_IMPL_1R(isFramebuffer, Platform3DObject, bool)
+DELEGATE_TO_IMPL_1R(isProgram, Platform3DObject, bool)
+DELEGATE_TO_IMPL_1R(isRenderbuffer, Platform3DObject, bool)
+DELEGATE_TO_IMPL_1R(isShader, Platform3DObject, bool)
+DELEGATE_TO_IMPL_1R(isTexture, Platform3DObject, bool)
DELEGATE_TO_IMPL_1(lineWidth, double)
-DELEGATE_TO_IMPL_1_X(linkProgram, WebGLProgram*)
+DELEGATE_TO_IMPL_1(linkProgram, Platform3DObject)
DELEGATE_TO_IMPL_2(pixelStorei, unsigned long, long)
DELEGATE_TO_IMPL_2(polygonOffset, double, double)
DELEGATE_TO_IMPL_7(readPixels, long, long, unsigned long, unsigned long, unsigned long, unsigned long, void*)
@@ -859,9 +782,9 @@ DELEGATE_TO_IMPL_4(renderbufferStorage, unsigned long, unsigned long, unsigned l
DELEGATE_TO_IMPL_2(sampleCoverage, double, bool)
DELEGATE_TO_IMPL_4(scissor, long, long, unsigned long, unsigned long)
-void GraphicsContext3DInternal::shaderSource(WebGLShader* shader, const String& string)
+void GraphicsContext3DInternal::shaderSource(Platform3DObject shader, const String& string)
{
- m_impl->shaderSource(EXTRACT(shader), string.utf8().data());
+ m_impl->shaderSource(shader, string.utf8().data());
}
DELEGATE_TO_IMPL_3(stencilFunc, unsigned long, long, unsigned long)
@@ -957,8 +880,8 @@ void GraphicsContext3DInternal::uniformMatrix4fv(long location, bool transpose,
m_impl->uniformMatrix4fv(location, size, transpose, value);
}
-DELEGATE_TO_IMPL_1_X(useProgram, WebGLProgram*)
-DELEGATE_TO_IMPL_1_X(validateProgram, WebGLProgram*)
+DELEGATE_TO_IMPL_1(useProgram, Platform3DObject)
+DELEGATE_TO_IMPL_1(validateProgram, Platform3DObject)
DELEGATE_TO_IMPL_2(vertexAttrib1f, unsigned long, float)
DELEGATE_TO_IMPL_2(vertexAttrib1fv, unsigned long, float*)
@@ -1129,9 +1052,9 @@ void GraphicsContext3D::prepareTexture()
#if USE(ACCELERATED_COMPOSITING)
PlatformLayer* GraphicsContext3D::platformLayer() const
{
- WebGLLayerChromium* webGLLayer = m_internal->platformLayer();
- webGLLayer->setContext(this);
- return webGLLayer;
+ CanvasLayerChromium* canvasLayer = m_internal->platformLayer();
+ canvasLayer->setContext(this);
+ return canvasLayer;
}
#endif
@@ -1140,13 +1063,13 @@ DELEGATE_TO_INTERNAL_1R(sizeInBytes, int, int)
DELEGATE_TO_INTERNAL_2(reshape, int, int)
DELEGATE_TO_INTERNAL_1(activeTexture, unsigned long)
-DELEGATE_TO_INTERNAL_2(attachShader, WebGLProgram*, WebGLShader*)
-DELEGATE_TO_INTERNAL_3(bindAttribLocation, WebGLProgram*, unsigned long, const String&)
+DELEGATE_TO_INTERNAL_2(attachShader, Platform3DObject, Platform3DObject)
+DELEGATE_TO_INTERNAL_3(bindAttribLocation, Platform3DObject, unsigned long, const String&)
-DELEGATE_TO_INTERNAL_2(bindBuffer, unsigned long, WebGLBuffer*)
-DELEGATE_TO_INTERNAL_2(bindFramebuffer, unsigned long, WebGLFramebuffer*)
-DELEGATE_TO_INTERNAL_2(bindRenderbuffer, unsigned long, WebGLRenderbuffer*)
-DELEGATE_TO_INTERNAL_2(bindTexture, unsigned long, WebGLTexture*)
+DELEGATE_TO_INTERNAL_2(bindBuffer, unsigned long, Platform3DObject)
+DELEGATE_TO_INTERNAL_2(bindFramebuffer, unsigned long, Platform3DObject)
+DELEGATE_TO_INTERNAL_2(bindRenderbuffer, unsigned long, Platform3DObject)
+DELEGATE_TO_INTERNAL_2(bindTexture, unsigned long, Platform3DObject)
DELEGATE_TO_INTERNAL_4(blendColor, double, double, double, double)
DELEGATE_TO_INTERNAL_1(blendEquation, unsigned long)
DELEGATE_TO_INTERNAL_2(blendEquationSeparate, unsigned long, unsigned long)
@@ -1165,7 +1088,7 @@ DELEGATE_TO_INTERNAL_4(clearColor, double, double, double, double)
DELEGATE_TO_INTERNAL_1(clearDepth, double)
DELEGATE_TO_INTERNAL_1(clearStencil, long)
DELEGATE_TO_INTERNAL_4(colorMask, bool, bool, bool, bool)
-DELEGATE_TO_INTERNAL_1(compileShader, WebGLShader*)
+DELEGATE_TO_INTERNAL_1(compileShader, Platform3DObject)
DELEGATE_TO_INTERNAL_8(copyTexImage2D, unsigned long, long, unsigned long, long, long, unsigned long, unsigned long, long)
DELEGATE_TO_INTERNAL_8(copyTexSubImage2D, unsigned long, long, long, long, long, long, unsigned long, unsigned long)
@@ -1173,7 +1096,7 @@ DELEGATE_TO_INTERNAL_1(cullFace, unsigned long)
DELEGATE_TO_INTERNAL_1(depthFunc, unsigned long)
DELEGATE_TO_INTERNAL_1(depthMask, bool)
DELEGATE_TO_INTERNAL_2(depthRange, double, double)
-DELEGATE_TO_INTERNAL_2(detachShader, WebGLProgram*, WebGLShader*)
+DELEGATE_TO_INTERNAL_2(detachShader, Platform3DObject, Platform3DObject)
DELEGATE_TO_INTERNAL_1(disable, unsigned long)
DELEGATE_TO_INTERNAL_1(disableVertexAttribArray, unsigned long)
DELEGATE_TO_INTERNAL_3(drawArrays, unsigned long, long, long)
@@ -1183,17 +1106,17 @@ DELEGATE_TO_INTERNAL_1(enable, unsigned long)
DELEGATE_TO_INTERNAL_1(enableVertexAttribArray, unsigned long)
DELEGATE_TO_INTERNAL(finish)
DELEGATE_TO_INTERNAL(flush)
-DELEGATE_TO_INTERNAL_4(framebufferRenderbuffer, unsigned long, unsigned long, unsigned long, WebGLRenderbuffer*)
-DELEGATE_TO_INTERNAL_5(framebufferTexture2D, unsigned long, unsigned long, unsigned long, WebGLTexture*, long)
+DELEGATE_TO_INTERNAL_4(framebufferRenderbuffer, unsigned long, unsigned long, unsigned long, Platform3DObject)
+DELEGATE_TO_INTERNAL_5(framebufferTexture2D, unsigned long, unsigned long, unsigned long, Platform3DObject, long)
DELEGATE_TO_INTERNAL_1(frontFace, unsigned long)
DELEGATE_TO_INTERNAL_1(generateMipmap, unsigned long)
-DELEGATE_TO_INTERNAL_3R(getActiveAttrib, WebGLProgram*, unsigned long, ActiveInfo&, bool)
-DELEGATE_TO_INTERNAL_3R(getActiveUniform, WebGLProgram*, unsigned long, ActiveInfo&, bool)
+DELEGATE_TO_INTERNAL_3R(getActiveAttrib, Platform3DObject, unsigned long, ActiveInfo&, bool)
+DELEGATE_TO_INTERNAL_3R(getActiveUniform, Platform3DObject, unsigned long, ActiveInfo&, bool)
-DELEGATE_TO_INTERNAL_4(getAttachedShaders, WebGLProgram*, int, int*, unsigned int*)
+DELEGATE_TO_INTERNAL_4(getAttachedShaders, Platform3DObject, int, int*, unsigned int*)
-DELEGATE_TO_INTERNAL_2R(getAttribLocation, WebGLProgram*, const String&, int)
+DELEGATE_TO_INTERNAL_2R(getAttribLocation, Platform3DObject, const String&, int)
DELEGATE_TO_INTERNAL_2(getBooleanv, unsigned long, unsigned char*)
@@ -1209,26 +1132,26 @@ DELEGATE_TO_INTERNAL_4(getFramebufferAttachmentParameteriv, unsigned long, unsig
DELEGATE_TO_INTERNAL_2(getIntegerv, unsigned long, int*)
-DELEGATE_TO_INTERNAL_3(getProgramiv, WebGLProgram*, unsigned long, int*)
+DELEGATE_TO_INTERNAL_3(getProgramiv, Platform3DObject, unsigned long, int*)
-DELEGATE_TO_INTERNAL_1R(getProgramInfoLog, WebGLProgram*, String)
+DELEGATE_TO_INTERNAL_1R(getProgramInfoLog, Platform3DObject, String)
DELEGATE_TO_INTERNAL_3(getRenderbufferParameteriv, unsigned long, unsigned long, int*)
-DELEGATE_TO_INTERNAL_3(getShaderiv, WebGLShader*, unsigned long, int*)
+DELEGATE_TO_INTERNAL_3(getShaderiv, Platform3DObject, unsigned long, int*)
-DELEGATE_TO_INTERNAL_1R(getShaderInfoLog, WebGLShader*, String)
+DELEGATE_TO_INTERNAL_1R(getShaderInfoLog, Platform3DObject, String)
-DELEGATE_TO_INTERNAL_1R(getShaderSource, WebGLShader*, String)
+DELEGATE_TO_INTERNAL_1R(getShaderSource, Platform3DObject, String)
DELEGATE_TO_INTERNAL_1R(getString, unsigned long, String)
DELEGATE_TO_INTERNAL_3(getTexParameterfv, unsigned long, unsigned long, float*)
DELEGATE_TO_INTERNAL_3(getTexParameteriv, unsigned long, unsigned long, int*)
-DELEGATE_TO_INTERNAL_3(getUniformfv, WebGLProgram*, long, float*)
-DELEGATE_TO_INTERNAL_3(getUniformiv, WebGLProgram*, long, int*)
+DELEGATE_TO_INTERNAL_3(getUniformfv, Platform3DObject, long, float*)
+DELEGATE_TO_INTERNAL_3(getUniformiv, Platform3DObject, long, int*)
-DELEGATE_TO_INTERNAL_2R(getUniformLocation, WebGLProgram*, const String&, long)
+DELEGATE_TO_INTERNAL_2R(getUniformLocation, Platform3DObject, const String&, long)
DELEGATE_TO_INTERNAL_3(getVertexAttribfv, unsigned long, unsigned long, float*)
DELEGATE_TO_INTERNAL_3(getVertexAttribiv, unsigned long, unsigned long, int*)
@@ -1236,15 +1159,15 @@ DELEGATE_TO_INTERNAL_3(getVertexAttribiv, unsigned long, unsigned long, int*)
DELEGATE_TO_INTERNAL_2R(getVertexAttribOffset, unsigned long, unsigned long, long)
DELEGATE_TO_INTERNAL_2(hint, unsigned long, unsigned long)
-DELEGATE_TO_INTERNAL_1R(isBuffer, WebGLBuffer*, bool)
+DELEGATE_TO_INTERNAL_1R(isBuffer, Platform3DObject, bool)
DELEGATE_TO_INTERNAL_1R(isEnabled, unsigned long, bool)
-DELEGATE_TO_INTERNAL_1R(isFramebuffer, WebGLFramebuffer*, bool)
-DELEGATE_TO_INTERNAL_1R(isProgram, WebGLProgram*, bool)
-DELEGATE_TO_INTERNAL_1R(isRenderbuffer, WebGLRenderbuffer*, bool)
-DELEGATE_TO_INTERNAL_1R(isShader, WebGLShader*, bool)
-DELEGATE_TO_INTERNAL_1R(isTexture, WebGLTexture*, bool)
+DELEGATE_TO_INTERNAL_1R(isFramebuffer, Platform3DObject, bool)
+DELEGATE_TO_INTERNAL_1R(isProgram, Platform3DObject, bool)
+DELEGATE_TO_INTERNAL_1R(isRenderbuffer, Platform3DObject, bool)
+DELEGATE_TO_INTERNAL_1R(isShader, Platform3DObject, bool)
+DELEGATE_TO_INTERNAL_1R(isTexture, Platform3DObject, bool)
DELEGATE_TO_INTERNAL_1(lineWidth, double)
-DELEGATE_TO_INTERNAL_1(linkProgram, WebGLProgram*)
+DELEGATE_TO_INTERNAL_1(linkProgram, Platform3DObject)
DELEGATE_TO_INTERNAL_2(pixelStorei, unsigned long, long)
DELEGATE_TO_INTERNAL_2(polygonOffset, double, double)
@@ -1254,7 +1177,7 @@ DELEGATE_TO_INTERNAL(releaseShaderCompiler)
DELEGATE_TO_INTERNAL_4(renderbufferStorage, unsigned long, unsigned long, unsigned long, unsigned long)
DELEGATE_TO_INTERNAL_2(sampleCoverage, double, bool)
DELEGATE_TO_INTERNAL_4(scissor, long, long, unsigned long, unsigned long)
-DELEGATE_TO_INTERNAL_2(shaderSource, WebGLShader*, const String&)
+DELEGATE_TO_INTERNAL_2(shaderSource, Platform3DObject, const String&)
DELEGATE_TO_INTERNAL_3(stencilFunc, unsigned long, long, unsigned long)
DELEGATE_TO_INTERNAL_4(stencilFuncSeparate, unsigned long, unsigned long, long, unsigned long)
DELEGATE_TO_INTERNAL_1(stencilMask, unsigned long)
@@ -1287,8 +1210,8 @@ DELEGATE_TO_INTERNAL_4(uniformMatrix2fv, long, bool, float*, int)
DELEGATE_TO_INTERNAL_4(uniformMatrix3fv, long, bool, float*, int)
DELEGATE_TO_INTERNAL_4(uniformMatrix4fv, long, bool, float*, int)
-DELEGATE_TO_INTERNAL_1(useProgram, WebGLProgram*)
-DELEGATE_TO_INTERNAL_1(validateProgram, WebGLProgram*)
+DELEGATE_TO_INTERNAL_1(useProgram, Platform3DObject)
+DELEGATE_TO_INTERNAL_1(validateProgram, Platform3DObject)
DELEGATE_TO_INTERNAL_2(vertexAttrib1f, unsigned long, float)
DELEGATE_TO_INTERNAL_2(vertexAttrib1fv, unsigned long, float*)
@@ -1302,8 +1225,8 @@ DELEGATE_TO_INTERNAL_6(vertexAttribPointer, unsigned long, int, int, bool, unsig
DELEGATE_TO_INTERNAL_4(viewport, long, long, unsigned long, unsigned long)
-DELEGATE_TO_INTERNAL_1(paintRenderingResultsToCanvas, WebGLRenderingContext*)
-DELEGATE_TO_INTERNAL_1(beginPaint, WebGLRenderingContext*)
+DELEGATE_TO_INTERNAL_1(paintRenderingResultsToCanvas, CanvasRenderingContext*)
+DELEGATE_TO_INTERNAL_1(beginPaint, CanvasRenderingContext*)
DELEGATE_TO_INTERNAL(endPaint)
DELEGATE_TO_INTERNAL_R(createBuffer, unsigned)
diff --git a/WebKit/chromium/src/IDBCallbacksProxy.cpp b/WebKit/chromium/src/IDBCallbacksProxy.cpp
index 4489e9b..3eab622 100644
--- a/WebKit/chromium/src/IDBCallbacksProxy.cpp
+++ b/WebKit/chromium/src/IDBCallbacksProxy.cpp
@@ -32,6 +32,7 @@
#include "IDBDatabaseError.h"
#include "IDBDatabaseProxy.h"
#include "WebIDBCallbacks.h"
+#include "WebIDBCursorImpl.h"
#include "WebIDBDatabaseImpl.h"
#include "WebIDBDatabaseError.h"
#include "WebIDBIndexImpl.h"
@@ -69,9 +70,15 @@ void IDBCallbacksProxy::onSuccess()
m_callbacks.clear();
}
-void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabase> idbDatabase)
+void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBCursorBackendInterface> idbCursorBackend)
{
- m_callbacks->onSuccess(new WebKit::WebIDBDatabaseImpl(idbDatabase));
+ m_callbacks->onSuccess(new WebKit::WebIDBCursorImpl(idbCursorBackend));
+ m_callbacks.clear();
+}
+
+void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backend)
+{
+ m_callbacks->onSuccess(new WebKit::WebIDBDatabaseImpl(backend));
m_callbacks.clear();
}
@@ -87,9 +94,9 @@ void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBKey> idbKey)
m_callbacks.clear();
}
-void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBObjectStore> idbObjectStore)
+void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBObjectStoreBackendInterface> backend)
{
- m_callbacks->onSuccess(new WebKit::WebIDBObjectStoreImpl(idbObjectStore));
+ m_callbacks->onSuccess(new WebKit::WebIDBObjectStoreImpl(backend));
m_callbacks.clear();
}
diff --git a/WebKit/chromium/src/IDBCallbacksProxy.h b/WebKit/chromium/src/IDBCallbacksProxy.h
index 10fc31a..506dbb0 100644
--- a/WebKit/chromium/src/IDBCallbacksProxy.h
+++ b/WebKit/chromium/src/IDBCallbacksProxy.h
@@ -49,10 +49,11 @@ public:
virtual void onError(PassRefPtr<IDBDatabaseError>);
virtual void onSuccess(); // For "null".
- virtual void onSuccess(PassRefPtr<IDBDatabase>);
+ virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>);
+ virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>);
virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>);
virtual void onSuccess(PassRefPtr<IDBKey>);
- virtual void onSuccess(PassRefPtr<IDBObjectStore>);
+ virtual void onSuccess(PassRefPtr<IDBObjectStoreBackendInterface>);
virtual void onSuccess(PassRefPtr<SerializedScriptValue>);
private:
diff --git a/WebKit/chromium/src/IDBCursorBackendProxy.cpp b/WebKit/chromium/src/IDBCursorBackendProxy.cpp
new file mode 100644
index 0000000..fff00b7
--- /dev/null
+++ b/WebKit/chromium/src/IDBCursorBackendProxy.cpp
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IDBCursorBackendProxy.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "IDBAny.h"
+#include "IDBCallbacks.h"
+#include "SerializedScriptValue.h"
+#include "WebIDBCallbacksImpl.h"
+#include "WebIDBKey.h"
+
+namespace WebCore {
+
+PassRefPtr<IDBCursorBackendInterface> IDBCursorBackendProxy::create(PassOwnPtr<WebKit::WebIDBCursor> idbCursor)
+{
+ return adoptRef(new IDBCursorBackendProxy(idbCursor));
+}
+
+IDBCursorBackendProxy::IDBCursorBackendProxy(PassOwnPtr<WebKit::WebIDBCursor> idbCursor)
+ : m_idbCursor(idbCursor)
+{
+}
+
+IDBCursorBackendProxy::~IDBCursorBackendProxy()
+{
+}
+
+unsigned short IDBCursorBackendProxy::direction() const
+{
+ return m_idbCursor->direction();
+}
+
+PassRefPtr<IDBKey> IDBCursorBackendProxy::key() const
+{
+ return m_idbCursor->key();
+}
+
+PassRefPtr<IDBAny> IDBCursorBackendProxy::value() const
+{
+ RefPtr<SerializedScriptValue> value = PassRefPtr<SerializedScriptValue>(m_idbCursor->value());
+ return IDBAny::create(value.get());
+}
+
+void IDBCursorBackendProxy::update(PassRefPtr<SerializedScriptValue> value, PassRefPtr<IDBCallbacks> callbacks)
+{
+ m_idbCursor->update(value, new WebIDBCallbacksImpl(callbacks));
+}
+
+void IDBCursorBackendProxy::continueFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
+{
+ m_idbCursor->continueFunction(key, new WebIDBCallbacksImpl(callbacks));
+}
+
+void IDBCursorBackendProxy::remove(PassRefPtr<IDBCallbacks> callbacks)
+{
+ m_idbCursor->remove(new WebIDBCallbacksImpl(callbacks));
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebKit/chromium/src/IDBCursorBackendProxy.h b/WebKit/chromium/src/IDBCursorBackendProxy.h
new file mode 100644
index 0000000..d8b621a
--- /dev/null
+++ b/WebKit/chromium/src/IDBCursorBackendProxy.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBCursorBackendProxy_h
+#define IDBCursorBackendProxy_h
+
+#if ENABLE(INDEXED_DATABASE)
+
+#include "IDBCursorBackendInterface.h"
+#include "WebIDBCursor.h"
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+
+class IDBCursorBackendProxy : public IDBCursorBackendInterface {
+public:
+ static PassRefPtr<IDBCursorBackendInterface> create(PassOwnPtr<WebKit::WebIDBCursor>);
+ virtual ~IDBCursorBackendProxy();
+
+ virtual unsigned short direction() const;
+ virtual PassRefPtr<IDBKey> key() const;
+ virtual PassRefPtr<IDBAny> value() const;
+ virtual void update(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBCallbacks>);
+ virtual void continueFunction(PassRefPtr<IDBKey>, PassRefPtr<IDBCallbacks>);
+ virtual void remove(PassRefPtr<IDBCallbacks>);
+
+private:
+ IDBCursorBackendProxy(PassOwnPtr<WebKit::WebIDBCursor>);
+
+ OwnPtr<WebKit::WebIDBCursor> m_idbCursor;
+};
+
+} // namespace WebCore
+
+#endif
+
+#endif // IDBCursorBackendProxy_h
diff --git a/WebKit/chromium/src/IDBDatabaseProxy.cpp b/WebKit/chromium/src/IDBDatabaseProxy.cpp
index 9d009c0..d11d182 100644
--- a/WebKit/chromium/src/IDBDatabaseProxy.cpp
+++ b/WebKit/chromium/src/IDBDatabaseProxy.cpp
@@ -29,6 +29,7 @@
#include "DOMStringList.h"
#include "IDBCallbacks.h"
#include "IDBObjectStoreProxy.h"
+#include "IDBTransactionBackendInterface.h"
#include "WebFrameImpl.h"
#include "WebIDBCallbacksImpl.h"
#include "WebIDBDatabase.h"
@@ -39,7 +40,7 @@
namespace WebCore {
-PassRefPtr<IDBDatabase> IDBDatabaseProxy::create(PassOwnPtr<WebKit::WebIDBDatabase> database)
+PassRefPtr<IDBDatabaseBackendInterface> IDBDatabaseProxy::create(PassOwnPtr<WebKit::WebIDBDatabase> database)
{
return adoptRef(new IDBDatabaseProxy(database));
}
@@ -78,7 +79,7 @@ void IDBDatabaseProxy::createObjectStore(const String& name, const String& keyPa
m_webIDBDatabase->createObjectStore(name, keyPath, autoIncrement, new WebIDBCallbacksImpl(callbacks));
}
-PassRefPtr<IDBObjectStore> IDBDatabaseProxy::objectStore(const String& name, unsigned short mode)
+PassRefPtr<IDBObjectStoreBackendInterface> IDBDatabaseProxy::objectStore(const String& name, unsigned short mode)
{
WebKit::WebIDBObjectStore* objectStore = m_webIDBDatabase->objectStore(name, mode);
if (!objectStore)
@@ -91,6 +92,13 @@ void IDBDatabaseProxy::removeObjectStore(const String& name, PassRefPtr<IDBCallb
m_webIDBDatabase->removeObjectStore(name, new WebIDBCallbacksImpl(callbacks));
}
+PassRefPtr<IDBTransactionBackendInterface> IDBDatabaseProxy::transaction(DOMStringList* storeNames, unsigned short mode, unsigned long timeout)
+{
+ // FIXME: plumb to the browser process, etc etc.
+ ASSERT_NOT_REACHED();
+ return 0;
+}
+
} // namespace WebCore
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebKit/chromium/src/IDBDatabaseProxy.h b/WebKit/chromium/src/IDBDatabaseProxy.h
index 36588f0..ed2016a 100644
--- a/WebKit/chromium/src/IDBDatabaseProxy.h
+++ b/WebKit/chromium/src/IDBDatabaseProxy.h
@@ -26,7 +26,7 @@
#ifndef IDBDatabaseProxy_h
#define IDBDatabaseProxy_h
-#include "IDBDatabase.h"
+#include "IDBDatabaseBackendInterface.h"
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
@@ -37,9 +37,9 @@ namespace WebKit { class WebIDBDatabase; }
namespace WebCore {
-class IDBDatabaseProxy : public IDBDatabase {
+class IDBDatabaseProxy : public IDBDatabaseBackendInterface {
public:
- static PassRefPtr<IDBDatabase> create(PassOwnPtr<WebKit::WebIDBDatabase>);
+ static PassRefPtr<IDBDatabaseBackendInterface> create(PassOwnPtr<WebKit::WebIDBDatabase>);
virtual ~IDBDatabaseProxy();
virtual String name() const;
@@ -50,8 +50,9 @@ public:
// FIXME: Add transaction and setVersion.
virtual void createObjectStore(const String& name, const String& keyPath, bool autoIncrement, PassRefPtr<IDBCallbacks>);
- virtual PassRefPtr<IDBObjectStore> objectStore(const String& name, unsigned short mode);
+ virtual PassRefPtr<IDBObjectStoreBackendInterface> objectStore(const String& name, unsigned short mode);
virtual void removeObjectStore(const String& name, PassRefPtr<IDBCallbacks>);
+ virtual PassRefPtr<IDBTransactionBackendInterface> transaction(DOMStringList* storeNames, unsigned short mode, unsigned long timeout);
private:
IDBDatabaseProxy(PassOwnPtr<WebKit::WebIDBDatabase>);
diff --git a/WebKit/chromium/src/IDBObjectStoreProxy.cpp b/WebKit/chromium/src/IDBObjectStoreProxy.cpp
index 858ed20..ad27fa3 100755
--- a/WebKit/chromium/src/IDBObjectStoreProxy.cpp
+++ b/WebKit/chromium/src/IDBObjectStoreProxy.cpp
@@ -29,7 +29,9 @@
#include "DOMStringList.h"
#include "IDBCallbacks.h"
#include "IDBIndexBackendProxy.h"
+#include "IDBKeyRange.h"
#include "WebIDBCallbacksImpl.h"
+#include "WebIDBKeyRange.h"
#include "WebIDBIndex.h"
#include "WebIDBKey.h"
#include "WebIDBObjectStore.h"
@@ -39,7 +41,7 @@
namespace WebCore {
-PassRefPtr<IDBObjectStore> IDBObjectStoreProxy::create(PassOwnPtr<WebKit::WebIDBObjectStore> objectStore)
+PassRefPtr<IDBObjectStoreBackendInterface> IDBObjectStoreProxy::create(PassOwnPtr<WebKit::WebIDBObjectStore> objectStore)
{
return adoptRef(new IDBObjectStoreProxy(objectStore));
}
@@ -101,6 +103,11 @@ void IDBObjectStoreProxy::removeIndex(const String& name, PassRefPtr<IDBCallback
m_webIDBObjectStore->removeIndex(name, new WebIDBCallbacksImpl(callbacks));
}
+void IDBObjectStoreProxy::openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks> callbacks)
+{
+ m_webIDBObjectStore->openCursor(range, direction, new WebIDBCallbacksImpl(callbacks));
+}
+
} // namespace WebCore
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebKit/chromium/src/IDBObjectStoreProxy.h b/WebKit/chromium/src/IDBObjectStoreProxy.h
index b380bdc..a334572 100755
--- a/WebKit/chromium/src/IDBObjectStoreProxy.h
+++ b/WebKit/chromium/src/IDBObjectStoreProxy.h
@@ -26,7 +26,7 @@
#ifndef IDBObjectStoreProxy_h
#define IDBObjectStoreProxy_h
-#include "IDBObjectStore.h"
+#include "IDBObjectStoreBackendInterface.h"
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
@@ -37,9 +37,9 @@ namespace WebKit { class WebIDBObjectStore; }
namespace WebCore {
-class IDBObjectStoreProxy : public IDBObjectStore {
+class IDBObjectStoreProxy : public IDBObjectStoreBackendInterface {
public:
- static PassRefPtr<IDBObjectStore> create(PassOwnPtr<WebKit::WebIDBObjectStore>);
+ static PassRefPtr<IDBObjectStoreBackendInterface> create(PassOwnPtr<WebKit::WebIDBObjectStore>);
~IDBObjectStoreProxy();
String name() const;
@@ -54,6 +54,8 @@ public:
PassRefPtr<IDBIndexBackendInterface> index(const String& name);
void removeIndex(const String& name, PassRefPtr<IDBCallbacks>);
+ virtual void openCursor(PassRefPtr<IDBKeyRange> range, unsigned short direction, PassRefPtr<IDBCallbacks>);
+
private:
IDBObjectStoreProxy(PassOwnPtr<WebKit::WebIDBObjectStore>);
diff --git a/WebKit/chromium/src/InspectorClientImpl.cpp b/WebKit/chromium/src/InspectorClientImpl.cpp
index cf491f7..76acbb2 100644
--- a/WebKit/chromium/src/InspectorClientImpl.cpp
+++ b/WebKit/chromium/src/InspectorClientImpl.cpp
@@ -36,7 +36,6 @@
#include "NotImplemented.h"
#include "Page.h"
#include "WebDevToolsAgentImpl.h"
-#include "WebDevToolsMessageData.h"
#include "WebRect.h"
#include "WebURL.h"
#include "WebURLRequest.h"
@@ -94,7 +93,7 @@ void InspectorClientImpl::storeSetting(const String& key, const String& value)
agent->storeSetting(key, value);
}
-bool InspectorClientImpl::sendMessageToFrontend(const WebCore::String& message)
+bool InspectorClientImpl::sendMessageToFrontend(const WTF::String& message)
{
if (WebDevToolsAgentImpl* agent = devToolsAgent())
return agent->sendMessageToFrontend(message);
diff --git a/WebKit/chromium/src/InspectorClientImpl.h b/WebKit/chromium/src/InspectorClientImpl.h
index 0605ccd..34fcdc3 100644
--- a/WebKit/chromium/src/InspectorClientImpl.h
+++ b/WebKit/chromium/src/InspectorClientImpl.h
@@ -53,10 +53,10 @@ public:
virtual void highlight(WebCore::Node*);
virtual void hideHighlight();
- virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
- virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
+ virtual void populateSetting(const WTF::String& key, WTF::String* value);
+ virtual void storeSetting(const WTF::String& key, const WTF::String& value);
- virtual bool sendMessageToFrontend(const WebCore::String&);
+ virtual bool sendMessageToFrontend(const WTF::String&);
virtual void resourceTrackingWasEnabled();
virtual void resourceTrackingWasDisabled();
diff --git a/WebKit/chromium/src/InspectorFrontendClientImpl.cpp b/WebKit/chromium/src/InspectorFrontendClientImpl.cpp
index 870bdee..46f2cb6 100644
--- a/WebKit/chromium/src/InspectorFrontendClientImpl.cpp
+++ b/WebKit/chromium/src/InspectorFrontendClientImpl.cpp
@@ -40,6 +40,7 @@
#include "V8Proxy.h"
#include "WebDevToolsFrontendClient.h"
#include "WebDevToolsFrontendImpl.h"
+#include "WebString.h"
using namespace WebCore;
@@ -126,13 +127,7 @@ void InspectorFrontendClientImpl::inspectedURLChanged(const String& url)
void InspectorFrontendClientImpl::sendMessageToBackend(const String& message)
{
- WebDevToolsMessageData messageData;
- messageData.className = "ToolsAgent";
- messageData.methodName = "dispatchOnInspectorController";
- WebVector<WebString> args(static_cast<size_t>(1));
- args[0] = message;
- messageData.arguments.swap(args);
- m_client->sendMessageToAgent(messageData);
+ m_client->sendMessageToBackend(message);
}
} // namespace WebKit
diff --git a/WebKit/chromium/src/InspectorFrontendClientImpl.h b/WebKit/chromium/src/InspectorFrontendClientImpl.h
index f7174ce..1507bf2 100644
--- a/WebKit/chromium/src/InspectorFrontendClientImpl.h
+++ b/WebKit/chromium/src/InspectorFrontendClientImpl.h
@@ -56,8 +56,8 @@ public:
virtual void moveWindowBy(float x, float y);
- virtual WebCore::String localizedStringsURL();
- virtual WebCore::String hiddenPanels();
+ virtual WTF::String localizedStringsURL();
+ virtual WTF::String hiddenPanels();
virtual void bringToFront();
virtual void closeWindow();
@@ -66,9 +66,9 @@ public:
virtual void requestDetachWindow();
virtual void changeAttachedWindowHeight(unsigned);
- virtual void inspectedURLChanged(const WebCore::String&);
+ virtual void inspectedURLChanged(const WTF::String&);
- virtual void sendMessageToBackend(const WebCore::String&);
+ virtual void sendMessageToBackend(const WTF::String&);
private:
WebCore::Page* m_frontendPage;
WebDevToolsFrontendClient* m_client;
diff --git a/WebKit/chromium/src/ToolsAgent.h b/WebKit/chromium/src/ToolsAgent.h
deleted file mode 100644
index 937fcf0..0000000
--- a/WebKit/chromium/src/ToolsAgent.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ToolsAgent_h
-#define ToolsAgent_h
-
-#include "DevToolsRPC.h"
-
-namespace WebKit {
-
-// Tools agent provides API for enabling / disabling other agents as well as
-// API for auxiliary UI functions such as dom elements highlighting.
-#define TOOLS_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
- /* Dispatches given function on the InspectorController object */ \
- METHOD1(dispatchOnInspectorController, String /* message */) \
-
-DEFINE_RPC_CLASS(ToolsAgent, TOOLS_AGENT_STRUCT)
-
-#define TOOLS_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
- /* Response to the DispatchOn*. */ \
- METHOD3(didDispatchOn, int /* call_id */, String /* result */, String /* exception */) \
- \
- /* Sends InspectorFrontend message to be dispatched on client. */ \
- METHOD1(dispatchOnClient, String /* data */)
-
-DEFINE_RPC_CLASS(ToolsAgentDelegate, TOOLS_AGENT_DELEGATE_STRUCT)
-
-} // namespace WebKit
-
-#endif
diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
index 1a65bfe..4de5624 100644
--- a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
+++ b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
@@ -31,36 +31,23 @@
#include "config.h"
#include "WebDevToolsAgentImpl.h"
-#include "BoundObject.h"
#include "DebuggerAgentImpl.h"
#include "DebuggerAgentManager.h"
-#include "Document.h"
-#include "EventListener.h"
#include "InjectedScriptHost.h"
-#include "InspectorBackend.h"
#include "InspectorBackendDispatcher.h"
#include "InspectorController.h"
-#include "InspectorFrontend.h"
-#include "InspectorResource.h"
-#include "Node.h"
#include "Page.h"
#include "PageGroup.h"
#include "PlatformString.h"
-#include "ProfilerAgentImpl.h"
#include "ResourceError.h"
#include "ResourceRequest.h"
#include "ResourceResponse.h"
#include "ScriptDebugServer.h"
-#include "ScriptObject.h"
-#include "ScriptState.h"
-#include "ScriptValue.h"
#include "V8Binding.h"
#include "V8Proxy.h"
#include "V8Utilities.h"
#include "WebDataSource.h"
#include "WebDevToolsAgentClient.h"
-#include "WebDevToolsMessageData.h"
-#include "WebDevToolsMessageTransport.h"
#include "WebFrameImpl.h"
#include "WebRect.h"
#include "WebString.h"
@@ -73,24 +60,16 @@
#include <wtf/Noncopyable.h>
#include <wtf/OwnPtr.h>
-using WebCore::Document;
using WebCore::DocumentLoader;
using WebCore::FrameLoader;
using WebCore::InjectedScriptHost;
-using WebCore::InspectorBackend;
using WebCore::InspectorController;
-using WebCore::InspectorFrontend;
-using WebCore::InspectorResource;
using WebCore::Node;
using WebCore::Page;
using WebCore::ResourceError;
using WebCore::ResourceRequest;
using WebCore::ResourceResponse;
-using WebCore::SafeAllocation;
-using WebCore::ScriptObject;
-using WebCore::ScriptState;
-using WebCore::ScriptValue;
-using WebCore::String;
+using WTF::String;
using WebCore::V8DOMWrapper;
using WebCore::V8Proxy;
@@ -98,32 +77,11 @@ namespace WebKit {
namespace {
-void InspectorBackendWeakReferenceCallback(v8::Persistent<v8::Value> object, void* parameter)
-{
- InspectorBackend* backend = static_cast<InspectorBackend*>(parameter);
- backend->deref();
- object.Dispose();
-}
-
+static const char kFrontendConnectedFeatureName[] = "frontend-connected";
static const char kResourceTrackingFeatureName[] = "resource-tracking";
static const char kTimelineFeatureName[] = "timeline-profiler";
static const char kApuAgentFeatureName[] = "apu-agent";
-class IORPCDelegate : public DevToolsRPC::Delegate, public Noncopyable {
-public:
- IORPCDelegate() : m_transport(0) { }
- explicit IORPCDelegate(WebDevToolsMessageTransport* transport) : m_transport(transport) { }
- virtual ~IORPCDelegate() { }
- virtual void sendRpcMessage(const WebDevToolsMessageData& data)
- {
- if (m_transport)
- m_transport->sendMessageToFrontendOnIOThread(data);
- }
-
-private:
- WebDevToolsMessageTransport* m_transport;
-};
-
class ClientMessageLoopAdapter : public WebCore::ScriptDebugServer::ClientMessageLoop {
public:
static void ensureClientMessageLoopCreated(WebDevToolsAgentClient* client)
@@ -222,24 +180,12 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl(
{
DebuggerAgentManager::setExposeV8DebuggerProtocol(
client->exposeV8DebuggerProtocol());
- m_debuggerAgentDelegateStub.set(new DebuggerAgentDelegateStub(this));
- m_toolsAgentDelegateStub.set(new ToolsAgentDelegateStub(this));
- m_apuAgentDelegateStub.set(new ApuAgentDelegateStub(this));
}
WebDevToolsAgentImpl::~WebDevToolsAgentImpl()
{
DebuggerAgentManager::onWebViewClosed(m_webViewImpl);
ClientMessageLoopAdapter::inspectedViewClosed(m_webViewImpl);
- disposeUtilityContext();
-}
-
-void WebDevToolsAgentImpl::disposeUtilityContext()
-{
- if (!m_utilityContext.IsEmpty()) {
- m_utilityContext.Dispose();
- m_utilityContext.Clear();
- }
}
void WebDevToolsAgentImpl::attach()
@@ -251,42 +197,44 @@ void WebDevToolsAgentImpl::attach()
ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client);
m_debuggerAgentImpl.set(
- new DebuggerAgentImpl(m_webViewImpl,
- m_debuggerAgentDelegateStub.get(),
- this));
- createInspectorFrontendProxy();
-
- // Allow controller to send messages to the frontend.
- InspectorController* ic = inspectorController();
+ new DebuggerAgentImpl(m_webViewImpl, this, m_client));
+ WebCString debuggerScriptJs = m_client->debuggerScriptSource();
+ WebCore::ScriptDebugServer::shared().setDebuggerScriptSource(
+ WTF::String(debuggerScriptJs.data(), debuggerScriptJs.length()));
- { // TODO(yurys): the source should have already been pushed by the frontend.
- v8::HandleScope scope;
- v8::Context::Scope contextScope(m_utilityContext);
- v8::Handle<v8::Value> constructorValue = m_utilityContext->Global()->Get(
- v8::String::New("injectedScriptConstructor"));
- if (constructorValue->IsFunction()) {
- String source = WebCore::toWebCoreString(constructorValue);
- ic->injectedScriptHost()->setInjectedScriptSource("(" + source + ")");
- }
+ // TODO(yurys): the source should have already been pushed by the frontend.
+ WebCString injectedScriptJs = m_client->injectedScriptSource();
+ String injectedScriptSource = String::fromUTF8(injectedScriptJs.data(), injectedScriptJs.length());
+ const char* varDefinition = "var injectedScriptConstructor = ";
+ int pos = injectedScriptSource.find(varDefinition);
+ if (pos == -1) {
+ ASSERT_NOT_REACHED();
+ return;
}
-
- setInspectorFrontendProxyToInspectorController();
+ pos += String(varDefinition).length();
+ injectedScriptSource = injectedScriptSource.substring(pos);
+ inspectorController()->injectedScriptHost()->setInjectedScriptSource(injectedScriptSource);
m_attached = true;
}
void WebDevToolsAgentImpl::detach()
{
// Prevent controller from sending messages to the frontend.
- InspectorController* ic = m_webViewImpl->page()->inspectorController();
+ InspectorController* ic = inspectorController();
ic->disconnectFrontend();
ic->hideHighlight();
ic->close();
- disposeUtilityContext();
m_debuggerAgentImpl.set(0);
m_attached = false;
m_apuAgentEnabled = false;
}
+void WebDevToolsAgentImpl::frontendLoaded()
+{
+ inspectorController()->connectFrontend();
+ m_client->runtimeFeatureStateChanged(kFrontendConnectedFeatureName, true);
+}
+
void WebDevToolsAgentImpl::didNavigate()
{
ClientMessageLoopAdapter::didNavigate();
@@ -296,10 +244,6 @@ void WebDevToolsAgentImpl::didNavigate()
void WebDevToolsAgentImpl::didClearWindowObject(WebFrameImpl* webframe)
{
DebuggerAgentManager::setHostId(webframe, m_hostId);
- if (m_attached) {
- // Push context id into the client if it is already attached.
- m_debuggerAgentDelegateStub->setContextId(m_hostId);
- }
}
void WebDevToolsAgentImpl::forceRepaint()
@@ -307,23 +251,11 @@ void WebDevToolsAgentImpl::forceRepaint()
m_client->forceRepaint();
}
-void WebDevToolsAgentImpl::dispatchOnInspectorController(const String& message)
+void WebDevToolsAgentImpl::dispatchOnInspectorBackend(const WebString& message)
{
inspectorController()->inspectorBackendDispatcher()->dispatch(message);
}
-void WebDevToolsAgentImpl::dispatchMessageFromFrontend(const WebDevToolsMessageData& data)
-{
- if (ToolsAgentDispatch::dispatch(this, data))
- return;
-
- if (!m_attached)
- return;
-
- if (m_debuggerAgentImpl.get() && DebuggerAgentDispatch::dispatch(m_debuggerAgentImpl.get(), data))
- return;
-}
-
void WebDevToolsAgentImpl::inspectElementAt(const WebPoint& point)
{
m_webViewImpl->inspectElementAt(point);
@@ -336,67 +268,19 @@ void WebDevToolsAgentImpl::setRuntimeFeatureEnabled(const WebString& feature, bo
else if (feature == kTimelineFeatureName)
setTimelineProfilingEnabled(enabled);
else if (feature == kResourceTrackingFeatureName) {
- InspectorController* ic = m_webViewImpl->page()->inspectorController();
+ InspectorController* ic = inspectorController();
if (enabled)
ic->enableResourceTracking(false /* not sticky */, false /* no reload */);
else
ic->disableResourceTracking(false /* not sticky */);
- }
-}
-
-void WebDevToolsAgentImpl::sendRpcMessage(const WebDevToolsMessageData& data)
-{
- m_client->sendMessageToFrontend(data);
-}
-
-void WebDevToolsAgentImpl::compileUtilityScripts()
-{
- v8::HandleScope handleScope;
- v8::Context::Scope contextScope(m_utilityContext);
- // Inject javascript into the context.
- WebCString injectedScriptJs = m_client->injectedScriptSource();
- v8::Script::Compile(v8::String::New(
- injectedScriptJs.data(),
- injectedScriptJs.length()))->Run();
- WebCString injectDispatchJs = m_client->injectedScriptDispatcherSource();
- v8::Script::Compile(v8::String::New(
- injectDispatchJs.data(),
- injectDispatchJs.length()))->Run();
-}
-
-void WebDevToolsAgentImpl::initDevToolsAgentHost()
-{
- BoundObject devtoolsAgentHost(m_utilityContext, this, "DevToolsAgentHost");
- devtoolsAgentHost.addProtoFunction(
- "dispatch",
- WebDevToolsAgentImpl::jsDispatchOnClient);
- devtoolsAgentHost.build();
-}
-
-void WebDevToolsAgentImpl::createInspectorFrontendProxy()
-{
- disposeUtilityContext();
- m_utilityContext = v8::Context::New();
- compileUtilityScripts();
- initDevToolsAgentHost();
- WebCString debuggerScriptJs = m_client->debuggerScriptSource();
- WebCore::ScriptDebugServer::shared().setDebuggerScriptSource(
- WebCore::String(debuggerScriptJs.data(), debuggerScriptJs.length()));
-}
-
-void WebDevToolsAgentImpl::setInspectorFrontendProxyToInspectorController()
-{
- v8::HandleScope scope;
- ScriptState* state = ScriptState::forContext(
- v8::Local<v8::Context>::New(m_utilityContext));
- InspectorController* ic = inspectorController();
- ic->connectFrontend(ScriptObject(state, m_utilityContext->Global()));
+ } else if (feature == kFrontendConnectedFeatureName && enabled && !inspectorController()->hasFrontend())
+ frontendLoaded();
}
void WebDevToolsAgentImpl::setApuAgentEnabled(bool enabled)
{
m_apuAgentEnabled = enabled;
- InspectorController* ic = m_webViewImpl->page()->inspectorController();
+ InspectorController* ic = inspectorController();
if (enabled) {
m_resourceTrackingWasEnabled = ic->resourceTrackingEnabled();
ic->startTimelineProfiler();
@@ -417,32 +301,6 @@ void WebDevToolsAgentImpl::setApuAgentEnabled(bool enabled)
enabled);
}
-// static
-v8::Handle<v8::Value> WebDevToolsAgentImpl::jsDispatchOnClient(const v8::Arguments& args)
-{
- v8::TryCatch exceptionCatcher;
- String message = WebCore::toWebCoreStringWithNullCheck(args[0]);
- if (message.isEmpty() || exceptionCatcher.HasCaught())
- return v8::Undefined();
-
- WebDevToolsAgentImpl* agent = static_cast<WebDevToolsAgentImpl*>(v8::External::Cast(*args.Data())->Value());
-
- if (!agent->m_apuAgentEnabled) {
- agent->m_toolsAgentDelegateStub->dispatchOnClient(message);
- return v8::Undefined();
- }
-
- String method = WebCore::toWebCoreStringWithNullCheck(args[1]);
- if (method.isEmpty() || exceptionCatcher.HasCaught())
- return v8::Undefined();
-
- if (method != "addRecordToTimeline" && method != "updateResource" && method != "addResource")
- return v8::Undefined();
-
- agent->m_apuAgentDelegateStub->dispatchToApu(message);
- return v8::Undefined();
-}
-
WebCore::InspectorController* WebDevToolsAgentImpl::inspectorController()
{
if (Page* page = m_webViewImpl->page())
@@ -537,24 +395,18 @@ void WebDevToolsAgentImpl::storeSetting(const String& key, const String& value)
m_webViewImpl->setInspectorSetting(key, value);
}
-bool WebDevToolsAgentImpl::sendMessageToFrontend(const WebCore::String& message)
+bool WebDevToolsAgentImpl::sendMessageToFrontend(const WTF::String& message)
{
WebDevToolsAgentImpl* devToolsAgent = static_cast<WebDevToolsAgentImpl*>(m_webViewImpl->devToolsAgent());
if (!devToolsAgent)
return false;
- if (devToolsAgent->m_apuAgentEnabled && devToolsAgent->m_apuAgentDelegateStub) {
- devToolsAgent->m_apuAgentDelegateStub->dispatchToApu(message);
+ if (devToolsAgent->m_apuAgentEnabled) {
+ m_client->sendDispatchToAPU(message);
return true;
}
- WebVector<WebString> arguments(size_t(1));
- arguments[0] = message;
- WebDevToolsMessageData data;
- data.className = "ToolsAgentDelegate";
- data.methodName = "dispatchOnClient";
- data.arguments.swap(arguments);
- devToolsAgent->sendRpcMessage(data);
+ m_client->sendMessageToInspectorFrontend(message);
return true;
}
@@ -608,12 +460,4 @@ void WebDevToolsAgent::setMessageLoopDispatchHandler(MessageLoopDispatchHandler
DebuggerAgentManager::setMessageLoopDispatchHandler(handler);
}
-bool WebDevToolsAgent::dispatchMessageFromFrontendOnIOThread(WebDevToolsMessageTransport* transport, const WebDevToolsMessageData& data)
-{
- IORPCDelegate delegate(transport);
- ProfilerAgentDelegateStub stub(&delegate);
- ProfilerAgentImpl agent(&stub);
- return ProfilerAgentDispatch::dispatch(&agent, data);
-}
-
} // namespace WebKit
diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.h b/WebKit/chromium/src/WebDevToolsAgentImpl.h
index c8e22b0..a0d2647 100644
--- a/WebKit/chromium/src/WebDevToolsAgentImpl.h
+++ b/WebKit/chromium/src/WebDevToolsAgentImpl.h
@@ -33,12 +33,10 @@
#include "InspectorClient.h"
-#include "APUAgentDelegate.h"
-#include "DevToolsRPC.h"
-#include "ToolsAgent.h"
#include "WebDevToolsAgentPrivate.h"
#include <v8.h>
+#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
namespace WebCore {
@@ -46,12 +44,10 @@ class Document;
class InspectorClient;
class InspectorController;
class Node;
-class String;
}
namespace WebKit {
-class DebuggerAgentDelegateStub;
class DebuggerAgentImpl;
class WebDevToolsAgentClient;
class WebFrame;
@@ -64,24 +60,20 @@ struct WebURLError;
struct WebDevToolsMessageData;
class WebDevToolsAgentImpl : public WebDevToolsAgentPrivate,
- public ToolsAgent,
- public DevToolsRPC::Delegate,
public WebCore::InspectorClient {
public:
WebDevToolsAgentImpl(WebViewImpl* webViewImpl, WebDevToolsAgentClient* client);
virtual ~WebDevToolsAgentImpl();
- // ToolsAgent implementation.
- virtual void dispatchOnInspectorController(const WebCore::String& message);
-
// WebDevToolsAgentPrivate implementation.
virtual void didClearWindowObject(WebFrameImpl* frame);
// WebDevToolsAgent implementation.
virtual void attach();
virtual void detach();
+ virtual void frontendLoaded();
virtual void didNavigate();
- virtual void dispatchMessageFromFrontend(const WebDevToolsMessageData& data);
+ virtual void dispatchOnInspectorBackend(const WebString& message);
virtual void inspectElementAt(const WebPoint& point);
virtual void evaluateInWebInspector(long callId, const WebString& script);
virtual void setRuntimeFeatureEnabled(const WebString& feature, bool enabled);
@@ -99,30 +91,19 @@ public:
virtual void openInspectorFrontend(WebCore::InspectorController*);
virtual void highlight(WebCore::Node*);
virtual void hideHighlight();
- virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
- virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
+ virtual void populateSetting(const WTF::String& key, WTF::String* value);
+ virtual void storeSetting(const WTF::String& key, const WTF::String& value);
virtual void resourceTrackingWasEnabled();
virtual void resourceTrackingWasDisabled();
virtual void timelineProfilerWasStarted();
virtual void timelineProfilerWasStopped();
- virtual bool sendMessageToFrontend(const WebCore::String&);
-
- // DevToolsRPC::Delegate implementation.
- virtual void sendRpcMessage(const WebDevToolsMessageData& data);
+ virtual bool sendMessageToFrontend(const WTF::String&);
void forceRepaint();
int hostId() { return m_hostId; }
private:
- static v8::Handle<v8::Value> jsDispatchOnClient(const v8::Arguments& args);
-
- void disposeUtilityContext();
-
- void compileUtilityScripts();
- void initDevToolsAgentHost();
- void createInspectorFrontendProxy();
- void setInspectorFrontendProxyToInspectorController();
void setApuAgentEnabled(bool enabled);
WebCore::InspectorController* inspectorController();
@@ -130,16 +111,10 @@ private:
int m_hostId;
WebDevToolsAgentClient* m_client;
WebViewImpl* m_webViewImpl;
- OwnPtr<DebuggerAgentDelegateStub> m_debuggerAgentDelegateStub;
- OwnPtr<ToolsAgentDelegateStub> m_toolsAgentDelegateStub;
OwnPtr<DebuggerAgentImpl> m_debuggerAgentImpl;
- OwnPtr<ApuAgentDelegateStub> m_apuAgentDelegateStub;
bool m_apuAgentEnabled;
bool m_resourceTrackingWasEnabled;
bool m_attached;
- // TODO(pfeldman): This should not be needed once GC styles issue is fixed
- // for matching rules.
- v8::Persistent<v8::Context> m_utilityContext;
};
} // namespace WebKit
diff --git a/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp b/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp
index 592a532..c1b09c4 100644
--- a/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp
+++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp
@@ -35,8 +35,6 @@
#include "ContextMenuController.h"
#include "ContextMenuItem.h"
#include "DOMWindow.h"
-#include "DebuggerAgent.h"
-#include "DevToolsRPCJS.h"
#include "Document.h"
#include "Event.h"
#include "Frame.h"
@@ -48,10 +46,8 @@
#include "Page.h"
#include "Pasteboard.h"
#include "PlatformString.h"
-#include "ProfilerAgent.h"
#include "SecurityOrigin.h"
#include "Settings.h"
-#include "ToolsAgent.h"
#include "V8Binding.h"
#include "V8DOMWrapper.h"
#include "V8InspectorFrontendHost.h"
@@ -78,10 +74,6 @@ static v8::Local<v8::String> ToV8String(const String& s)
return v8::String::New(reinterpret_cast<const uint16_t*>(s.characters()), s.length());
}
-DEFINE_RPC_JS_BOUND_OBJ(DebuggerAgent, DEBUGGER_AGENT_STRUCT, DebuggerAgentDelegate, DEBUGGER_AGENT_DELEGATE_STRUCT)
-DEFINE_RPC_JS_BOUND_OBJ(ProfilerAgent, PROFILER_AGENT_STRUCT, ProfilerAgentDelegate, PROFILER_AGENT_DELEGATE_STRUCT)
-DEFINE_RPC_JS_BOUND_OBJ(ToolsAgent, TOOLS_AGENT_STRUCT, ToolsAgentDelegate, TOOLS_AGENT_DELEGATE_STRUCT)
-
WebDevToolsFrontend* WebDevToolsFrontend::create(
WebView* view,
WebDevToolsFrontendClient* client,
@@ -113,16 +105,9 @@ WebDevToolsFrontendImpl::WebDevToolsFrontendImpl(
v8::HandleScope scope;
v8::Handle<v8::Context> frameContext = V8Proxy::context(frame->frame());
- m_debuggerAgentObj.set(new JSDebuggerAgentBoundObj(this, frameContext, "RemoteDebuggerAgent"));
- m_profilerAgentObj.set(new JSProfilerAgentBoundObj(this, frameContext, "RemoteProfilerAgent"));
- m_toolsAgentObj.set(new JSToolsAgentBoundObj(this, frameContext, "RemoteToolsAgent"));
-
// Debugger commands should be sent using special method.
BoundObject debuggerCommandExecutorObj(frameContext, this, "RemoteDebuggerCommandExecutor");
debuggerCommandExecutorObj.addProtoFunction(
- "DebuggerCommand",
- WebDevToolsFrontendImpl::jsDebuggerCommand);
- debuggerCommandExecutorObj.addProtoFunction(
"DebuggerPauseScript",
WebDevToolsFrontendImpl::jsDebuggerPauseScript);
debuggerCommandExecutorObj.build();
@@ -132,33 +117,7 @@ WebDevToolsFrontendImpl::~WebDevToolsFrontendImpl()
{
}
-void WebDevToolsFrontendImpl::dispatchMessageFromAgent(const WebDevToolsMessageData& data)
-{
- Vector<String> v;
- v.append(data.className);
- v.append(data.methodName);
- for (size_t i = 0; i < data.arguments.size(); i++)
- v.append(data.arguments[i]);
- if (!m_loaded) {
- m_pendingIncomingMessages.append(v);
- return;
- }
- executeScript(v);
-}
-
-void WebDevToolsFrontendImpl::frontendLoaded()
-{
- m_loaded = true;
-
- for (Vector<Vector<String> >::iterator it = m_pendingIncomingMessages.begin();
- it != m_pendingIncomingMessages.end();
- ++it) {
- executeScript(*it);
- }
- m_pendingIncomingMessages.clear();
-}
-
-void WebDevToolsFrontendImpl::executeScript(const Vector<String>& v)
+void WebDevToolsFrontendImpl::dispatchOnInspectorFrontend(const WebString& message)
{
WebFrameImpl* frame = m_webViewImpl->mainFrameImpl();
v8::HandleScope scope;
@@ -168,24 +127,15 @@ void WebDevToolsFrontendImpl::executeScript(const Vector<String>& v)
ASSERT(dispatchFunction->IsFunction());
v8::Handle<v8::Function> function = v8::Handle<v8::Function>::Cast(dispatchFunction);
Vector< v8::Handle<v8::Value> > args;
- for (size_t i = 0; i < v.size(); i++)
- args.append(ToV8String(v.at(i)));
+ args.append(ToV8String(message));
v8::TryCatch tryCatch;
tryCatch.SetVerbose(true);
function->Call(frameContext->Global(), args.size(), args.data());
}
-void WebDevToolsFrontendImpl::sendRpcMessage(const WebDevToolsMessageData& data)
-{
- m_client->sendMessageToAgent(data);
-}
-
-v8::Handle<v8::Value> WebDevToolsFrontendImpl::jsDebuggerCommand(const v8::Arguments& args)
+void WebDevToolsFrontendImpl::frontendLoaded()
{
- WebDevToolsFrontendImpl* frontend = static_cast<WebDevToolsFrontendImpl*>(v8::External::Cast(*args.Data())->Value());
- WebString command = WebCore::toWebCoreStringWithNullCheck(args[0]);
- frontend->m_client->sendDebuggerCommandToAgent(command);
- return v8::Undefined();
+ m_client->sendFrontendLoaded();
}
v8::Handle<v8::Value> WebDevToolsFrontendImpl::jsDebuggerPauseScript(const v8::Arguments& args)
diff --git a/WebKit/chromium/src/WebDevToolsFrontendImpl.h b/WebKit/chromium/src/WebDevToolsFrontendImpl.h
index fa4707d..e4f22fe 100644
--- a/WebKit/chromium/src/WebDevToolsFrontendImpl.h
+++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.h
@@ -31,9 +31,10 @@
#ifndef WebDevToolsFrontendImpl_h
#define WebDevToolsFrontendImpl_h
-#include "DevToolsRPC.h"
+#include "PlatformString.h"
#include "WebDevToolsFrontend.h"
#include <v8.h>
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/Noncopyable.h>
#include <wtf/OwnPtr.h>
@@ -44,20 +45,17 @@ namespace WebCore {
class ContextMenuItem;
class Node;
class Page;
-class String;
}
namespace WebKit {
-class JSDebuggerAgentBoundObj;
-class JSProfilerAgentBoundObj;
-class JSToolsAgentBoundObj;
class WebDevToolsClientDelegate;
class WebViewImpl;
struct WebDevToolsMessageData;
+using WTF::String;
+
class WebDevToolsFrontendImpl : public WebKit::WebDevToolsFrontend
- , public DevToolsRPC::Delegate
, public Noncopyable {
public:
WebDevToolsFrontendImpl(
@@ -66,28 +64,18 @@ public:
const String& applicationLocale);
virtual ~WebDevToolsFrontendImpl();
- // DevToolsRPC::Delegate implementation.
- virtual void sendRpcMessage(const WebKit::WebDevToolsMessageData& data);
-
// WebDevToolsFrontend implementation.
- virtual void dispatchMessageFromAgent(const WebKit::WebDevToolsMessageData& data);
+ virtual void dispatchOnInspectorFrontend(const WebString& message);
void frontendLoaded();
private:
- void executeScript(const Vector<String>& v);
-
- static v8::Handle<v8::Value> jsDebuggerCommand(const v8::Arguments& args);
static v8::Handle<v8::Value> jsDebuggerPauseScript(const v8::Arguments& args);
WebKit::WebViewImpl* m_webViewImpl;
WebKit::WebDevToolsFrontendClient* m_client;
String m_applicationLocale;
- OwnPtr<JSDebuggerAgentBoundObj> m_debuggerAgentObj;
- OwnPtr<JSProfilerAgentBoundObj> m_profilerAgentObj;
- OwnPtr<JSToolsAgentBoundObj> m_toolsAgentObj;
bool m_loaded;
- Vector<Vector<String> > m_pendingIncomingMessages;
};
} // namespace WebKit
diff --git a/WebKit/chromium/src/WebDeviceOrientation.cpp b/WebKit/chromium/src/WebDeviceOrientation.cpp
new file mode 100644
index 0000000..47f6bd1
--- /dev/null
+++ b/WebKit/chromium/src/WebDeviceOrientation.cpp
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebDeviceOrientation.h"
+
+#include "DeviceOrientation.h"
+#include <wtf/PassRefPtr.h>
+
+namespace WebKit {
+
+WebDeviceOrientation::WebDeviceOrientation(const PassRefPtr<WebCore::DeviceOrientation>& orientation)
+{
+ if (!orientation) {
+ m_isNull = true;
+ m_canProvideAlpha = false;
+ m_alpha = 0;
+ m_canProvideBeta = false;
+ m_beta = 0;
+ m_canProvideGamma = false;
+ m_gamma = 0;
+ return;
+ }
+
+ m_isNull = false;
+ m_canProvideAlpha = orientation->canProvideAlpha();
+ m_alpha = orientation->alpha();
+ m_canProvideBeta = orientation->canProvideBeta();
+ m_beta = orientation->beta();
+ m_canProvideGamma = orientation->canProvideGamma();
+ m_gamma = orientation->gamma();
+}
+
+WebDeviceOrientation& WebDeviceOrientation::operator=(const PassRefPtr<WebCore::DeviceOrientation>& orientation)
+{
+ if (!orientation) {
+ m_isNull = true;
+ m_canProvideAlpha = false;
+ m_alpha = 0;
+ m_canProvideBeta = false;
+ m_beta = 0;
+ m_canProvideGamma = false;
+ m_gamma = 0;
+ return *this;
+ }
+
+ m_isNull = false;
+ m_canProvideAlpha = orientation->canProvideAlpha();
+ m_alpha = orientation->alpha();
+ m_canProvideBeta = orientation->canProvideBeta();
+ m_beta = orientation->beta();
+ m_canProvideGamma = orientation->canProvideGamma();
+ m_gamma = orientation->gamma();
+ return *this;
+}
+
+WebDeviceOrientation::operator PassRefPtr<WebCore::DeviceOrientation>() const
+{
+ if (m_isNull)
+ return 0;
+ return WebCore::DeviceOrientation::create(m_canProvideAlpha, m_alpha, m_canProvideBeta, m_beta, m_canProvideGamma, m_gamma);
+}
+
+} // namespace WebKit
diff --git a/WebKit/chromium/src/WebDeviceOrientationClientMock.cpp b/WebKit/chromium/src/WebDeviceOrientationClientMock.cpp
new file mode 100644
index 0000000..4011d12
--- /dev/null
+++ b/WebKit/chromium/src/WebDeviceOrientationClientMock.cpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebDeviceOrientationClientMock.h"
+
+#include "DeviceOrientationClientMock.h"
+#include "WebDeviceOrientation.h"
+#include "WebDeviceOrientationController.h"
+
+namespace WebKit {
+
+void WebDeviceOrientationClientMock::setController(WebDeviceOrientationController* controller)
+{
+ m_clientMock->setController(controller->controller());
+}
+
+void WebDeviceOrientationClientMock::startUpdating()
+{
+ m_clientMock->startUpdating();
+}
+
+void WebDeviceOrientationClientMock::stopUpdating()
+{
+ m_clientMock->stopUpdating();
+}
+
+WebDeviceOrientation WebDeviceOrientationClientMock::lastOrientation() const
+{
+ return WebDeviceOrientation(m_clientMock->lastOrientation());
+}
+
+void WebDeviceOrientationClientMock::setOrientation(WebDeviceOrientation& orientation)
+{
+ m_clientMock->setOrientation(orientation);
+}
+
+void WebDeviceOrientationClientMock::initialize()
+{
+ m_clientMock = new WebCore::DeviceOrientationClientMock();
+}
+
+void WebDeviceOrientationClientMock::reset()
+{
+ delete m_clientMock;
+ m_clientMock = 0;
+}
+
+} // namespace WebKit
diff --git a/WebKit/chromium/src/WebDeviceOrientationController.cpp b/WebKit/chromium/src/WebDeviceOrientationController.cpp
new file mode 100644
index 0000000..aa9249f
--- /dev/null
+++ b/WebKit/chromium/src/WebDeviceOrientationController.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebDeviceOrientationController.h"
+
+#include "DeviceOrientation.h"
+#include "DeviceOrientationController.h"
+#include "WebDeviceOrientation.h"
+#include <wtf/PassRefPtr.h>
+
+namespace WebKit {
+
+void WebDeviceOrientationController::didChangeDeviceOrientation(const WebDeviceOrientation& orientation)
+{
+ PassRefPtr<WebCore::DeviceOrientation> deviceOrientation(orientation);
+ m_controller->didChangeDeviceOrientation(deviceOrientation.get());
+}
+
+WebCore::DeviceOrientationController* WebDeviceOrientationController::controller() const
+{
+ return m_controller;
+}
+
+} // namespace WebKit
diff --git a/WebKit/chromium/src/WebEntities.cpp b/WebKit/chromium/src/WebEntities.cpp
index 665d8d9..30b619b 100644
--- a/WebKit/chromium/src/WebEntities.cpp
+++ b/WebKit/chromium/src/WebEntities.cpp
@@ -52,7 +52,7 @@ namespace {
namespace WebKit {
-void populateMap(WTF::HashMap<int, WebCore::String>& map,
+void populateMap(WTF::HashMap<int, WTF::String>& map,
const Entity* entities,
size_t entitiesCount,
bool standardHTML)
diff --git a/WebKit/chromium/src/WebEntities.h b/WebKit/chromium/src/WebEntities.h
index ad3c310..a01cc5d 100644
--- a/WebKit/chromium/src/WebEntities.h
+++ b/WebKit/chromium/src/WebEntities.h
@@ -59,12 +59,12 @@ public:
// entity name. If yes, return the entity notation. If not, returns an
// empty string. Parameter isHTML indicates check the code in html entity
// map or in xml entity map.
- WebCore::String entityNameByCode(int code) const;
+ WTF::String entityNameByCode(int code) const;
// Returns a new string with corresponding entity names replaced.
- WebCore::String convertEntitiesInString(const WebCore::String&) const;
+ WTF::String convertEntitiesInString(const WTF::String&) const;
private:
- typedef HashMap<int, WebCore::String> EntitiesMapType;
+ typedef HashMap<int, WTF::String> EntitiesMapType;
// An internal object that maps the Unicode character to corresponding
// entity notation.
EntitiesMapType m_entitiesMap;
diff --git a/WebKit/chromium/src/WebFileChooserCompletionImpl.cpp b/WebKit/chromium/src/WebFileChooserCompletionImpl.cpp
index 4152dc5..ef2409c 100644
--- a/WebKit/chromium/src/WebFileChooserCompletionImpl.cpp
+++ b/WebKit/chromium/src/WebFileChooserCompletionImpl.cpp
@@ -48,7 +48,7 @@ void WebFileChooserCompletionImpl::didChooseFile(const WebVector<WebString>& fil
m_fileChooser->chooseFile(fileNames[0]);
else {
// This clause handles a case of file_names.size()==0 too.
- Vector<WebCore::String> paths;
+ Vector<WTF::String> paths;
for (size_t i = 0; i < fileNames.size(); ++i)
paths.append(fileNames[i]);
m_fileChooser->chooseFiles(paths);
diff --git a/WebKit/chromium/src/WebFrameImpl.h b/WebKit/chromium/src/WebFrameImpl.h
index 2511fce..00e8ecb 100644
--- a/WebKit/chromium/src/WebFrameImpl.h
+++ b/WebKit/chromium/src/WebFrameImpl.h
@@ -285,7 +285,7 @@ private:
// It is not necessary if the frame is invisible, for example, or if this
// is a repeat search that already returned nothing last time the same prefix
// was searched.
- bool shouldScopeMatches(const WebCore::String& searchText);
+ bool shouldScopeMatches(const WTF::String& searchText);
// Queue up a deferred call to scopeStringMatches.
void scopeStringMatchesSoon(
@@ -336,7 +336,7 @@ private:
// short-circuiting searches in the following scenarios: When a frame has
// been searched and returned 0 results, we don't need to search that frame
// again if the user is just adding to the search (making it more specific).
- WebCore::String m_lastSearchString;
+ WTF::String m_lastSearchString;
// Keeps track of how many matches this frame has found so far, so that we
// don't loose count between scoping efforts, and is also used (in conjunction
diff --git a/WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp b/WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp
index 265ef4f..3c3a1db 100644
--- a/WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp
+++ b/WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp
@@ -58,7 +58,7 @@ using WebCore::GeolocationServiceClient;
using WebCore::Geoposition;
using WebCore::PositionError;
using WebCore::PositionOptions;
-using WebCore::String;
+using WTF::String;
namespace WebKit {
diff --git a/WebKit/chromium/src/WebGeolocationServiceMock.cpp b/WebKit/chromium/src/WebGeolocationServiceMock.cpp
index 00d819b..2a10c96 100644
--- a/WebKit/chromium/src/WebGeolocationServiceMock.cpp
+++ b/WebKit/chromium/src/WebGeolocationServiceMock.cpp
@@ -50,7 +50,7 @@ using WebCore::GeolocationServiceMock;
using WebCore::Geoposition;
using WebCore::PositionError;
using WebCore::PositionOptions;
-using WebCore::String;
+using WTF::String;
namespace WebCore {
class GeolocationServiceChromiumMock : public GeolocationServiceChromium, public GeolocationServiceClient {
diff --git a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp
index 47bb5a0..410ac3b 100644
--- a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp
+++ b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp
@@ -32,13 +32,13 @@
#if ENABLE(3D_CANVAS)
-#include <stdio.h>
-#include <string.h>
-
#include "WebGraphicsContext3DDefaultImpl.h"
#include "NotImplemented.h"
+#include <stdio.h>
+#include <string.h>
+
#if OS(LINUX)
#include <dlfcn.h>
#endif
diff --git a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h
index e409bf5..8223a1c 100644
--- a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h
+++ b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h
@@ -325,8 +325,8 @@ private:
static bool s_initializedGLEW;
#if OS(WINDOWS)
- HWND m_canvasWindow;
- HDC m_canvasDC;
+ HWND m_canvasWindow;
+ HDC m_canvasDC;
HGLRC m_contextObj;
#elif PLATFORM(CG)
CGLPBufferObj m_pbuffer;
diff --git a/WebKit/chromium/src/WebHTTPBody.cpp b/WebKit/chromium/src/WebHTTPBody.cpp
index d062576..fa75387 100644
--- a/WebKit/chromium/src/WebHTTPBody.cpp
+++ b/WebKit/chromium/src/WebHTTPBody.cpp
@@ -79,7 +79,7 @@ bool WebHTTPBody::elementAt(size_t index, Element& result) const
result.type = Element::TypeData;
result.data.assign(element.m_data.data(), element.m_data.size());
result.filePath.reset();
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
result.fileStart = 0;
result.fileLength = 0;
result.fileInfo.modificationTime = 0.0;
@@ -89,7 +89,7 @@ bool WebHTTPBody::elementAt(size_t index, Element& result) const
result.type = Element::TypeFile;
result.data.reset();
result.filePath = element.m_filename;
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
result.fileStart = element.m_fileStart;
result.fileLength = element.m_fileLength;
result.fileInfo.modificationTime = element.m_expectedFileModificationTime;
@@ -123,7 +123,7 @@ void WebHTTPBody::appendFile(const WebString& filePath)
void WebHTTPBody::appendFileRange(const WebString& filePath, long long fileStart, long long fileLength, const WebFileInfo& fileInfo)
{
-#if ENABLE(BLOB_SLICE)
+#if ENABLE(BLOB)
ensureMutable();
m_private->appendFileRange(filePath, fileStart, fileLength, fileInfo.modificationTime);
#endif
diff --git a/WebKit/chromium/src/WebIDBCallbacksImpl.cpp b/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
index dbf7d85..e543123 100644
--- a/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
+++ b/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
@@ -27,6 +27,7 @@
#include "WebIDBCallbacksImpl.h"
#include "IDBCallbacks.h"
+#include "IDBCursorBackendProxy.h"
#include "IDBDatabaseError.h"
#include "IDBDatabaseProxy.h"
#include "IDBIndexBackendProxy.h"
@@ -65,6 +66,12 @@ void WebIDBCallbacksImpl::onSuccess()
m_callbacks.clear();
}
+void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBCursor* cursor)
+{
+ m_callbacks->onSuccess(IDBCursorBackendProxy::create(cursor));
+ m_callbacks.clear();
+}
+
void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBDatabase* webKitInstance)
{
m_callbacks->onSuccess(IDBDatabaseProxy::create(webKitInstance));
diff --git a/WebKit/chromium/src/WebIDBCallbacksImpl.h b/WebKit/chromium/src/WebIDBCallbacksImpl.h
index a4d53b5..1835c60 100644
--- a/WebKit/chromium/src/WebIDBCallbacksImpl.h
+++ b/WebKit/chromium/src/WebIDBCallbacksImpl.h
@@ -43,6 +43,7 @@ public:
virtual void onError(const WebKit::WebIDBDatabaseError&);
virtual void onSuccess(); // For "null".
+ virtual void onSuccess(WebKit::WebIDBCursor*);
virtual void onSuccess(WebKit::WebIDBDatabase*);
virtual void onSuccess(const WebKit::WebIDBKey&);
virtual void onSuccess(WebKit::WebIDBIndex*);
diff --git a/WebKit/chromium/src/WebIDBCursorImpl.cpp b/WebKit/chromium/src/WebIDBCursorImpl.cpp
new file mode 100644
index 0000000..1ade687
--- /dev/null
+++ b/WebKit/chromium/src/WebIDBCursorImpl.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebIDBCursorImpl.h"
+
+#include "IDBAny.h"
+#include "IDBCallbacksProxy.h"
+#include "IDBCursorBackendInterface.h"
+#include "IDBKey.h"
+#include "WebIDBKey.h"
+
+using namespace WebCore;
+
+namespace WebKit {
+
+WebIDBCursorImpl::WebIDBCursorImpl(PassRefPtr<IDBCursorBackendInterface> idbCursorBackend)
+ : m_idbCursorBackend(idbCursorBackend)
+{
+}
+
+WebIDBCursorImpl::~WebIDBCursorImpl()
+{
+}
+
+unsigned short WebIDBCursorImpl::direction() const
+{
+ return m_idbCursorBackend->direction();
+}
+
+WebIDBKey WebIDBCursorImpl::key() const
+{
+ return WebIDBKey(m_idbCursorBackend->key());
+}
+
+WebSerializedScriptValue WebIDBCursorImpl::value() const
+{
+ return m_idbCursorBackend->value()->serializedScriptValue();
+}
+
+void WebIDBCursorImpl::update(const WebSerializedScriptValue& value, WebIDBCallbacks* callbacks)
+{
+ m_idbCursorBackend->update(value, IDBCallbacksProxy::create(callbacks));
+}
+
+void WebIDBCursorImpl::continueFunction(const WebIDBKey& key, WebIDBCallbacks* callbacks)
+{
+ m_idbCursorBackend->continueFunction(key, IDBCallbacksProxy::create(callbacks));
+}
+
+void WebIDBCursorImpl::remove(WebIDBCallbacks* callbacks)
+{
+ m_idbCursorBackend->remove(IDBCallbacksProxy::create(callbacks));
+}
+
+} // namespace WebCore
diff --git a/WebKit/chromium/src/WebIDBCursorImpl.h b/WebKit/chromium/src/WebIDBCursorImpl.h
new file mode 100644
index 0000000..565e86a
--- /dev/null
+++ b/WebKit/chromium/src/WebIDBCursorImpl.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebIDBCursorImpl_h
+#define WebIDBCursorImpl_h
+
+#include "WebCommon.h"
+#include "WebIDBCursor.h"
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefPtr.h>
+
+namespace WebCore { class IDBCursorBackendInterface; }
+
+namespace WebKit {
+
+// See comment in WebIndexedObjectStore for a high level overview these classes.
+class WebIDBCursorImpl : public WebIDBCursor {
+public:
+ WebIDBCursorImpl(WTF::PassRefPtr<WebCore::IDBCursorBackendInterface>);
+ virtual ~WebIDBCursorImpl();
+
+ virtual unsigned short direction() const;
+ virtual WebIDBKey key() const;
+ virtual WebSerializedScriptValue value() const;
+ virtual void update(const WebSerializedScriptValue&, WebIDBCallbacks*);
+ virtual void continueFunction(const WebIDBKey&, WebIDBCallbacks*);
+ virtual void remove(WebIDBCallbacks*);
+
+ private:
+ WTF::RefPtr<WebCore::IDBCursorBackendInterface> m_idbCursorBackend;
+};
+
+} // namespace WebKit
+
+#endif // WebIDBCursorImpl_h
diff --git a/WebKit/chromium/src/WebIDBDatabaseImpl.cpp b/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
index e2f771a..8c8e30a 100644
--- a/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
+++ b/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
@@ -28,7 +28,7 @@
#include "DOMStringList.h"
#include "IDBCallbacksProxy.h"
-#include "IDBDatabase.h"
+#include "IDBDatabaseBackendInterface.h"
#include "WebIDBCallbacks.h"
#include "WebIDBObjectStoreImpl.h"
@@ -38,8 +38,8 @@ using namespace WebCore;
namespace WebKit {
-WebIDBDatabaseImpl::WebIDBDatabaseImpl(PassRefPtr<IDBDatabase> database)
- : m_database(database)
+WebIDBDatabaseImpl::WebIDBDatabaseImpl(PassRefPtr<IDBDatabaseBackendInterface> databaseBackend)
+ : m_databaseBackend(databaseBackend)
{
}
@@ -49,32 +49,32 @@ WebIDBDatabaseImpl::~WebIDBDatabaseImpl()
WebString WebIDBDatabaseImpl::name() const
{
- return m_database->name();
+ return m_databaseBackend->name();
}
WebString WebIDBDatabaseImpl::description() const
{
- return m_database->description();
+ return m_databaseBackend->description();
}
WebString WebIDBDatabaseImpl::version() const
{
- return m_database->version();
+ return m_databaseBackend->version();
}
WebDOMStringList WebIDBDatabaseImpl::objectStores() const
{
- return m_database->objectStores();
+ return m_databaseBackend->objectStores();
}
void WebIDBDatabaseImpl::createObjectStore(const WebString& name, const WebString& keyPath, bool autoIncrement, WebIDBCallbacks* callbacks)
{
- m_database->createObjectStore(name, keyPath, autoIncrement, IDBCallbacksProxy::create(callbacks));
+ m_databaseBackend->createObjectStore(name, keyPath, autoIncrement, IDBCallbacksProxy::create(callbacks));
}
WebIDBObjectStore* WebIDBDatabaseImpl::objectStore(const WebString& name, unsigned short mode)
{
- RefPtr<IDBObjectStore> objectStore = m_database->objectStore(name, mode);
+ RefPtr<IDBObjectStoreBackendInterface> objectStore = m_databaseBackend->objectStore(name, mode);
if (!objectStore)
return 0;
return new WebIDBObjectStoreImpl(objectStore);
@@ -82,7 +82,7 @@ WebIDBObjectStore* WebIDBDatabaseImpl::objectStore(const WebString& name, unsign
void WebIDBDatabaseImpl::removeObjectStore(const WebString& name, WebIDBCallbacks* callbacks)
{
- m_database->removeObjectStore(name, IDBCallbacksProxy::create(callbacks));
+ m_databaseBackend->removeObjectStore(name, IDBCallbacksProxy::create(callbacks));
}
} // namespace WebCore
diff --git a/WebKit/chromium/src/WebIDBDatabaseImpl.h b/WebKit/chromium/src/WebIDBDatabaseImpl.h
index c83d8d7..46a6609 100644
--- a/WebKit/chromium/src/WebIDBDatabaseImpl.h
+++ b/WebKit/chromium/src/WebIDBDatabaseImpl.h
@@ -31,7 +31,7 @@
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
-namespace WebCore { class IDBDatabase; }
+namespace WebCore { class IDBDatabaseBackendInterface; }
namespace WebKit {
@@ -40,7 +40,7 @@ class WebIDBObjectStore;
// See comment in WebIndexedDatabase for a high level overview these classes.
class WebIDBDatabaseImpl : public WebIDBDatabase {
public:
- WebIDBDatabaseImpl(WTF::PassRefPtr<WebCore::IDBDatabase> database);
+ WebIDBDatabaseImpl(WTF::PassRefPtr<WebCore::IDBDatabaseBackendInterface>);
virtual ~WebIDBDatabaseImpl();
virtual WebString name() const;
@@ -53,7 +53,7 @@ public:
virtual void removeObjectStore(const WebString& name, WebIDBCallbacks* callbacks);
private:
- WTF::RefPtr<WebCore::IDBDatabase> m_database;
+ WTF::RefPtr<WebCore::IDBDatabaseBackendInterface> m_databaseBackend;
};
} // namespace WebKit
diff --git a/WebKit/chromium/src/WebIDBKeyRange.cpp b/WebKit/chromium/src/WebIDBKeyRange.cpp
new file mode 100644
index 0000000..4ce9452
--- /dev/null
+++ b/WebKit/chromium/src/WebIDBKeyRange.cpp
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebIDBKeyRange.h"
+
+#include "IDBKey.h"
+#include "IDBKeyRange.h"
+#include "WebIDBKey.h"
+
+using WebCore::IDBKeyRange;
+
+namespace WebKit {
+
+void WebIDBKeyRange::assign(const WebIDBKeyRange& other)
+{
+ m_private = other.m_private;
+}
+
+void WebIDBKeyRange::assign(const WebIDBKey& left, const WebIDBKey& right, unsigned short flags)
+{
+ m_private = IDBKeyRange::create(left, right, flags);
+}
+
+void WebIDBKeyRange::reset()
+{
+ m_private.reset();
+}
+
+WebIDBKey WebIDBKeyRange::left() const
+{
+ return m_private->left();
+}
+
+WebIDBKey WebIDBKeyRange::right() const
+{
+ return m_private->right();
+}
+
+unsigned short WebIDBKeyRange::flags() const
+{
+ return m_private->flags();
+}
+
+WebIDBKeyRange::WebIDBKeyRange(const PassRefPtr<IDBKeyRange>& value)
+ : m_private(value)
+{
+}
+
+WebIDBKeyRange& WebIDBKeyRange::operator=(const PassRefPtr<IDBKeyRange>& value)
+{
+ m_private = value;
+ return *this;
+}
+
+WebIDBKeyRange::operator PassRefPtr<IDBKeyRange>() const
+{
+ return m_private.get();
+}
+
+} // namespace WebKit
diff --git a/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp b/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
index 7b6a32a..1ad1d9f 100755
--- a/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
+++ b/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
@@ -28,9 +28,11 @@
#include "DOMStringList.h"
#include "IDBCallbacksProxy.h"
-#include "IDBObjectStore.h"
+#include "IDBKeyRange.h"
+#include "IDBObjectStoreBackendInterface.h"
#include "WebIDBIndexImpl.h"
#include "WebIDBKey.h"
+#include "WebIDBKeyRange.h"
#include "WebSerializedScriptValue.h"
#if ENABLE(INDEXED_DATABASE)
@@ -39,7 +41,7 @@ using namespace WebCore;
namespace WebKit {
-WebIDBObjectStoreImpl::WebIDBObjectStoreImpl(PassRefPtr<IDBObjectStore> objectStore)
+WebIDBObjectStoreImpl::WebIDBObjectStoreImpl(PassRefPtr<IDBObjectStoreBackendInterface> objectStore)
: m_objectStore(objectStore)
{
}
@@ -96,6 +98,11 @@ void WebIDBObjectStoreImpl::removeIndex(const WebString& name, WebIDBCallbacks*
m_objectStore->removeIndex(name, IDBCallbacksProxy::create(callbacks));
}
+void WebIDBObjectStoreImpl::openCursor(const WebIDBKeyRange& keyRange, unsigned short direction, WebIDBCallbacks* callbacks)
+{
+ m_objectStore->openCursor(IDBKeyRange::create(keyRange.left(), keyRange.right(), keyRange.flags()), direction, IDBCallbacksProxy::create(callbacks));
+}
+
} // namespace WebCore
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/WebKit/chromium/src/WebIDBObjectStoreImpl.h b/WebKit/chromium/src/WebIDBObjectStoreImpl.h
index 4064b7f..9f31369 100755
--- a/WebKit/chromium/src/WebIDBObjectStoreImpl.h
+++ b/WebKit/chromium/src/WebIDBObjectStoreImpl.h
@@ -31,7 +31,7 @@
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
-namespace WebCore { class IDBObjectStore; }
+namespace WebCore { class IDBObjectStoreBackendInterface; }
namespace WebKit {
@@ -40,7 +40,7 @@ class WebIDBIndex;
// See comment in WebIndexedObjectStore for a high level overview these classes.
class WebIDBObjectStoreImpl : public WebIDBObjectStore {
public:
- WebIDBObjectStoreImpl(WTF::PassRefPtr<WebCore::IDBObjectStore> objectStore);
+ WebIDBObjectStoreImpl(WTF::PassRefPtr<WebCore::IDBObjectStoreBackendInterface>);
~WebIDBObjectStoreImpl();
WebString name() const;
@@ -55,8 +55,10 @@ public:
WebIDBIndex* index(const WebString& name);
void removeIndex(const WebString& name, WebIDBCallbacks* callbacks);
+ void openCursor(const WebIDBKeyRange&, unsigned short direction, WebIDBCallbacks*);
+
private:
- WTF::RefPtr<WebCore::IDBObjectStore> m_objectStore;
+ WTF::RefPtr<WebCore::IDBObjectStoreBackendInterface> m_objectStore;
};
} // namespace WebKit
diff --git a/WebKit/chromium/src/WebInputEventConversion.cpp b/WebKit/chromium/src/WebInputEventConversion.cpp
index 1c6d59c..f47a4e8 100644
--- a/WebKit/chromium/src/WebInputEventConversion.cpp
+++ b/WebKit/chromium/src/WebInputEventConversion.cpp
@@ -104,7 +104,7 @@ PlatformWheelEventBuilder::PlatformWheelEventBuilder(Widget* widget, const WebMo
// MakePlatformKeyboardEvent --------------------------------------------------
-static inline const PlatformKeyboardEvent::Type toPlatformKeyboardEventType(WebInputEvent::Type type)
+static inline PlatformKeyboardEvent::Type toPlatformKeyboardEventType(WebInputEvent::Type type)
{
switch (type) {
case WebInputEvent::KeyUp:
diff --git a/WebKit/chromium/src/WebKit.cpp b/WebKit/chromium/src/WebKit.cpp
index 8346ef8..1d717ea 100644
--- a/WebKit/chromium/src/WebKit.cpp
+++ b/WebKit/chromium/src/WebKit.cpp
@@ -57,7 +57,7 @@ void initialize(WebKitClient* webKitClient)
WTF::initializeThreading();
WTF::initializeMainThread();
- WebCore::AtomicString::init();
+ WTF::AtomicString::init();
// Chromium sets the minimum interval timeout to 4ms, overriding the
// default of 10ms. We'd like to go lower, however there are poorly
diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
index 2b0c9a7..8f210a0 100644
--- a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
+++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
@@ -126,6 +126,10 @@ void WebMediaPlayerClientImpl::timeChanged()
void WebMediaPlayerClientImpl::repaint()
{
ASSERT(m_mediaPlayer);
+#if USE(ACCELERATED_COMPOSITING)
+ if (m_videoLayer.get() && supportsAcceleratedRendering())
+ m_videoLayer->setNeedsDisplay(FloatRect(0, 0, m_videoLayer->bounds().width(), m_videoLayer->bounds().height()));
+#endif
m_mediaPlayer->repaint();
}
diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.h b/WebKit/chromium/src/WebMediaPlayerClientImpl.h
index 0faac26..df179a8 100644
--- a/WebKit/chromium/src/WebMediaPlayerClientImpl.h
+++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.h
@@ -70,7 +70,7 @@ public:
virtual float volume() const;
// MediaPlayerPrivateInterface methods:
- virtual void load(const WebCore::String& url);
+ virtual void load(const WTF::String& url);
virtual void cancelLoad();
#if USE(ACCELERATED_COMPOSITING)
virtual WebCore::PlatformLayer* platformLayer() const;
@@ -114,9 +114,9 @@ private:
WebMediaPlayerClientImpl();
static WebCore::MediaPlayerPrivateInterface* create(WebCore::MediaPlayer*);
- static void getSupportedTypes(WTF::HashSet<WebCore::String>&);
+ static void getSupportedTypes(WTF::HashSet<WTF::String>&);
static WebCore::MediaPlayer::SupportsType supportsType(
- const WebCore::String& type, const WebCore::String& codecs);
+ const WTF::String& type, const WTF::String& codecs);
WebCore::MediaPlayer* m_mediaPlayer;
OwnPtr<WebMediaPlayer> m_webMediaPlayer;
diff --git a/WebKit/chromium/src/WebPageSerializerImpl.h b/WebKit/chromium/src/WebPageSerializerImpl.h
index 8f6a99f..03f0a3b 100644
--- a/WebKit/chromium/src/WebPageSerializerImpl.h
+++ b/WebKit/chromium/src/WebPageSerializerImpl.h
@@ -32,10 +32,11 @@
#define WebPageSerializerImpl_h
#include "PlatformString.h"
-#include "StringBuilder.h"
#include "StringHash.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/Vector.h>
+#include "StringBuilder.h"
#include "WebEntities.h"
#include "WebPageSerializer.h"
@@ -47,7 +48,6 @@ namespace WebCore {
class Document;
class Element;
class Node;
-class String;
class TextEncoding;
}
@@ -93,7 +93,7 @@ private:
WebPageSerializerClient* m_client;
// This hash map is used to map resource URL of original link to its local
// file path.
- typedef HashMap<WebCore::String, WebCore::String> LinkLocalPathMap;
+ typedef HashMap<WTF::String, WTF::String> LinkLocalPathMap;
// local_links_ include all pair of local resource path and corresponding
// original link.
LinkLocalPathMap m_localLinks;
@@ -107,7 +107,7 @@ private:
// serialized or not;
bool m_framesCollected;
// Local directory name of all local resource files.
- WebCore::String m_localDirectoryName;
+ WTF::String m_localDirectoryName;
// Vector for saving all frames which need to be serialized.
Vector<WebFrameImpl*> m_frames;
@@ -124,7 +124,7 @@ private:
// Document object of current frame.
WebCore::Document* doc;
// Local directory name of all local resource files.
- const WebCore::String& directoryName;
+ const WTF::String& directoryName;
// Flag indicates current doc is html document or not. It's a cache value
// of Document.isHTMLDocument().
@@ -151,31 +151,31 @@ private:
SerializeDomParam(const WebCore::KURL& currentFrameURL,
const WebCore::TextEncoding& textEncoding,
WebCore::Document* doc,
- const WebCore::String& directoryName);
+ const WTF::String& directoryName);
};
// Collect all target frames which need to be serialized.
void collectTargetFrames();
// Before we begin serializing open tag of a element, we give the target
// element a chance to do some work prior to add some additional data.
- WebCore::String preActionBeforeSerializeOpenTag(const WebCore::Element* element,
+ WTF::String preActionBeforeSerializeOpenTag(const WebCore::Element* element,
SerializeDomParam* param,
bool* needSkip);
// After we finish serializing open tag of a element, we give the target
// element a chance to do some post work to add some additional data.
- WebCore::String postActionAfterSerializeOpenTag(const WebCore::Element* element,
+ WTF::String postActionAfterSerializeOpenTag(const WebCore::Element* element,
SerializeDomParam* param);
// Before we begin serializing end tag of a element, we give the target
// element a chance to do some work prior to add some additional data.
- WebCore::String preActionBeforeSerializeEndTag(const WebCore::Element* element,
+ WTF::String preActionBeforeSerializeEndTag(const WebCore::Element* element,
SerializeDomParam* param,
bool* needSkip);
// After we finish serializing end tag of a element, we give the target
// element a chance to do some post work to add some additional data.
- WebCore::String postActionAfterSerializeEndTag(const WebCore::Element* element,
+ WTF::String postActionAfterSerializeEndTag(const WebCore::Element* element,
SerializeDomParam* param);
// Save generated html content to data buffer.
- void saveHTMLContentToBuffer(const WebCore::String& content,
+ void saveHTMLContentToBuffer(const WTF::String& content,
SerializeDomParam* param);
// Flushes the content buffer by encoding and sending the content to the
// WebPageSerializerClient. Content is not flushed if the buffer is not full
diff --git a/WebKit/chromium/src/WebRuntimeFeatures.cpp b/WebKit/chromium/src/WebRuntimeFeatures.cpp
index 217553b..9e21d58 100644
--- a/WebKit/chromium/src/WebRuntimeFeatures.cpp
+++ b/WebKit/chromium/src/WebRuntimeFeatures.cpp
@@ -226,6 +226,16 @@ bool WebRuntimeFeatures::isTouchEnabled()
#endif
}
+void WebRuntimeFeatures::enableDeviceMotion(bool enable)
+{
+ RuntimeEnabledFeatures::setDeviceMotionEnabled(enable);
+}
+
+bool WebRuntimeFeatures::isDeviceMotionEnabled()
+{
+ return RuntimeEnabledFeatures::deviceMotionEnabled();
+}
+
void WebRuntimeFeatures::enableDeviceOrientation(bool enable)
{
RuntimeEnabledFeatures::setDeviceOrientationEnabled(enable);
diff --git a/WebKit/chromium/src/ProfilerAgentImpl.cpp b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp
index 07570df..6b04320 100644
--- a/WebKit/chromium/src/ProfilerAgentImpl.cpp
+++ b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp
@@ -29,24 +29,58 @@
*/
#include "config.h"
-#include "ProfilerAgentImpl.h"
+#include "WebSpeechInputControllerMockImpl.h"
-#include <v8.h>
+#include "PlatformString.h"
+#include "SpeechInputClientMock.h"
namespace WebKit {
-void ProfilerAgentImpl::getActiveProfilerModules()
+WebSpeechInputControllerMock* WebSpeechInputControllerMock::create(WebSpeechInputListener* listener)
{
- m_delegate->didGetActiveProfilerModules(v8::V8::GetActiveProfilerModules());
+ return new WebSpeechInputControllerMockImpl(listener);
}
-void ProfilerAgentImpl::getLogLines(int position)
+WebSpeechInputControllerMockImpl::WebSpeechInputControllerMockImpl(
+ WebSpeechInputListener* listener)
+ : m_webcoreMock(new WebCore::SpeechInputClientMock())
+ , m_listener(listener)
{
- static char buffer[65536];
- const int readSize = v8::V8::GetLogLines(position, buffer, sizeof(buffer) - 1);
- buffer[readSize] = '\0';
- position += readSize;
- m_delegate->didGetLogLines(position, buffer);
+}
+
+void WebSpeechInputControllerMockImpl::setMockRecognitionResult(const WebString& result)
+{
+ m_webcoreMock->setRecognitionResult(result);
+}
+
+void WebSpeechInputControllerMockImpl::didCompleteRecording()
+{
+ m_listener->didCompleteRecording();
+}
+
+void WebSpeechInputControllerMockImpl::didCompleteRecognition()
+{
+ m_listener->didCompleteRecognition();
+}
+
+void WebSpeechInputControllerMockImpl::setRecognitionResult(const WTF::String& result)
+{
+ m_listener->setRecognitionResult(result);
+}
+
+bool WebSpeechInputControllerMockImpl::startRecognition()
+{
+ return m_webcoreMock->startRecognition(this);
+}
+
+void WebSpeechInputControllerMockImpl::cancelRecognition()
+{
+ m_webcoreMock->cancelRecognition();
+}
+
+void WebSpeechInputControllerMockImpl::stopRecording()
+{
+ m_webcoreMock->stopRecording();
}
} // namespace WebKit
diff --git a/WebKit/chromium/src/ProfilerAgent.h b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h
index 52337b8..046abf3 100644
--- a/WebKit/chromium/src/ProfilerAgent.h
+++ b/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h
@@ -28,34 +28,45 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef ProfilerAgent_h
-#define ProfilerAgent_h
+#ifndef WebSpeechInputControllerMockImpl_h
+#define WebSpeechInputControllerMockImpl_h
-#include "DevToolsRPC.h"
+#include "SpeechInputListener.h"
+#include "WebSpeechInputControllerMock.h"
+#include "WebSpeechInputListener.h"
+#include "WebString.h"
+#include <wtf/OwnPtr.h>
+
+namespace WebCore {
+class SpeechInputClientMock;
+}
namespace WebKit {
-// Profiler agent provides API for retrieving profiler data.
-// These methods are handled on the IO thread, so profiler can
-// operate while a script on a page performs heavy work.
-#define PROFILER_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
- /* Requests current profiler state. */ \
- METHOD0(getActiveProfilerModules) \
- \
- /* Retrieves portion of profiler log. */ \
- METHOD1(getLogLines, int /* position */)
+class WebSpeechInputControllerMockImpl : public WebCore::SpeechInputListener
+ , public WebSpeechInputControllerMock {
+public:
+ WebSpeechInputControllerMockImpl(WebSpeechInputListener*);
+
+ // WebCore::SpeechInputListener methods.
+ void didCompleteRecording();
+ void didCompleteRecognition();
+ void setRecognitionResult(const WTF::String& result);
-DEFINE_RPC_CLASS(ProfilerAgent, PROFILER_AGENT_STRUCT)
+ // WebSpeechInputController methods.
+ bool startRecognition();
+ void cancelRecognition();
+ void stopRecording();
-#define PROFILER_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
- /* Response to getActiveProfilerModules. */ \
- METHOD1(didGetActiveProfilerModules, int /* flags */) \
- \
- /* Response to getLogLines. */ \
- METHOD2(didGetLogLines, int /* position */, String /* log */)
+ // WebSpeechInputControllerMock methods.
+ void setMockRecognitionResult(const WebString& result);
-DEFINE_RPC_CLASS(ProfilerAgentDelegate, PROFILER_AGENT_DELEGATE_STRUCT)
+private:
+ OwnPtr<WebCore::SpeechInputClientMock> m_webcoreMock;
+ WebSpeechInputListener* m_listener;
+};
} // namespace WebKit
-#endif
+#endif // WebSpeechInputControllerMockImpl_h
+
diff --git a/WebKit/chromium/src/WebStorageNamespaceImpl.cpp b/WebKit/chromium/src/WebStorageNamespaceImpl.cpp
index 5fc6e16..53b4a75 100644
--- a/WebKit/chromium/src/WebStorageNamespaceImpl.cpp
+++ b/WebKit/chromium/src/WebStorageNamespaceImpl.cpp
@@ -61,7 +61,7 @@ WebStorageNamespaceImpl::~WebStorageNamespaceImpl()
WebStorageArea* WebStorageNamespaceImpl::createStorageArea(const WebString& originString)
{
- WebCore::String originWebCoreString = originString;
+ WTF::String originWebCoreString = originString;
if (originWebCoreString == "file://") {
// FIXME: We should really be passing around WebSecurityOrigin objects
// to represent security origins instead of strings. One issue
diff --git a/WebKit/chromium/src/WebString.cpp b/WebKit/chromium/src/WebString.cpp
index a61a059..bbbe9ce 100644
--- a/WebKit/chromium/src/WebString.cpp
+++ b/WebKit/chromium/src/WebString.cpp
@@ -39,7 +39,7 @@
namespace WebKit {
-class WebStringPrivate : public WebCore::StringImpl {
+class WebStringPrivate : public WTF::StringImpl {
};
void WebString::reset()
@@ -58,7 +58,7 @@ void WebString::assign(const WebString& other)
void WebString::assign(const WebUChar* data, size_t length)
{
assign(static_cast<WebStringPrivate*>(
- WebCore::StringImpl::create(data, length).get()));
+ WTF::StringImpl::create(data, length).get()));
}
size_t WebString::length() const
@@ -73,17 +73,17 @@ const WebUChar* WebString::data() const
WebCString WebString::utf8() const
{
- return WebCore::String(m_private).utf8();
+ return WTF::String(m_private).utf8();
}
WebString WebString::fromUTF8(const char* data, size_t length)
{
- return WebCore::String::fromUTF8(data, length);
+ return WTF::String::fromUTF8(data, length);
}
WebString WebString::fromUTF8(const char* data)
{
- return WebCore::String::fromUTF8(data);
+ return WTF::String::fromUTF8(data);
}
bool WebString::equals(const WebString& s) const
@@ -91,39 +91,39 @@ bool WebString::equals(const WebString& s) const
return equal(m_private, s.m_private);
}
-WebString::WebString(const WebCore::String& s)
+WebString::WebString(const WTF::String& s)
: m_private(static_cast<WebStringPrivate*>(s.impl()))
{
if (m_private)
m_private->ref();
}
-WebString& WebString::operator=(const WebCore::String& s)
+WebString& WebString::operator=(const WTF::String& s)
{
assign(static_cast<WebStringPrivate*>(s.impl()));
return *this;
}
-WebString::operator WebCore::String() const
+WebString::operator WTF::String() const
{
return m_private;
}
-WebString::WebString(const WebCore::AtomicString& s)
+WebString::WebString(const WTF::AtomicString& s)
: m_private(0)
{
assign(s.string());
}
-WebString& WebString::operator=(const WebCore::AtomicString& s)
+WebString& WebString::operator=(const WTF::AtomicString& s)
{
assign(s.string());
return *this;
}
-WebString::operator WebCore::AtomicString() const
+WebString::operator WTF::AtomicString() const
{
- return WebCore::AtomicString(static_cast<WebCore::StringImpl *>(m_private));
+ return WTF::AtomicString(static_cast<WTF::StringImpl *>(m_private));
}
void WebString::assign(WebStringPrivate* p)
diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp
index 691f143..8733a2a 100644
--- a/WebKit/chromium/src/WebViewImpl.cpp
+++ b/WebKit/chromium/src/WebViewImpl.cpp
@@ -41,6 +41,7 @@
#include "CSSStyleSelector.h"
#include "CSSValueKeywords.h"
#include "Cursor.h"
+#include "DeviceOrientationClientProxy.h"
#include "Document.h"
#include "DocumentLoader.h"
#include "DOMUtilitiesPrivate.h"
@@ -177,8 +178,8 @@ static const PopupContainerSettings autoFillPopupSettings = {
WebView* WebView::create(WebViewClient* client, WebDevToolsAgentClient* devToolsClient)
{
- // Keep runtime flag for device orientation turned off until it's implemented.
- WebRuntimeFeatures::enableDeviceOrientation(false);
+ // Keep runtime flag for device motion turned off until it's implemented.
+ WebRuntimeFeatures::enableDeviceMotion(false);
// Pass the WebViewImpl's self-reference to the caller.
return adoptRef(new WebViewImpl(client, devToolsClient)).leakRef();
@@ -266,6 +267,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools
, m_speechInputClient(client)
#endif
, m_gles2Context(0)
+ , m_deviceOrientationClientProxy(new DeviceOrientationClientProxy(client ? client->deviceOrientationClient() : 0))
{
// WebKit/win/WebView.cpp does the same thing, except they call the
// KJS specific wrapper around this method. We need to have threading
@@ -288,9 +290,9 @@ WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools
#if ENABLE(INPUT_SPEECH)
pageClients.speechInputClient = &m_speechInputClient;
#endif
- m_page.set(new Page(pageClients));
+ pageClients.deviceOrientationClient = m_deviceOrientationClientProxy.get();
- // the page will take ownership of the various clients
+ m_page.set(new Page(pageClients));
m_page->backForwardList()->setClient(&m_backForwardListClientImpl);
m_page->setGroupName(pageGroupName);
@@ -911,6 +913,13 @@ void WebViewImpl::resize(const WebSize& newSize)
WebRect damagedRect(0, 0, m_size.width, m_size.height);
m_client->didInvalidateRect(damagedRect);
}
+
+#if OS(DARWIN)
+ if (m_gles2Context) {
+ m_gles2Context->resizeOnscreenContent(WebSize(std::max(1, m_size.width),
+ std::max(1, m_size.height)));
+ }
+#endif
}
void WebViewImpl::layout()
@@ -2154,6 +2163,22 @@ void WebViewImpl::updateRootLayerContents(const WebRect& rect)
rootLayerContext->restore();
platformCanvas->restore();
+#elif PLATFORM(CG)
+ CGContextRef cgContext = rootLayerContext->platformContext();
+
+ CGContextSaveGState(cgContext);
+
+ // Bring the CoreGraphics context into the coordinate system of the paint rect.
+ CGContextTranslateCTM(cgContext, -rect.x, -rect.y);
+
+ rootLayerContext->save();
+
+ webframe->paintWithContext(*rootLayerContext, rect);
+ rootLayerContext->restore();
+
+ CGContextRestoreGState(cgContext);
+#else
+#error Must port to your platform
#endif
}
}
@@ -2203,6 +2228,11 @@ WebGLES2Context* WebViewImpl::gles2Context()
m_gles2Context.clear();
return 0;
}
+
+#if OS(DARWIN)
+ m_gles2Context->resizeOnscreenContent(WebSize(std::max(1, m_size.width),
+ std::max(1, m_size.height)));
+#endif
}
return m_gles2Context.get();
}
diff --git a/WebKit/chromium/src/WebViewImpl.h b/WebKit/chromium/src/WebViewImpl.h
index 530fbf5..c296121 100644
--- a/WebKit/chromium/src/WebViewImpl.h
+++ b/WebKit/chromium/src/WebViewImpl.h
@@ -71,6 +71,7 @@ namespace WebKit {
class AutocompletePopupMenuClient;
class AutoFillPopupMenuClient;
class ContextMenuClientImpl;
+class DeviceOrientationClientProxy;
class DragScrollTimer;
class WebAccessibilityObject;
class WebDevToolsAgentClient;
@@ -496,7 +497,7 @@ private:
// Inspector settings.
WebString m_inspectorSettings;
- typedef HashMap<WebCore::String, WebCore::String> SettingsMap;
+ typedef HashMap<WTF::String, WTF::String> SettingsMap;
OwnPtr<SettingsMap> m_inspectorSettingsMap;
OwnPtr<DragScrollTimer> m_dragScrollTimer;
@@ -519,6 +520,8 @@ private:
#endif
OwnPtr<WebGLES2Context> m_gles2Context;
+
+ OwnPtr<DeviceOrientationClientProxy> m_deviceOrientationClientProxy;
};
} // namespace WebKit
diff --git a/WebKit/chromium/src/WebWorkerBase.cpp b/WebKit/chromium/src/WebWorkerBase.cpp
index 9593f5f..42f41d2 100644
--- a/WebKit/chromium/src/WebWorkerBase.cpp
+++ b/WebKit/chromium/src/WebWorkerBase.cpp
@@ -63,7 +63,7 @@ namespace {
// call back to the worker context.
class AllowDatabaseMainThreadBridge : public ThreadSafeShared<AllowDatabaseMainThreadBridge> {
public:
- static PassRefPtr<AllowDatabaseMainThreadBridge> create(WebWorkerBase* worker, const WebCore::String& mode, WebCommonWorkerClient* commonClient, WebFrame* frame, const WebCore::String& name, const WebCore::String& displayName, unsigned long estimatedSize)
+ static PassRefPtr<AllowDatabaseMainThreadBridge> create(WebWorkerBase* worker, const WTF::String& mode, WebCommonWorkerClient* commonClient, WebFrame* frame, const WTF::String& name, const WTF::String& displayName, unsigned long estimatedSize)
{
return adoptRef(new AllowDatabaseMainThreadBridge(worker, mode, commonClient, frame, name, displayName, estimatedSize));
}
@@ -89,14 +89,14 @@ public:
}
private:
- AllowDatabaseMainThreadBridge(WebWorkerBase* worker, const WebCore::String& mode, WebCommonWorkerClient* commonClient, WebFrame* frame, const WebCore::String& name, const WebCore::String& displayName, unsigned long estimatedSize)
+ AllowDatabaseMainThreadBridge(WebWorkerBase* worker, const WTF::String& mode, WebCommonWorkerClient* commonClient, WebFrame* frame, const WTF::String& name, const WTF::String& displayName, unsigned long estimatedSize)
: m_worker(worker)
, m_mode(mode)
{
worker->dispatchTaskToMainThread(createCallbackTask(&allowDatabaseTask, commonClient, frame, String(name), String(displayName), estimatedSize, this));
}
- static void allowDatabaseTask(WebCore::ScriptExecutionContext* context, WebCommonWorkerClient* commonClient, WebFrame* frame, const WebCore::String name, const WebCore::String displayName, unsigned long estimatedSize, PassRefPtr<AllowDatabaseMainThreadBridge> bridge)
+ static void allowDatabaseTask(WebCore::ScriptExecutionContext* context, WebCommonWorkerClient* commonClient, WebFrame* frame, const WTF::String name, const WTF::String displayName, unsigned long estimatedSize, PassRefPtr<AllowDatabaseMainThreadBridge> bridge)
{
if (!commonClient)
bridge->signalCompleted(false);
@@ -112,7 +112,7 @@ private:
bool m_result;
Mutex m_mutex;
WebWorkerBase* m_worker;
- WebCore::String m_mode;
+ WTF::String m_mode;
};
}
diff --git a/WebKit/chromium/src/WebWorkerBase.h b/WebKit/chromium/src/WebWorkerBase.h
index 15e8013..22711f9 100644
--- a/WebKit/chromium/src/WebWorkerBase.h
+++ b/WebKit/chromium/src/WebWorkerBase.h
@@ -70,10 +70,10 @@ public:
PassRefPtr<WebCore::SerializedScriptValue>,
PassOwnPtr<WebCore::MessagePortChannelArray>);
virtual void postExceptionToWorkerObject(
- const WebCore::String&, int, const WebCore::String&);
+ const WTF::String&, int, const WTF::String&);
virtual void postConsoleMessageToWorkerObject(
WebCore::MessageSource, WebCore::MessageType,
- WebCore::MessageLevel, const WebCore::String&, int, const WebCore::String&);
+ WebCore::MessageLevel, const WTF::String&, int, const WTF::String&);
virtual void confirmMessageFromWorkerObject(bool);
virtual void reportPendingActivity(bool);
virtual void workerContextClosed();
@@ -82,7 +82,7 @@ public:
// WebCore::WorkerLoaderProxy methods:
virtual void postTaskToLoader(PassOwnPtr<WebCore::ScriptExecutionContext::Task>);
virtual void postTaskForModeToWorkerContext(
- PassOwnPtr<WebCore::ScriptExecutionContext::Task>, const WebCore::String& mode);
+ PassOwnPtr<WebCore::ScriptExecutionContext::Task>, const WTF::String& mode);
// WebFrameClient methods to support resource loading thru the 'shadow page'.
virtual void didCreateDataSource(WebFrame*, WebDataSource*);
@@ -115,23 +115,23 @@ private:
static void postMessageTask(
WebCore::ScriptExecutionContext* context,
WebWorkerBase* thisPtr,
- WebCore::String message,
+ WTF::String message,
PassOwnPtr<WebCore::MessagePortChannelArray> channels);
static void postExceptionTask(
WebCore::ScriptExecutionContext* context,
WebWorkerBase* thisPtr,
- const WebCore::String& message,
+ const WTF::String& message,
int lineNumber,
- const WebCore::String& sourceURL);
+ const WTF::String& sourceURL);
static void postConsoleMessageTask(
WebCore::ScriptExecutionContext* context,
WebWorkerBase* thisPtr,
int source,
int type,
int level,
- const WebCore::String& message,
+ const WTF::String& message,
int lineNumber,
- const WebCore::String& sourceURL);
+ const WTF::String& sourceURL);
static void confirmMessageTask(
WebCore::ScriptExecutionContext* context,
WebWorkerBase* thisPtr,
diff --git a/WebKit/chromium/src/WebWorkerClientImpl.h b/WebKit/chromium/src/WebWorkerClientImpl.h
index 758c376..741d606 100644
--- a/WebKit/chromium/src/WebWorkerClientImpl.h
+++ b/WebKit/chromium/src/WebWorkerClientImpl.h
@@ -64,8 +64,8 @@ public:
// process, this will be the main WebKit thread. In the worker process, this
// will be the thread of the executing worker (not the main WebKit thread).
virtual void startWorkerContext(const WebCore::KURL&,
- const WebCore::String&,
- const WebCore::String&);
+ const WTF::String&,
+ const WTF::String&);
virtual void terminateWorkerContext();
virtual void postMessageToWorkerContext(
PassRefPtr<WebCore::SerializedScriptValue> message,
@@ -108,14 +108,14 @@ private:
// These tasks are dispatched on the WebKit thread.
static void startWorkerContextTask(WebCore::ScriptExecutionContext* context,
WebWorkerClientImpl* thisPtr,
- const WebCore::String& scriptURL,
- const WebCore::String& userAgent,
- const WebCore::String& sourceCode);
+ const WTF::String& scriptURL,
+ const WTF::String& userAgent,
+ const WTF::String& sourceCode);
static void terminateWorkerContextTask(WebCore::ScriptExecutionContext* context,
WebWorkerClientImpl* thisPtr);
static void postMessageToWorkerContextTask(WebCore::ScriptExecutionContext* context,
WebWorkerClientImpl* thisPtr,
- const WebCore::String& message,
+ const WTF::String& message,
PassOwnPtr<WebCore::MessagePortChannelArray> channels);
static void workerObjectDestroyedTask(WebCore::ScriptExecutionContext* context,
WebWorkerClientImpl* thisPtr);
@@ -125,21 +125,21 @@ private:
// worker process).
static void postMessageToWorkerObjectTask(WebCore::ScriptExecutionContext* context,
WebWorkerClientImpl* thisPtr,
- const WebCore::String& message,
+ const WTF::String& message,
PassOwnPtr<WebCore::MessagePortChannelArray> channels);
static void postExceptionToWorkerObjectTask(WebCore::ScriptExecutionContext* context,
WebWorkerClientImpl* thisPtr,
- const WebCore::String& message,
+ const WTF::String& message,
int lineNumber,
- const WebCore::String& sourceURL);
+ const WTF::String& sourceURL);
static void postConsoleMessageToWorkerObjectTask(WebCore::ScriptExecutionContext* context,
WebWorkerClientImpl* thisPtr,
int sourceId,
int messageType,
int messageLevel,
- const WebCore::String& message,
+ const WTF::String& message,
int lineNumber,
- const WebCore::String& sourceURL);
+ const WTF::String& sourceURL);
static void confirmMessageFromWorkerObjectTask(WebCore::ScriptExecutionContext* context,
WebWorkerClientImpl* thisPtr);
static void reportPendingActivityTask(WebCore::ScriptExecutionContext* context,
diff --git a/WebKit/chromium/src/WebWorkerImpl.h b/WebKit/chromium/src/WebWorkerImpl.h
index bec96cd..d2fd016 100644
--- a/WebKit/chromium/src/WebWorkerImpl.h
+++ b/WebKit/chromium/src/WebWorkerImpl.h
@@ -69,7 +69,7 @@ private:
static void postMessageToWorkerContextTask(
WebCore::ScriptExecutionContext* context,
WebWorkerImpl* thisPtr,
- const WebCore::String& message,
+ const WTF::String& message,
PassOwnPtr<WebCore::MessagePortChannelArray> channels);
WebWorkerClient* m_client;
diff --git a/WebKit/chromium/src/js/DevTools.js b/WebKit/chromium/src/js/DevTools.js
index 674f1d7..895c68b 100644
--- a/WebKit/chromium/src/js/DevTools.js
+++ b/WebKit/chromium/src/js/DevTools.js
@@ -41,44 +41,22 @@
* @prama {string} methodName
* @param {string} param1, param2, param3 Arguments to dispatch.
*/
-devtools$$dispatch = function(remoteName, methodName, param1, param2, param3)
+devtools$$dispatch = function(message)
{
- remoteName = "Remote" + remoteName.substring(0, remoteName.length - 8);
- var agent = window[remoteName];
- if (!agent) {
- debugPrint("No remote agent '" + remoteName + "' found.");
- return;
- }
- var method = agent[methodName];
- if (!method) {
- debugPrint("No method '" + remoteName + "." + methodName + "' found.");
- return;
- }
- method.call(this, param1, param2, param3);
+ var args = typeof message === "string" ? JSON.parse(message) : message;
+ var methodName = args[0];
+ var parameters = args.slice(1);
+ WebInspector[methodName].apply(WebInspector, parameters);
};
devtools.ToolsAgent = function()
{
- RemoteToolsAgent.didDispatchOn = WebInspector.Callback.processCallback;
- RemoteToolsAgent.dispatchOnClient = this.dispatchOnClient_.bind(this);
this.profilerAgent_ = new devtools.ProfilerAgent();
};
/**
- * @param {string} script Script exression to be evaluated in the context of the
- * inspected page.
- * @param {function(Object|string, boolean):undefined} opt_callback Function to
- * call with the result.
- */
-devtools.ToolsAgent.prototype.evaluateJavaScript = function(script, opt_callback)
-{
- InspectorBackend.evaluate(script, opt_callback || function() {});
-};
-
-
-/**
* @return {devtools.ProfilerAgent} Profiler agent instance.
*/
devtools.ToolsAgent.prototype.getProfilerAgent = function()
@@ -87,38 +65,6 @@ devtools.ToolsAgent.prototype.getProfilerAgent = function()
};
-/**
- * @param {string} message Serialized call to be dispatched on WebInspector.
- * @private
- */
-devtools.ToolsAgent.prototype.dispatchOnClient_ = function(message)
-{
- var args = typeof message === "string" ? JSON.parse(message) : message;
- var methodName = args[0];
- var parameters = args.slice(1);
- WebInspector[methodName].apply(WebInspector, parameters);
-};
-
-
-/**
- * Evaluates js expression.
- * @param {string} expr
- */
-devtools.ToolsAgent.prototype.evaluate = function(expr)
-{
- RemoteToolsAgent.evaluate(expr);
-};
-
-
-/**
- * Prints string to the inspector console or shows alert if the console doesn't
- * exist.
- * @param {string} text
- */
-function debugPrint(text) {
- WebInspector.log(text);
-}
-
/**
* Global instance of the tools agent.
@@ -142,13 +88,15 @@ var context = {}; // Used by WebCore's inspector routines.
}
if ("page" in WebInspector._paramsObject) {
WebInspector.socket = new WebSocket("ws://" + window.location.host + "/devtools/page/" + WebInspector._paramsObject.page);
- WebInspector.socket.onmessage = function(message) { eval(message.data); }
+ WebInspector.socket.onmessage = function(message) { devtools$$dispatch(message.data); }
WebInspector.socket.onerror = function(error) { console.err(error); }
WebInspector.socket.onopen = function() {
WebInspector.socketOpened = true;
if (WebInspector.loadedDone)
WebInspector.doLoadedDone();
};
+ InspectorFrontendHost.sendMessageToBackend = WebInspector.socket.send.bind(WebInspector.socket);
+ InspectorFrontendHost.loaded = WebInspector.socket.send.bind(WebInspector.socket, "loaded");
}
})();
///////////////////////////////////////////////////////////////////////////////
@@ -165,7 +113,7 @@ WebInspector.loaded = function()
Preferences.debuggerAlwaysEnabled = true;
Preferences.profilerAlwaysEnabled = true;
Preferences.canEditScriptSource = true;
-
+ Preferences.onlineDetectionEnabled = false;
if ("page" in WebInspector._paramsObject) {
WebInspector.loadedDone = true;
if (WebInspector.socketOpened)
@@ -177,7 +125,6 @@ WebInspector.loaded = function()
WebInspector.doLoadedDone = function() {
oldLoaded.call(this);
- InspectorFrontendHost.loaded();
}
devtools.domContentLoaded = function()
diff --git a/WebKit/chromium/src/js/DevToolsHostStub.js b/WebKit/chromium/src/js/DevToolsHostStub.js
index 52b28bb..d3333e2 100644
--- a/WebKit/chromium/src/js/DevToolsHostStub.js
+++ b/WebKit/chromium/src/js/DevToolsHostStub.js
@@ -35,8 +35,4 @@
if (!window["RemoteDebuggerCommandExecutor"]) {
window["RemoteDebuggerCommandExecutor"] = {};
- window["RemoteProfilerAgent"] = {};
- window["RemoteToolsAgent"] = {
- dispatchOnInspectorController: function() {}
- };
}
diff --git a/WebKit/chromium/src/js/ProfilerAgent.js b/WebKit/chromium/src/js/ProfilerAgent.js
index 0b65ace..7f74595 100644
--- a/WebKit/chromium/src/js/ProfilerAgent.js
+++ b/WebKit/chromium/src/js/ProfilerAgent.js
@@ -37,8 +37,6 @@
*/
devtools.ProfilerAgent = function()
{
- RemoteProfilerAgent.didGetActiveProfilerModules = this._didGetActiveProfilerModules.bind(this);
- RemoteProfilerAgent.didGetLogLines = this._didGetLogLines.bind(this);
/**
* Profiler log position.
@@ -92,10 +90,17 @@ devtools.ProfilerAgent.prototype._getNextLogLines = function(immediately)
if (this._lastRequestedLogPosition == this._logPosition)
return;
var pos = this._lastRequestedLogPosition = this._logPosition;
+
+ var callId = WebInspector.Callback.wrap(this._didGetProfilerLogLines.bind(this));
if (immediately)
- RemoteProfilerAgent.getLogLines(pos);
- else
- setTimeout(function() { RemoteProfilerAgent.getLogLines(pos); }, 500);
+ InspectorBackend.getProfilerLogLines(callId, pos);
+ else {
+ function delayedRequest()
+ {
+ InspectorBackend.getProfilerLogLines(callId, pos);
+ }
+ setTimeout(delayedRequest, 500);
+ }
};
@@ -114,20 +119,11 @@ devtools.ProfilerAgent.prototype.startProfiling = function(modules)
/**
- * Handles current profiler status.
- * @param {number} modules List of active (started) modules.
- */
-devtools.ProfilerAgent.prototype._didGetActiveProfilerModules = function(modules)
-{
-};
-
-
-/**
* Handles a portion of a profiler log retrieved by getLogLines call.
* @param {number} pos Current position in log.
* @param {string} log A portion of profiler log.
*/
-devtools.ProfilerAgent.prototype._didGetLogLines = function(pos, log)
+devtools.ProfilerAgent.prototype._didGetProfilerLogLines = function(pos, log)
{
this._logPosition = pos;
if (log.length > 0) {
@@ -138,3 +134,5 @@ devtools.ProfilerAgent.prototype._didGetLogLines = function(pos, log)
this._lastRequestedLogPosition = this._logPosition - 1;
}
};
+
+WebInspector.didGetProfilerLogLines = WebInspector.Callback.processCallback;
diff --git a/WebKit/chromium/src/js/ProfilerProcessor.js b/WebKit/chromium/src/js/ProfilerProcessor.js
index f678d2c..61714e8 100644
--- a/WebKit/chromium/src/js/ProfilerProcessor.js
+++ b/WebKit/chromium/src/js/ProfilerProcessor.js
@@ -281,7 +281,7 @@ devtools.profiler.Processor.prototype.__proto__ = devtools.profiler.LogReader.pr
*/
devtools.profiler.Processor.prototype.printError = function(str)
{
- debugPrint(str);
+ WebInspector.log(str);
};
diff --git a/WebKit/chromium/src/js/Tests.js b/WebKit/chromium/src/js/Tests.js
index e2ab3b3..764f624 100644
--- a/WebKit/chromium/src/js/Tests.js
+++ b/WebKit/chromium/src/js/Tests.js
@@ -261,10 +261,10 @@ TestSuite.prototype.testEnableResourcesTab = function()
var test = this;
this.addSniffer(WebInspector, "updateResource",
- function(identifier, payload) {
+ function(payload) {
test.assertEquals("simple_page.html", payload.lastPathComponent);
WebInspector.panels.resources.refresh();
- WebInspector.panels.resources.revealAndSelectItem(WebInspector.resources[identifier]);
+ WebInspector.panels.resources.revealAndSelectItem(WebInspector.resources[payload.id]);
test.releaseControl();
});
@@ -289,10 +289,10 @@ TestSuite.prototype.testResourceContentLength = function()
var png = false;
var html = false;
this.addSniffer(WebInspector, "updateResource",
- function(identifier, payload) {
+ function(payload) {
if (!payload.didLengthChange)
return;
- var resource = WebInspector.resources[identifier];
+ var resource = WebInspector.resources[payload.id];
if (!resource || !resource.url)
return;
if (resource.url.search("image.html") !== -1) {
@@ -346,8 +346,8 @@ TestSuite.prototype.testResourceHeaders = function()
var timingOk = false;
this.addSniffer(WebInspector, "updateResource",
- function(identifier, payload) {
- var resource = this.resources[identifier];
+ function(payload) {
+ var resource = this.resources[payload.id];
if (!resource || resource.mainResource) {
// We are only interested in secondary resources in this test.
return;
@@ -393,8 +393,8 @@ TestSuite.prototype.testCachedResourceMimeType = function()
var hasReloaded = false;
this.addSniffer(WebInspector, "updateResource",
- function(identifier, payload) {
- var resource = this.resources[identifier];
+ function(payload) {
+ var resource = this.resources[payload.id];
if (!resource || resource.mainResource) {
// We are only interested in secondary resources in this test.
return;
@@ -1845,8 +1845,37 @@ uiTests.runAllTests = function()
*/
uiTests.runTest = function(name)
{
- new TestSuite().runTest(name);
+ if (uiTests._populatedInterface)
+ new TestSuite().runTest(name);
+ else
+ uiTests._pendingTestName = name;
};
+(function() {
+
+function runTests()
+{
+ uiTests._populatedInterface = true;
+ var name = uiTests._pendingTestName;
+ delete uiTests._pendingTestName;
+ if (name)
+ new TestSuite().runTest(name);
+}
+
+var oldShowElementsPanel = WebInspector.showElementsPanel;
+WebInspector.showElementsPanel = function()
+{
+ oldShowElementsPanel.call(this);
+ runTests();
+}
+
+var oldShowPanel = WebInspector.showPanel;
+WebInspector.showPanel = function(name)
+{
+ oldShowPanel.call(this, name);
+ runTests();
+}
+
+})();
}
diff --git a/WebKit/chromium/tests/KURLTest.cpp b/WebKit/chromium/tests/KURLTest.cpp
index 6be4966..c46da2a 100644
--- a/WebKit/chromium/tests/KURLTest.cpp
+++ b/WebKit/chromium/tests/KURLTest.cpp
@@ -40,7 +40,7 @@
namespace {
// Output stream operator so gTest's macros work with WebCore strings.
-std::ostream& operator<<(std::ostream& out, const WebCore::String& str)
+std::ostream& operator<<(std::ostream& out, const WTF::String& str)
{
return str.isEmpty() ? out : out << str.utf8().data();
}
@@ -95,7 +95,7 @@ TEST(KURLTest, SameGetters)
EXPECT_EQ(cases[i].hasRef, kurl.hasFragmentIdentifier());
// UTF-16
- WebCore::String utf16(cases[i].url);
+ WTF::String utf16(cases[i].url);
kurl = WebCore::KURL(WebCore::ParsedURLString, utf16);
EXPECT_EQ(cases[i].protocol, kurl.protocol());
@@ -144,7 +144,7 @@ TEST(KURLTest, DifferentGetters)
EXPECT_EQ(cases[i].query, kurl.query());
// Want to compare UCS-16 refs (or to null).
if (cases[i].ref)
- EXPECT_EQ(WebCore::String::fromUTF8(cases[i].ref), kurl.fragmentIdentifier());
+ EXPECT_EQ(WTF::String::fromUTF8(cases[i].ref), kurl.fragmentIdentifier());
else
EXPECT_TRUE(kurl.fragmentIdentifier().isNull());
}
@@ -156,23 +156,23 @@ TEST(KURLTest, UTF8)
{
const char asciiURL[] = "http://foo/bar#baz";
WebCore::KURL asciiKURL(WebCore::ParsedURLString, asciiURL);
- EXPECT_TRUE(asciiKURL.string() == WebCore::String(asciiURL));
+ EXPECT_TRUE(asciiKURL.string() == WTF::String(asciiURL));
// When the result is ASCII, we should get an ASCII String. Some
// code depends on being able to compare the result of the .string()
// getter with another String, and the isASCIIness of the two
// strings must match for these functions (like equalIgnoringCase).
- EXPECT_TRUE(WebCore::equalIgnoringCase(asciiKURL, WebCore::String(asciiURL)));
+ EXPECT_TRUE(WTF::equalIgnoringCase(asciiKURL, WTF::String(asciiURL)));
// Reproduce code path in FrameLoader.cpp -- equalIgnoringCase implicitly
// expects gkurl.protocol() to have been created as ascii.
WebCore::KURL mailto(WebCore::ParsedURLString, "mailto:foo@foo.com");
- EXPECT_TRUE(WebCore::equalIgnoringCase(mailto.protocol(), "mailto"));
+ EXPECT_TRUE(WTF::equalIgnoringCase(mailto.protocol(), "mailto"));
const char utf8URL[] = "http://foo/bar#\xe4\xbd\xa0\xe5\xa5\xbd";
WebCore::KURL utf8KURL(WebCore::ParsedURLString, utf8URL);
- EXPECT_TRUE(utf8KURL.string() == WebCore::String::fromUTF8(utf8URL));
+ EXPECT_TRUE(utf8KURL.string() == WTF::String::fromUTF8(utf8URL));
}
TEST(KURLTest, Setters)
@@ -281,20 +281,20 @@ TEST(KURLTest, Decode)
};
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(decodeCases); i++) {
- WebCore::String input(decodeCases[i].input);
- WebCore::String str = WebCore::decodeURLEscapeSequences(input);
+ WTF::String input(decodeCases[i].input);
+ WTF::String str = WebCore::decodeURLEscapeSequences(input);
EXPECT_STREQ(decodeCases[i].output, str.utf8().data());
}
// Our decode should decode %00
- WebCore::String zero = WebCore::decodeURLEscapeSequences("%00");
+ WTF::String zero = WebCore::decodeURLEscapeSequences("%00");
EXPECT_STRNE("%00", zero.utf8().data());
// Test the error behavior for invalid UTF-8 (we differ from WebKit here).
- WebCore::String invalid = WebCore::decodeURLEscapeSequences(
+ WTF::String invalid = WebCore::decodeURLEscapeSequences(
"%e4%a0%e5%a5%bd");
char16 invalidExpectedHelper[4] = { 0x00e4, 0x00a0, 0x597d, 0 };
- WebCore::String invalidExpected(
+ WTF::String invalidExpected(
reinterpret_cast<const ::UChar*>(invalidExpectedHelper),
3);
EXPECT_EQ(invalidExpected, invalid);
@@ -305,20 +305,20 @@ TEST(KURLTest, Encode)
{
// Also test that it gets converted to UTF-8 properly.
char16 wideInputHelper[3] = { 0x4f60, 0x597d, 0 };
- WebCore::String wideInput(
+ WTF::String wideInput(
reinterpret_cast<const ::UChar*>(wideInputHelper), 2);
- WebCore::String wideReference("\xe4\xbd\xa0\xe5\xa5\xbd", 6);
- WebCore::String wideOutput =
+ WTF::String wideReference("\xe4\xbd\xa0\xe5\xa5\xbd", 6);
+ WTF::String wideOutput =
WebCore::encodeWithURLEscapeSequences(wideInput);
EXPECT_EQ(wideReference, wideOutput);
// Our encode only escapes NULLs for safety (see the implementation for
// more), so we only bother to test a few cases.
- WebCore::String input(
+ WTF::String input(
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 16);
- WebCore::String reference(
+ WTF::String reference(
"%00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", 18);
- WebCore::String output = WebCore::encodeWithURLEscapeSequences(input);
+ WTF::String output = WebCore::encodeWithURLEscapeSequences(input);
EXPECT_EQ(reference, output);
}
@@ -395,7 +395,7 @@ TEST(KURLTest, Path)
WebCore::KURL kurl(WebCore::ParsedURLString, initial);
// Clear by setting a null string.
- WebCore::String nullString;
+ WTF::String nullString;
EXPECT_TRUE(nullString.isNull());
kurl.setPath(nullString);
EXPECT_STREQ("http://www.google.com/", kurl.string().utf8().data());
@@ -409,14 +409,14 @@ TEST(KURLTest, Query)
WebCore::KURL kurl(WebCore::ParsedURLString, initial);
// Clear by setting a null string.
- WebCore::String nullString;
+ WTF::String nullString;
EXPECT_TRUE(nullString.isNull());
kurl.setQuery(nullString);
EXPECT_STREQ("http://www.google.com/search", kurl.string().utf8().data());
// Clear by setting an empty string.
kurl = WebCore::KURL(WebCore::ParsedURLString, initial);
- WebCore::String emptyString("");
+ WTF::String emptyString("");
EXPECT_FALSE(emptyString.isNull());
kurl.setQuery(emptyString);
EXPECT_STREQ("http://www.google.com/search?", kurl.string().utf8().data());
@@ -456,10 +456,10 @@ TEST(KURLTest, Ref)
// Setting the ref to the null string will clear it altogether.
cur = WebCore::KURL(WebCore::ParsedURLString, "http://foo/bar");
- cur.setFragmentIdentifier(WebCore::String());
+ cur.setFragmentIdentifier(WTF::String());
EXPECT_STREQ("http://foo/bar", cur.string().utf8().data());
cur = kurl;
- cur.setFragmentIdentifier(WebCore::String());
+ cur.setFragmentIdentifier(WTF::String());
EXPECT_STREQ("http://foo/bar", cur.string().utf8().data());
}
@@ -485,7 +485,7 @@ TEST(KURLTest, Empty)
EXPECT_TRUE(kurl2.string().isEmpty());
// Resolve the null URL on a null string.
- WebCore::KURL kurl22(kurl, WebCore::String());
+ WebCore::KURL kurl22(kurl, WTF::String());
EXPECT_FALSE(kurl22.isNull());
EXPECT_TRUE(kurl22.isEmpty());
EXPECT_FALSE(kurl22.isValid());
diff --git a/WebKit/efl/CMakeListsEfl.txt b/WebKit/efl/CMakeListsEfl.txt
index 0701d22..f6b96fd 100644
--- a/WebKit/efl/CMakeListsEfl.txt
+++ b/WebKit/efl/CMakeListsEfl.txt
@@ -10,6 +10,7 @@ LIST(APPEND WebKit_LINK_FLAGS
LIST(APPEND WebKit_INCLUDE_DIRECTORIES
"${WEBKIT_DIR}/efl/ewk"
"${WEBKIT_DIR}/efl/WebCoreSupport"
+ "${WEBCORE_DIR}/platform/efl"
${Cairo_INCLUDE_DIRS}
${ECORE_X_INCLUDE_DIRS}
${EDJE_INCLUDE_DIRS}
diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog
index 80595aa..0a627e7 100644
--- a/WebKit/efl/ChangeLog
+++ b/WebKit/efl/ChangeLog
@@ -1,3 +1,46 @@
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebCoreSupport/InspectorClientEfl.h:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * WebCoreSupport/InspectorClientEfl.h:
+
+2010-08-03 Leandro Pereira <leandro@profusion.mobi>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Implement HTML5 slider theme (using the scrollbar theme as base).
+ https://bugs.webkit.org/show_bug.cgi?id=43430
+
+ * DefaultTheme/default.edc: Include slider.edc.
+ * DefaultTheme/widget/slider/slider.edc: Added.
+ * DefaultTheme/widget/slider/slider_h.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png.
+ * DefaultTheme/widget/slider/slider_hilight.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_hilight.png.
+ * DefaultTheme/widget/slider/slider_knob_h.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png.
+ * DefaultTheme/widget/slider/slider_knob_v.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png.
+ * DefaultTheme/widget/slider/slider_v.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png.
+
+2010-08-03 ryuan choi <ryuan.choi@samsung.com>
+
+ Reviewed by Darin Adler.
+
+ [EFL] REGRESSION(64425) need to fix build break
+ https://bugs.webkit.org/show_bug.cgi?id=43322
+
+ just add include path missed after r64425
+
+ * CMakeListsEfl.txt:
+
2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Darin Fisher.
diff --git a/WebKit/efl/DefaultTheme/default.edc b/WebKit/efl/DefaultTheme/default.edc
index 7e0fe48..82b6882 100644
--- a/WebKit/efl/DefaultTheme/default.edc
+++ b/WebKit/efl/DefaultTheme/default.edc
@@ -73,4 +73,5 @@ collections {
#include "widget/search/field/search_field.edc"
#include "widget/search/cancel/search_cancel.edc"
#include "widget/search/decoration/search_decoration.edc"
+#include "widget/slider/slider.edc"
}
diff --git a/WebKit/efl/DefaultTheme/widget/slider/slider.edc b/WebKit/efl/DefaultTheme/widget/slider/slider.edc
new file mode 100644
index 0000000..6c1f6a5
--- /dev/null
+++ b/WebKit/efl/DefaultTheme/widget/slider/slider.edc
@@ -0,0 +1,221 @@
+/*
+ Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia
+ Copyright (C) 2009,2010 ProFUSION embedded systems
+ Copyright (C) 2009,2010 Samsung Electronics
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+group {
+ name: "webkit/widget/slider/vertical";
+
+ min: 10 0; /* if > 0, this is the minimum size that will be allocated.
+ * If wants to draw on top, just overflow usign edje's rel1/rel2
+ */
+
+ images {
+ image: "widget/slider/slider_v.png" COMP;
+ image: "widget/slider/slider_knob_v.png" COMP;
+ }
+
+ script {
+ public message(Msg_Type:type, id, ...) {
+ if ((id == 0) && (type == MSG_FLOAT_SET)) {
+ new Float:vy, Float:sy;
+
+ vy = getfarg(2);
+ sy = getfarg(3);
+
+ if (vy >= 0.0) {
+ set_drag_size(PART:"img.knob", 1.0, sy);
+ set_drag(PART:"img.knob", 0.0, vy);
+ }
+ }
+ }
+
+ public update_drag_pos() {
+ new Float:x, Float:y;
+ get_drag(PART:"img.knob", x, y);
+ send_message(MSG_FLOAT, 1, y);
+ }
+ }
+
+ parts {
+ part {
+ name: "rect.base";
+ type: RECT;
+ description {
+ min: 10 0;
+ max: 10 999999;
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "rect.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "img.slider";
+ type: IMAGE;
+ mouse_events: 0;
+ clip_to: "rect.clipper";
+ description {
+ state: "default" 0.0;
+ image {
+ normal: "widget/slider/slider_v.png";
+ border: 0 0 6 6;
+ }
+ }
+ }
+
+ part {
+ name: "img.knob";
+ type: IMAGE;
+ mouse_events: 1;
+ clip_to: "rect.clipper";
+ dragable {
+ x: 0 0 0;
+ y: 1 1 0;
+ confine: "rect.base";
+ }
+ description {
+ state: "default" 0.0;
+ min: 10 10;
+ max: 10 999999;
+ image {
+ normal: "widget/slider/slider_knob_v.png";
+ border: 0 0 6 6;
+ }
+ }
+ }
+ }
+ programs {
+ program {
+ name: "dragged";
+ signal: "drag";
+ source: "img.knob";
+ script {
+ update_drag_pos();
+ }
+ }
+ }
+}
+
+group {
+ name: "webkit/widget/slider/horizontal";
+
+ min: 0 10; /* if > 0, this is the minimum size that will be allocated.
+ * If wants to draw on top, just overflow usign edje's rel1/rel2
+ */
+
+ images {
+ image: "widget/slider/slider_h.png" COMP;
+ image: "widget/slider/slider_knob_h.png" COMP;
+ }
+
+ script {
+ public message(Msg_Type:type, id, ...) {
+ if ((id == 0) && (type == MSG_FLOAT_SET)) {
+ new Float:vx, Float:sx;
+
+ vx = getfarg(2);
+ sx = getfarg(3);
+
+ if (vx >= 0.0) {
+ set_drag_size(PART:"img.knob", sx, 1.0);
+ set_drag(PART:"img.knob", vx, 0.0);
+ }
+ }
+ }
+
+ public update_drag_pos() {
+ new Float:x, Float:y;
+ get_drag(PART:"img.knob", x, y);
+ send_message(MSG_FLOAT, 1, x);
+ }
+ }
+
+ parts {
+ part {
+ name: "rect.base";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ min: 0 10;
+ max: 999999 10;
+ color: 255 255 255 0;
+ }
+ }
+ part {
+ name: "rect.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "img.slider";
+ type: IMAGE;
+ mouse_events: 0;
+ clip_to: "rect.clipper";
+ description {
+ state: "default" 0.0;
+ image {
+ normal: "widget/slider/slider_h.png";
+ border: 6 6 0 0;
+ }
+ }
+ }
+
+ part {
+ name: "img.knob";
+ type: IMAGE;
+ mouse_events: 1;
+ clip_to: "rect.clipper";
+ dragable {
+ x: 1 1 0;
+ y: 0 0 0;
+ confine: "rect.base";
+ }
+ description {
+ state: "default" 0.0;
+ min: 10 10;
+ image {
+ normal: "widget/slider/slider_knob_h.png";
+ border: 6 6 0 0;
+ }
+ }
+ }
+ }
+ programs {
+ program {
+ name: "dragged";
+ signal: "drag";
+ source: "img.knob";
+ script {
+ update_drag_pos();
+ }
+ }
+ }
+}
diff --git a/WebKit/efl/DefaultTheme/widget/slider/slider_h.png b/WebKit/efl/DefaultTheme/widget/slider/slider_h.png
new file mode 100644
index 0000000..6e55557
--- /dev/null
+++ b/WebKit/efl/DefaultTheme/widget/slider/slider_h.png
Binary files differ
diff --git a/WebKit/efl/DefaultTheme/widget/slider/slider_hilight.png b/WebKit/efl/DefaultTheme/widget/slider/slider_hilight.png
new file mode 100644
index 0000000..1116f4e
--- /dev/null
+++ b/WebKit/efl/DefaultTheme/widget/slider/slider_hilight.png
Binary files differ
diff --git a/WebKit/efl/DefaultTheme/widget/slider/slider_knob_h.png b/WebKit/efl/DefaultTheme/widget/slider/slider_knob_h.png
new file mode 100644
index 0000000..bc65102
--- /dev/null
+++ b/WebKit/efl/DefaultTheme/widget/slider/slider_knob_h.png
Binary files differ
diff --git a/WebKit/efl/DefaultTheme/widget/slider/slider_knob_v.png b/WebKit/efl/DefaultTheme/widget/slider/slider_knob_v.png
new file mode 100644
index 0000000..db3c685
--- /dev/null
+++ b/WebKit/efl/DefaultTheme/widget/slider/slider_knob_v.png
Binary files differ
diff --git a/WebKit/efl/DefaultTheme/widget/slider/slider_v.png b/WebKit/efl/DefaultTheme/widget/slider/slider_v.png
new file mode 100644
index 0000000..9ebdac2
--- /dev/null
+++ b/WebKit/efl/DefaultTheme/widget/slider/slider_v.png
Binary files differ
diff --git a/WebKit/efl/WebCoreSupport/DragClientEfl.h b/WebKit/efl/WebCoreSupport/DragClientEfl.h
index 40bb6ad..f73116c 100644
--- a/WebKit/efl/WebCoreSupport/DragClientEfl.h
+++ b/WebKit/efl/WebCoreSupport/DragClientEfl.h
@@ -45,7 +45,7 @@ public:
virtual WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint& windowPoint);
virtual void startDrag(WebCore::DragImageRef dragImage, const WebCore::IntPoint& dragImageOrigin, const WebCore::IntPoint& eventPos, WebCore::Clipboard*, WebCore::Frame*, bool linkDrag = false);
- virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL&, const WebCore::String& label, WebCore::Frame*);
+ virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL&, const WTF::String& label, WebCore::Frame*);
virtual void dragControllerDestroyed();
};
diff --git a/WebKit/efl/WebCoreSupport/InspectorClientEfl.h b/WebKit/efl/WebCoreSupport/InspectorClientEfl.h
index 1ca646d..0c283d8 100644
--- a/WebKit/efl/WebCoreSupport/InspectorClientEfl.h
+++ b/WebKit/efl/WebCoreSupport/InspectorClientEfl.h
@@ -33,11 +33,11 @@
#define InspectorClientEfl_h
#include "InspectorClient.h"
+#include <wtf/Forward.h>
namespace WebCore {
class Node;
class Page;
-class String;
class InspectorClientEfl : public WebCore::InspectorClient {
public:
diff --git a/WebKit/efl/ewk/ewk_contextmenu.cpp b/WebKit/efl/ewk/ewk_contextmenu.cpp
index 9daf27c..7461359 100644
--- a/WebKit/efl/ewk/ewk_contextmenu.cpp
+++ b/WebKit/efl/ewk/ewk_contextmenu.cpp
@@ -112,7 +112,7 @@ Eina_Bool ewk_context_menu_item_select(Ewk_Context_Menu* menu, Ewk_Context_Menu_
WebCore::ContextMenuItemType type = static_cast<WebCore::ContextMenuItemType>(item->type);
// Don't care about title and submenu as they're not used after this point.
- WebCore::ContextMenuItem core(type, action, WebCore::String());
+ WebCore::ContextMenuItem core(type, action, WTF::String());
menu->controller->contextMenuItemSelected(&core);
return EINA_TRUE;
}
diff --git a/WebKit/efl/ewk/ewk_frame.cpp b/WebKit/efl/ewk/ewk_frame.cpp
index ca76f02..fcf5ed3 100644
--- a/WebKit/efl/ewk/ewk_frame.cpp
+++ b/WebKit/efl/ewk/ewk_frame.cpp
@@ -335,7 +335,7 @@ void ewk_frame_theme_set(Evas_Object* o, const char* path)
if (!eina_stringshare_replace(&sd->theme, path))
return;
if (sd->frame && sd->frame->view()) {
- sd->frame->view()->setEdjeTheme(WebCore::String(path));
+ sd->frame->view()->setEdjeTheme(WTF::String(path));
sd->frame->page()->theme()->themeChanged();
}
}
@@ -406,8 +406,8 @@ Evas_Object* ewk_frame_child_find(Evas_Object* o, const char* name)
EWK_FRAME_SD_GET_OR_RETURN(o, sd, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(name, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(sd->frame, 0);
- WebCore::String s = WebCore::String::fromUTF8(name);
- return kit(sd->frame->tree()->find(WebCore::AtomicString(s)));
+ WTF::String s = WTF::String::fromUTF8(name);
+ return kit(sd->frame->tree()->find(WTF::AtomicString(s)));
}
/**
@@ -419,7 +419,7 @@ Evas_Object* ewk_frame_child_find(Evas_Object* o, const char* name)
Eina_Bool ewk_frame_uri_set(Evas_Object* o, const char* uri)
{
EWK_FRAME_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
- WebCore::KURL kurl(WebCore::KURL(), WebCore::String::fromUTF8(uri));
+ WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(uri));
WebCore::ResourceRequest req(kurl);
WebCore::FrameLoader* loader = sd->frame->loader();
loader->load(req, false);
@@ -474,7 +474,7 @@ const char* ewk_frame_name_get(const Evas_Object* o)
return 0;
}
- WebCore::String s = sd->frame->tree()->name();
+ WTF::String s = sd->frame->tree()->name();
WTF::CString cs = s.utf8();
sd->name = eina_stringshare_add_length(cs.data(), cs.length());
return sd->name;
@@ -515,18 +515,18 @@ static Eina_Bool _ewk_frame_contents_set_internal(Ewk_Frame_Smart_Data *sd, cons
if (!base_uri)
base_uri = "about:blank";
- WebCore::KURL baseKURL(WebCore::KURL(), WebCore::String::fromUTF8(base_uri));
+ WebCore::KURL baseKURL(WebCore::KURL(), WTF::String::fromUTF8(base_uri));
WebCore::KURL unreachableKURL;
if (unreachable_uri)
- unreachableKURL = WebCore::KURL(WebCore::KURL(), WebCore::String::fromUTF8(unreachable_uri));
+ unreachableKURL = WebCore::KURL(WebCore::KURL(), WTF::String::fromUTF8(unreachable_uri));
else
unreachableKURL = WebCore::KURL();
WTF::RefPtr<WebCore::SharedBuffer> buffer = WebCore::SharedBuffer::create(contents, contents_size);
WebCore::SubstituteData substituteData
(buffer.release(),
- WebCore::String::fromUTF8(mime_type),
- WebCore::String::fromUTF8(encoding),
+ WTF::String::fromUTF8(mime_type),
+ WTF::String::fromUTF8(encoding),
baseKURL, unreachableKURL);
WebCore::ResourceRequest request(baseKURL);
@@ -601,7 +601,7 @@ Eina_Bool ewk_frame_script_execute(Evas_Object* o, const char* script)
EWK_FRAME_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(sd->frame, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(script, EINA_FALSE);
- sd->frame->script()->executeScript(WebCore::String::fromUTF8(script), true);
+ sd->frame->script()->executeScript(WTF::String::fromUTF8(script), true);
return EINA_TRUE;
}
@@ -658,7 +658,7 @@ char* ewk_frame_selection_get(const Evas_Object* o)
static inline Eina_Bool _ewk_frame_editor_command(Ewk_Frame_Smart_Data* sd, const char* command)
{
- return sd->frame->editor()->command(WebCore::String::fromUTF8(command)).execute();
+ return sd->frame->editor()->command(WTF::String::fromUTF8(command)).execute();
}
/**
@@ -750,7 +750,7 @@ Eina_Bool ewk_frame_text_search(const Evas_Object* o, const char* string, Eina_B
EINA_SAFETY_ON_NULL_RETURN_VAL(sd->frame, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(string, EINA_FALSE);
- return sd->frame->findString(WebCore::String::fromUTF8(string), forward, case_sensitive, wrap, true);
+ return sd->frame->findString(WTF::String::fromUTF8(string), forward, case_sensitive, wrap, true);
}
/**
@@ -771,7 +771,7 @@ unsigned int ewk_frame_text_matches_mark(Evas_Object* o, const char* string, Ein
EINA_SAFETY_ON_NULL_RETURN_VAL(string, 0);
sd->frame->setMarkedTextMatchesAreHighlighted(highlight);
- return sd->frame->markAllMatchesForText(WebCore::String::fromUTF8(string), case_sensitive, limit);
+ return sd->frame->markAllMatchesForText(WTF::String::fromUTF8(string), case_sensitive, limit);
}
/**
@@ -1560,7 +1560,7 @@ Eina_Bool ewk_frame_init(Evas_Object* o, Evas_Object* view, WebCore::Frame* fram
return EINA_FALSE;
}
-Evas_Object* ewk_frame_child_add(Evas_Object* o, WTF::PassRefPtr<WebCore::Frame> child, const WebCore::String& name, const WebCore::KURL& url, const WebCore::String& referrer)
+Evas_Object* ewk_frame_child_add(Evas_Object* o, WTF::PassRefPtr<WebCore::Frame> child, const WTF::String& name, const WebCore::KURL& url, const WTF::String& referrer)
{
EWK_FRAME_SD_GET_OR_RETURN(o, sd, 0);
char buf[256];
@@ -1690,8 +1690,8 @@ void ewk_frame_view_state_save(Evas_Object *o, WebCore::HistoryItem* item)
const char *title = ewk_frame_title_get(o);
const char *uri = ewk_frame_uri_get(o);
- item->setTitle(WebCore::String::fromUTF8(title));
- item->setURLString(WebCore::String::fromUTF8(uri));
+ item->setTitle(WTF::String::fromUTF8(title));
+ item->setURLString(WTF::String::fromUTF8(uri));
evas_object_smart_callback_call(o, "state,save", 0);
}
@@ -1946,7 +1946,7 @@ void ewk_frame_force_layout(Evas_Object* o)
view->forceLayout(true);
}
-WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* o, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues, const WebCore::String& mimeType, bool loadManually)
+WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* o, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::StringWTF::String& mimeType, bool loadManually)
{
return 0;
}
diff --git a/WebKit/efl/ewk/ewk_history.cpp b/WebKit/efl/ewk/ewk_history.cpp
index da48c33..8387da1 100644
--- a/WebKit/efl/ewk/ewk_history.cpp
+++ b/WebKit/efl/ewk/ewk_history.cpp
@@ -415,8 +415,8 @@ Eina_Bool ewk_history_limit_set(const Ewk_History* history, int limit)
*/
Ewk_History_Item* ewk_history_item_new(const char* uri, const char* title)
{
- WebCore::String u = WebCore::String::fromUTF8(uri);
- WebCore::String t = WebCore::String::fromUTF8(title);
+ WTF::String u = WTF::String::fromUTF8(uri);
+ WTF::String t = WTF::String::fromUTF8(title);
WTF::RefPtr<WebCore::HistoryItem> core = WebCore::HistoryItem::create(u, t, 0);
Ewk_History_Item* item = _ewk_history_item_new(core.release().releaseRef());
return item;
@@ -507,7 +507,7 @@ void ewk_history_item_title_alternate_set(Ewk_History_Item* item, const char* ti
EWK_HISTORY_ITEM_CORE_GET_OR_RETURN(item, core);
if (!eina_stringshare_replace(&item->alternate_title, title))
return;
- core->setAlternateTitle(WebCore::String::fromUTF8(title));
+ core->setAlternateTitle(WTF::String::fromUTF8(title));
}
/**
diff --git a/WebKit/efl/ewk/ewk_private.h b/WebKit/efl/ewk/ewk_private.h
index 2096e76..f69f46c 100644
--- a/WebKit/efl/ewk/ewk_private.h
+++ b/WebKit/efl/ewk/ewk_private.h
@@ -97,9 +97,9 @@ void ewk_view_repaint(Evas_Object *o, Evas_Coord x, Evas_Coord y, Evas_Coord w,
void ewk_view_scroll(Evas_Object *o, Evas_Coord dx, Evas_Coord dy, Evas_Coord sx, Evas_Coord sy, Evas_Coord sw, Evas_Coord sh, Evas_Coord cx, Evas_Coord cy, Evas_Coord cw, Evas_Coord ch, Eina_Bool main_frame);
WebCore::Page *ewk_view_core_page_get(const Evas_Object *o);
-WTF::PassRefPtr<WebCore::Frame> ewk_view_frame_create(Evas_Object *o, Evas_Object *frame, const WebCore::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, const WebCore::KURL& url, const WebCore::String& referrer);
+WTF::PassRefPtr<WebCore::Frame> ewk_view_frame_create(Evas_Object *o, Evas_Object *frame, const WTF::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, const WebCore::KURL& url, const WTF::String& referrer);
-WTF::PassRefPtr<WebCore::Widget> ewk_view_plugin_create(Evas_Object* o, Evas_Object* frame, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues, const WebCore::String& mimeType, bool loadManually);
+WTF::PassRefPtr<WebCore::Widget> ewk_view_plugin_create(Evas_Object* o, Evas_Object* frame, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::String& mimeType, bool loadManually);
void ewk_view_popup_new(Evas_Object *o, WebCore::PopupMenuClient* client, int selected, const WebCore::IntRect& rect);
void ewk_view_viewport_set(Evas_Object *o, float w, float h, float init_scale, float max_scale, float min_scale, float user_scalable);
@@ -119,7 +119,7 @@ Ewk_Window_Features *ewk_window_features_new_from_core(const WebCore::WindowFeat
Evas_Object *ewk_frame_add(Evas *e);
Eina_Bool ewk_frame_init(Evas_Object *o, Evas_Object *view, WebCore::Frame *frame);
-Evas_Object *ewk_frame_child_add(Evas_Object *o, WTF::PassRefPtr<WebCore::Frame> child, const WebCore::String& name, const WebCore::KURL& url, const WebCore::String& referrer);
+Evas_Object *ewk_frame_child_add(Evas_Object *o, WTF::PassRefPtr<WebCore::Frame> child, const WTF::String& name, const WebCore::KURL& url, const WTF::String& referrer);
WebCore::Frame *ewk_frame_core_get(const Evas_Object *o);
void ewk_frame_core_gone(Evas_Object *o);
@@ -146,7 +146,7 @@ void ewk_frame_view_create_for_view(Evas_Object *o, Evas_Object *view);
Eina_Bool ewk_frame_uri_changed(Evas_Object *o);
void ewk_frame_force_layout(Evas_Object *o);
-WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* o, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues, const WebCore::String& mimeType, bool loadManually);
+WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* o, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::String& mimeType, bool loadManually);
#ifdef __cplusplus
diff --git a/WebKit/efl/ewk/ewk_settings.cpp b/WebKit/efl/ewk/ewk_settings.cpp
index e775ac9..6d2be05 100644
--- a/WebKit/efl/ewk/ewk_settings.cpp
+++ b/WebKit/efl/ewk/ewk_settings.cpp
@@ -67,7 +67,7 @@ uint64_t ewk_settings_web_database_default_quota_get()
void ewk_settings_web_database_path_set(const char *path)
{
#if ENABLE(DATABASE)
- WebCore::String corePath = WebCore::String::fromUTF8(path);
+ WTF::String corePath = WTF::String::fromUTF8(path);
WebCore::DatabaseTracker::tracker().setDatabaseDirectoryPath(corePath);
#endif
}
@@ -82,7 +82,7 @@ void ewk_settings_web_database_path_set(const char *path)
const char *ewk_settings_web_database_path_get()
{
#if ENABLE(DATABASE)
- WebCore::String path = WebCore::DatabaseTracker::tracker().databaseDirectoryPath();
+ WTF::String path = WebCore::DatabaseTracker::tracker().databaseDirectoryPath();
return strdup(path.utf8().data());
#else
return 0;
@@ -121,7 +121,7 @@ Eina_Bool ewk_settings_icon_database_path_set(const char *directory)
}
WebCore::iconDatabase()->setEnabled(true);
- WebCore::iconDatabase()->open(WebCore::String::fromUTF8(directory));
+ WebCore::iconDatabase()->open(WTF::String::fromUTF8(directory));
} else {
WebCore::iconDatabase()->setEnabled(false);
WebCore::iconDatabase()->close();
@@ -144,7 +144,7 @@ char* ewk_settings_icon_database_path_get(void)
if (!WebCore::iconDatabase()->isOpen())
return 0;
- WebCore::String path = WebCore::iconDatabase()->databasePath();
+ WTF::String path = WebCore::iconDatabase()->databasePath();
if (path.isEmpty())
return 0;
return strdup(path.utf8().data());
@@ -184,7 +184,7 @@ cairo_surface_t* ewk_settings_icon_database_icon_surface_get(const char *url)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(url, 0);
- WebCore::KURL kurl(WebCore::KURL(), WebCore::String::fromUTF8(url));
+ WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(url));
WebCore::Image *icon = WebCore::iconDatabase()->iconForPageURL(kurl.string(), WebCore::IntSize(16, 16));
if (!icon) {
@@ -216,7 +216,7 @@ Evas_Object* ewk_settings_icon_database_icon_object_add(const char* url, Evas* c
EINA_SAFETY_ON_NULL_RETURN_VAL(url, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, 0);
- WebCore::KURL kurl(WebCore::KURL(), WebCore::String::fromUTF8(url));
+ WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(url));
WebCore::Image* icon = WebCore::iconDatabase()->iconForPageURL(kurl.string(), WebCore::IntSize(16, 16));
cairo_surface_t* surface;
diff --git a/WebKit/efl/ewk/ewk_view.cpp b/WebKit/efl/ewk/ewk_view.cpp
index ed6fb4d..c030c1c 100644
--- a/WebKit/efl/ewk/ewk_view.cpp
+++ b/WebKit/efl/ewk/ewk_view.cpp
@@ -511,7 +511,7 @@ static WTF::PassRefPtr<WebCore::Frame> _ewk_view_core_frame_new(Ewk_View_Smart_D
CRITICAL("Could not create frame loader client.");
return 0;
}
- flc->setCustomUserAgent(WebCore::String::fromUTF8(priv->settings.user_agent));
+ flc->setCustomUserAgent(WTF::String::fromUTF8(priv->settings.user_agent));
return WebCore::Frame::create(priv->page, owner, flc);
}
@@ -522,7 +522,7 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* sd)
{
Ewk_View_Private_Data* priv =
(Ewk_View_Private_Data*)calloc(1, sizeof(Ewk_View_Private_Data));
- WebCore::AtomicString s;
+ WTF::AtomicString s;
WebCore::KURL url;
if (!priv) {
@@ -1331,7 +1331,7 @@ Eina_Bool ewk_view_text_search(const Evas_Object* o, const char* string, Eina_Bo
else
direction = WebCore::FindDirectionBackward;
- return priv->page->findString(WebCore::String::fromUTF8(string), sensitive, direction, wrap);
+ return priv->page->findString(WTF::String::fromUTF8(string), sensitive, direction, wrap);
}
/**
@@ -1357,7 +1357,7 @@ unsigned int ewk_view_text_matches_mark(Evas_Object* o, const char* string, Eina
else
sensitive = WebCore::TextCaseInsensitive;
- return priv->page->markAllMatchesForText(WebCore::String::fromUTF8(string), sensitive, highlight, limit);
+ return priv->page->markAllMatchesForText(WTF::String::fromUTF8(string), sensitive, highlight, limit);
}
/**
@@ -1435,7 +1435,7 @@ char* ewk_view_selection_get(const Evas_Object* o)
static Eina_Bool _ewk_view_editor_command(Ewk_View_Private_Data* priv, const char* command)
{
- return priv->page->focusController()->focusedOrMainFrame()->editor()->command(WebCore::String::fromUTF8(command)).execute();
+ return priv->page->focusController()->focusedOrMainFrame()->editor()->command(WTF::String::fromUTF8(command)).execute();
}
/**
@@ -2190,7 +2190,7 @@ Eina_Bool ewk_view_setting_user_agent_set(Evas_Object* o, const char* user_agent
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.user_agent, user_agent)) {
WebCore::FrameLoaderClientEfl* client = static_cast<WebCore::FrameLoaderClientEfl*>(priv->main_frame->loader()->client());
- client->setCustomUserAgent(WebCore::String::fromUTF8(user_agent));
+ client->setCustomUserAgent(WTF::String::fromUTF8(user_agent));
}
return EINA_TRUE;
}
@@ -2207,7 +2207,7 @@ Eina_Bool ewk_view_setting_user_stylesheet_set(Evas_Object* o, const char* uri)
EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.user_stylesheet, uri)) {
- WebCore::KURL kurl(WebCore::KURL(), WebCore::String::fromUTF8(uri));
+ WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(uri));
priv->page_settings->setUserStyleSheetLocation(kurl);
}
return EINA_TRUE;
@@ -2380,7 +2380,7 @@ const char* ewk_view_setting_encoding_custom_get(const Evas_Object* o)
Evas_Object* main_frame = ewk_view_frame_main_get(o);
WebCore::Frame* core_frame = ewk_frame_core_get(main_frame);
- WebCore::String overrideEncoding = core_frame->loader()->documentLoader()->overrideEncoding();
+ WTF::String overrideEncoding = core_frame->loader()->documentLoader()->overrideEncoding();
if (overrideEncoding.isEmpty())
return 0;
@@ -2405,7 +2405,7 @@ Eina_Bool ewk_view_setting_encoding_custom_set(Evas_Object* o, const char *encod
WebCore::Frame* core_frame = ewk_frame_core_get(main_frame);
DBG("%s", encoding);
eina_stringshare_replace(&priv->settings.encoding_custom, encoding);
- core_frame->loader()->reloadWithOverrideEncoding(WebCore::String::fromUTF8(encoding));
+ core_frame->loader()->reloadWithOverrideEncoding(WTF::String::fromUTF8(encoding));
return EINA_TRUE;
}
@@ -2422,7 +2422,7 @@ Eina_Bool ewk_view_setting_encoding_default_set(Evas_Object* o, const char* enco
EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.encoding_default, encoding))
- priv->page_settings->setDefaultTextEncodingName(WebCore::String::fromUTF8(encoding));
+ priv->page_settings->setDefaultTextEncodingName(WTF::String::fromUTF8(encoding));
return EINA_TRUE;
}
@@ -2510,7 +2510,7 @@ Eina_Bool ewk_view_setting_font_standard_set(Evas_Object* o, const char* family)
EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.font_standard, family)) {
- WebCore::AtomicString s = WebCore::String::fromUTF8(family);
+ WTF::AtomicString s = WTF::String::fromUTF8(family);
priv->page_settings->setStandardFontFamily(s);
}
return EINA_TRUE;
@@ -2528,7 +2528,7 @@ Eina_Bool ewk_view_setting_font_cursive_set(Evas_Object* o, const char* family)
EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.font_cursive, family)) {
- WebCore::AtomicString s = WebCore::String::fromUTF8(family);
+ WTF::AtomicStringWTF::AtomicString s = WTF::String::fromUTF8(family);
priv->page_settings->setCursiveFontFamily(s);
}
return EINA_TRUE;
@@ -2546,7 +2546,7 @@ Eina_Bool ewk_view_setting_font_fantasy_set(Evas_Object* o, const char* family)
EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.font_fantasy, family)) {
- WebCore::AtomicString s = WebCore::String::fromUTF8(family);
+ WTF::AtomicString s = WTF::String::fromUTF8(family);
priv->page_settings->setFantasyFontFamily(s);
}
return EINA_TRUE;
@@ -2564,7 +2564,7 @@ Eina_Bool ewk_view_setting_font_monospace_set(Evas_Object* o, const char* family
EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.font_monospace, family)) {
- WebCore::AtomicString s = WebCore::String::fromUTF8(family);
+ WTF::AtomicString s = WTF::String::fromUTF8(family);
priv->page_settings->setFixedFontFamily(s);
}
return EINA_TRUE;
@@ -2582,7 +2582,7 @@ Eina_Bool ewk_view_setting_font_serif_set(Evas_Object* o, const char* family)
EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.font_serif, family)) {
- WebCore::AtomicString s = WebCore::String::fromUTF8(family);
+ WTF::AtomicString s = WTF::String::fromUTF8(family);
priv->page_settings->setSerifFontFamily(s);
}
return EINA_TRUE;
@@ -2600,7 +2600,7 @@ Eina_Bool ewk_view_setting_font_sans_serif_set(Evas_Object* o, const char* famil
EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
if (eina_stringshare_replace(&priv->settings.font_sans_serif, family)) {
- WebCore::AtomicString s = WebCore::String::fromUTF8(family);
+ WTF::AtomicString s = WTF::String::fromUTF8(family);
priv->page_settings->setSansSerifFontFamily(s);
}
return EINA_TRUE;
@@ -3671,7 +3671,7 @@ WebCore::Page* ewk_view_core_page_get(const Evas_Object* o)
*
* Emits "frame,created" with the new frame object on success.
*/
-WTF::PassRefPtr<WebCore::Frame> ewk_view_frame_create(Evas_Object* o, Evas_Object* frame, const WebCore::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, const WebCore::KURL& url, const WebCore::String& referrer)
+WTF::PassRefPtr<WebCore::Frame> ewk_view_frame_create(Evas_Object* o, Evas_Object* frame, const WTF::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, const WebCore::KURL& url, const WTF::String& referrer)
{
DBG("o=%p, frame=%p, name=%s, ownerElement=%p, url=%s, referrer=%s",
o, frame, name.utf8().data(), ownerElement,
@@ -3703,7 +3703,7 @@ WTF::PassRefPtr<WebCore::Frame> ewk_view_frame_create(Evas_Object* o, Evas_Objec
return cf.release();
}
-WTF::PassRefPtr<WebCore::Widget> ewk_view_plugin_create(Evas_Object* o, Evas_Object* frame, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues, const WebCore::String& mimeType, bool loadManually)
+WTF::PassRefPtr<WebCore::Widget> ewk_view_plugin_create(Evas_Object* o, Evas_Object* frame, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::String& mimeType, bool loadManually)
{
DBG("o=%p, frame=%p, size=%dx%d, element=%p, url=%s, mimeType=%s",
o, frame, pluginSize.width(), pluginSize.height(), element,
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 3d3436f..dbba4a9 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,123 @@
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebCoreSupport/InspectorClientGtk.h:
+
+2010-08-09 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [gtk] gtk_im_context_focus_in() should only be called when an input-able element has focus
+ https://bugs.webkit.org/show_bug.cgi?id=43602
+
+ Only call gtk_im_context_focus_in() when we focus a frame which is currently in
+ an editable node.
+
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_focus_in_event): Conditionalize call to gtk_im_context_focus_in().
+
+2010-08-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Xan Lopez.
+
+ Use the new paths, and also fix the path for localizedStrings.
+
+ * WebCoreSupport/InspectorClientGtk.cpp:
+ (WebKit::InspectorClient::openInspectorFrontend):
+ (WebKit::InspectorFrontendClient::localizedStringsURL):
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * WebCoreSupport/InspectorClientGtk.h:
+
+2010-08-05 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ [GTK] Use correct path for Inspector data files in GTK+3.x builds
+ https://bugs.webkit.org/show_bug.cgi?id=43445
+
+ Use the right data path for inspector files when building with
+ GTK+ 3.x.
+
+ * WebCoreSupport/InspectorClientGtk.cpp:
+ (WebKit::InspectorClient::openInspectorFrontend):
+
+2010-08-03 Daniel Bates <dbates@rim.com>
+
+ Fix misspelled word 'teh' in the description of the XSS Auditor setting.
+
+ * webkit/webkitwebsettings.cpp:
+ (webkit_web_settings_class_init):
+
+2010-08-03 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ [GTK] Fix DOM event dispatch
+ https://bugs.webkit.org/show_bug.cgi?id=40847
+
+ Test DOM event dispatch.
+
+ * tests/testdomdomwindow.c:
+ (load_event_callback):
+ (test_dom_domview_signals):
+ (clicked_cb):
+ (load_status_callback):
+ (test_dom_domview_dispatch_event):
+ (main):
+
+2010-08-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Does not paint the node highlight used by the inspector
+ https://bugs.webkit.org/show_bug.cgi?id=43429
+
+ Implement highlighting the nodes when using the inspector.
+
+ * WebCoreSupport/InspectorClientGtk.cpp:
+ (WebKit::InspectorClient::highlight):
+ (WebKit::InspectorClient::hideHighlight):
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_expose_event):
+
+2010-08-03 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ Update unit tests now that string parameters are 'const char*'.
+
+ * tests/testdomdocument.c:
+ (test_dom_document_title):
+ (test_dom_document_get_elements_by_tag_name):
+ (test_dom_document_get_elements_by_class_name):
+ (test_dom_document_get_element_by_id):
+ * tests/testdomnode.c:
+ (test_dom_node_insertion):
+
+2010-08-02 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] DRT implement execCommand()
+ https://bugs.webkit.org/show_bug.cgi?id=35351
+
+ * webkit/webkitprivate.h: Add some private methods for the DRT which enable
+ LayoutTestController.execCommand and LayoutTestController.isCommandEnabled:
+ webkit_web_view_execute_core_command_by_name and webkit_web_view_is_command_enabled.
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_execute_core_command_by_name): added.
+ (webkit_web_view_is_command_enabled): Added.
+
2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Darin Fisher.
@@ -120,7 +240,6 @@
* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::reachedApplicationCacheOriginQuota):
* WebCoreSupport/ChromeClientGtk.h:
-
2010-07-26 Steve Block <steveblock@google.com>
Reviewed by Jeremy Orlow.
diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
index 081c942..a06d637 100644
--- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
@@ -277,12 +277,12 @@ bool ChromeClient::canRunBeforeUnloadConfirmPanel()
return true;
}
-bool ChromeClient::runBeforeUnloadConfirmPanel(const WebCore::String& message, WebCore::Frame* frame)
+bool ChromeClient::runBeforeUnloadConfirmPanel(const WTF::String& message, WebCore::Frame* frame)
{
return runJavaScriptConfirm(frame, message);
}
-void ChromeClient::addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type, WebCore::MessageLevel level, const WebCore::String& message, unsigned int lineNumber, const WebCore::String& sourceId)
+void ChromeClient::addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type, WebCore::MessageLevel level, const WTF::String& message, unsigned int lineNumber, const WTF::String& sourceId)
{
gboolean retval;
g_signal_emit_by_name(m_webView, "console-message", message.utf8().data(), lineNumber, sourceId.utf8().data(), &retval);
@@ -596,7 +596,7 @@ void ChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChooser)
gtk_widget_destroy(dialog);
}
-void ChromeClient::chooseIconForFiles(const Vector<WebCore::String>& filenames, WebCore::FileChooser* chooser)
+void ChromeClient::chooseIconForFiles(const Vector<WTF::String>& filenames, WebCore::FileChooser* chooser)
{
chooser->iconLoaded(Icon::createIconForFiles(filenames));
}
diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
index 8c667c4..e3be1c2 100644
--- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
@@ -77,18 +77,18 @@ namespace WebKit {
virtual void setResizable(bool);
virtual void addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type,
- WebCore::MessageLevel level, const WebCore::String& message,
- unsigned int lineNumber, const WebCore::String& sourceID);
+ WebCore::MessageLevel level, const WTF::String& message,
+ unsigned int lineNumber, const WTF::String& sourceID);
virtual bool canRunBeforeUnloadConfirmPanel();
- virtual bool runBeforeUnloadConfirmPanel(const WebCore::String& message, WebCore::Frame* frame);
+ virtual bool runBeforeUnloadConfirmPanel(const WTF::String& message, WebCore::Frame* frame);
virtual void closeWindowSoon();
- virtual void runJavaScriptAlert(WebCore::Frame*, const WebCore::String&);
- virtual bool runJavaScriptConfirm(WebCore::Frame*, const WebCore::String&);
- virtual bool runJavaScriptPrompt(WebCore::Frame*, const WebCore::String& message, const WebCore::String& defaultValue, WebCore::String& result);
- virtual void setStatusbarText(const WebCore::String&);
+ virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&);
+ virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&);
+ virtual bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String& message, const WTF::String& defaultValue, WTF::String& result);
+ virtual void setStatusbarText(const WTF::String&);
virtual bool shouldInterruptJavaScript();
virtual bool tabsToLinks() const;
@@ -107,18 +107,18 @@ namespace WebKit {
virtual void scrollbarsModeDidChange() const;
virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags);
- virtual void setToolTip(const WebCore::String&, WebCore::TextDirection);
+ virtual void setToolTip(const WTF::String&, WebCore::TextDirection);
virtual void print(WebCore::Frame*);
#if ENABLE(DATABASE)
- virtual void exceededDatabaseQuota(WebCore::Frame*, const WebCore::String&);
+ virtual void exceededDatabaseQuota(WebCore::Frame*, const WTF::String&);
#endif
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
virtual void reachedMaxAppCacheSize(int64_t spaceNeeded);
virtual void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*);
#endif
virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
- virtual void chooseIconForFiles(const Vector<WebCore::String>&, WebCore::FileChooser*);
+ virtual void chooseIconForFiles(const Vector<WTF::String>&, WebCore::FileChooser*);
virtual void formStateDidChange(const WebCore::Node*) { }
diff --git a/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h b/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h
index d320c0e..07a022c 100644
--- a/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h
@@ -50,7 +50,7 @@ namespace WebKit {
virtual void copyImageToClipboard(const WebCore::HitTestResult&);
virtual void searchWithGoogle(const WebCore::Frame*);
virtual void lookUpInDictionary(WebCore::Frame*);
- virtual void speak(const WebCore::String&);
+ virtual void speak(const WTF::String&);
virtual void stopSpeaking();
virtual bool isSpeaking();
diff --git a/WebKit/gtk/WebCoreSupport/DragClientGtk.h b/WebKit/gtk/WebCoreSupport/DragClientGtk.h
index 6604940..514852e 100644
--- a/WebKit/gtk/WebCoreSupport/DragClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/DragClientGtk.h
@@ -47,7 +47,7 @@ namespace WebKit {
virtual WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint& windowPoint);
virtual void startDrag(WebCore::DragImageRef dragImage, const WebCore::IntPoint& dragImageOrigin, const WebCore::IntPoint& eventPos, WebCore::Clipboard*, WebCore::Frame*, bool linkDrag = false);
- virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL&, const WebCore::String& label, WebCore::Frame*);
+ virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL&, const WTF::String& label, WebCore::Frame*);
virtual void dragControllerDestroyed();
diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h
index 93f56ce..2688629 100644
--- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h
@@ -86,7 +86,7 @@ namespace WebKit {
virtual bool shouldBeginEditing(WebCore::Range*);
virtual bool shouldEndEditing(WebCore::Range*);
virtual bool shouldInsertNode(WebCore::Node*, WebCore::Range*, WebCore::EditorInsertAction);
- virtual bool shouldInsertText(const WebCore::String&, WebCore::Range*, WebCore::EditorInsertAction);
+ virtual bool shouldInsertText(const WTF::String&, WebCore::Range*, WebCore::EditorInsertAction);
virtual bool shouldChangeSelectedRange(WebCore::Range* fromRange, WebCore::Range* toRange, WebCore::EAffinity, bool stillSelecting);
virtual bool shouldApplyStyle(WebCore::CSSStyleDeclaration*, WebCore::Range*);
@@ -120,16 +120,16 @@ namespace WebKit {
virtual void textWillBeDeletedInTextField(WebCore::Element*);
virtual void textDidChangeInTextArea(WebCore::Element*);
- virtual void ignoreWordInSpellDocument(const WebCore::String&);
- virtual void learnWord(const WebCore::String&);
+ virtual void ignoreWordInSpellDocument(const WTF::String&);
+ virtual void learnWord(const WTF::String&);
virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength);
- virtual WebCore::String getAutoCorrectSuggestionForMisspelledWord(const WebCore::String&);
+ virtual WTF::String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&);
virtual void checkGrammarOfString(const UChar*, int length, WTF::Vector<WebCore::GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength);
- virtual void updateSpellingUIWithGrammarString(const WebCore::String&, const WebCore::GrammarDetail&);
- virtual void updateSpellingUIWithMisspelledWord(const WebCore::String&);
+ virtual void updateSpellingUIWithGrammarString(const WTF::String&, const WebCore::GrammarDetail&);
+ virtual void updateSpellingUIWithMisspelledWord(const WTF::String&);
virtual void showSpellingUI(bool show);
virtual bool spellingUIIsShowing();
- virtual void getGuessesForWord(const WebCore::String&, WTF::Vector<WebCore::String>& guesses);
+ virtual void getGuessesForWord(const WTF::String&, WTF::Vector<WTF::String>& guesses);
virtual void willSetInputMethodState();
virtual void setInputMethodState(bool enabled);
diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h
index 2eeeb35..33e9ee5 100644
--- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h
@@ -81,7 +81,7 @@ namespace WebKit {
virtual void dispatchWillClose();
virtual void dispatchDidReceiveIcon();
virtual void dispatchDidStartProvisionalLoad();
- virtual void dispatchDidReceiveTitle(const WebCore::String&);
+ virtual void dispatchDidReceiveTitle(const WTF::String&);
virtual void dispatchDidChangeIcons();
virtual void dispatchDidCommitLoad();
virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&);
@@ -94,8 +94,8 @@ namespace WebKit {
virtual WebCore::Frame* dispatchCreatePage();
virtual void dispatchShow();
- virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction, const WebCore::String& MIMEType, const WebCore::ResourceRequest&);
- virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>, const WebCore::String& frameName);
+ virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction, const WTF::String& MIMEType, const WebCore::ResourceRequest&);
+ virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>, const WTF::String& frameName);
virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>);
virtual void cancelPolicyCheck();
@@ -112,20 +112,20 @@ namespace WebKit {
virtual void postProgressEstimateChangedNotification();
virtual void postProgressFinishedNotification();
- virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WebCore::String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
- const WebCore::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
+ virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WTF::String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
+ const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
virtual void didTransferChildFrameToNewDocument();
- virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const WTF::Vector<WebCore::String>&, const WTF::Vector<WebCore::String>&, const WebCore::String&, bool);
+ virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const WTF::Vector<WTF::String>&, const WTF::Vector<WTF::String>&, const WTF::String&, bool);
virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
- virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues);
- virtual WebCore::String overrideMediaType() const;
+ virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues);
+ virtual WTF::String overrideMediaType() const;
virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
virtual void documentElementAvailable();
virtual void didPerformFirstNavigation() const;
virtual void registerForIconNotification(bool);
- virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WebCore::String& mimeType);
+ virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType);
virtual void setMainFrameDocumentReady(bool);
@@ -159,9 +159,9 @@ namespace WebKit {
virtual bool shouldFallBack(const WebCore::ResourceError&);
virtual bool canHandleRequest(const WebCore::ResourceRequest&) const;
- virtual bool canShowMIMEType(const WebCore::String&) const;
- virtual bool representationExistsForURLScheme(const WebCore::String&) const;
- virtual WebCore::String generatedMIMETypeForURLScheme(const WebCore::String&) const;
+ virtual bool canShowMIMEType(const WTF::String&) const;
+ virtual bool representationExistsForURLScheme(const WTF::String&) const;
+ virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String&) const;
virtual void frameLoadCompleted();
virtual void saveViewStateToItem(WebCore::HistoryItem*);
@@ -171,9 +171,9 @@ namespace WebKit {
virtual void prepareForDataSourceReplacement();
virtual WTF::PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
- virtual void setTitle(const WebCore::String& title, const WebCore::KURL&);
+ virtual void setTitle(const WTF::String& title, const WebCore::KURL&);
- virtual WebCore::String userAgent(const WebCore::KURL&);
+ virtual WTF::String userAgent(const WebCore::KURL&);
virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
index 616834b..1256000 100644
--- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
@@ -23,6 +23,7 @@
#include "webkitwebview.h"
#include "webkitwebinspector.h"
#include "webkitprivate.h"
+#include "webkitversion.h"
#include "InspectorController.h"
#include "NotImplemented.h"
#include "PlatformString.h"
@@ -84,8 +85,10 @@ void InspectorClient::openInspectorFrontend(InspectorController* controller)
GOwnPtr<gchar> currentDirectory(g_get_current_dir());
GOwnPtr<gchar> fullPath(g_strdup_printf("%s/WebCore/inspector/front-end/inspector.html", currentDirectory.get()));
inspectorURI.set(g_filename_to_uri(fullPath.get(), NULL, NULL));
- } else
- inspectorURI.set(g_filename_to_uri(DATA_DIR"/webkit-1.0/webinspector/inspector.html", NULL, NULL));
+ } else {
+ GOwnPtr<gchar> dataPath(g_strdup_printf(DATA_DIR"/webkitgtk-%.1f/webinspector/inspector.html", WEBKITGTK_API_VERSION));
+ inspectorURI.set(g_filename_to_uri(dataPath.get(), NULL, NULL));
+ }
webkit_web_view_load_uri(inspectorWebView, inspectorURI.get());
@@ -101,14 +104,18 @@ void InspectorClient::releaseFrontendPage()
m_frontendPage = 0;
}
-void InspectorClient::highlight(Node* node)
+void InspectorClient::highlight(Node*)
{
- notImplemented();
+ hideHighlight();
}
void InspectorClient::hideHighlight()
{
- notImplemented();
+ // FIXME: we should be able to only invalidate the actual rects of
+ // the new and old nodes. We need to track the nodes, and take the
+ // actual highlight size into account when calculating the damage
+ // rect.
+ gtk_widget_queue_draw(GTK_WIDGET(m_inspectedWebView));
}
void InspectorClient::populateSetting(const String& key, String* value)
@@ -198,8 +205,10 @@ String InspectorFrontendClient::localizedStringsURL()
GOwnPtr<gchar> currentDirectory(g_get_current_dir());
GOwnPtr<gchar> fullPath(g_strdup_printf("%s/WebCore/English.lproj/localizedStrings.js", currentDirectory.get()));
URL.set(g_filename_to_uri(fullPath.get(), NULL, NULL));
- } else
- URL.set(g_filename_to_uri(DATA_DIR"/webkit-1.0/webinspector/localizedStrings.js", NULL, NULL));
+ } else {
+ GOwnPtr<gchar> localizedStringsPath(g_strdup_printf(DATA_DIR"/webkitgtk-%.1f/webinspector/localizedStrings.js", WEBKITGTK_API_VERSION));
+ URL.set(g_filename_to_uri(localizedStringsPath.get(), NULL, NULL));
+ }
// FIXME: support l10n of localizedStrings.js
return String::fromUTF8(URL.get());
diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
index fc9b6d8..b72bc82 100644
--- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
@@ -33,11 +33,11 @@
#include "InspectorFrontendClientLocal.h"
#include "webkitwebview.h"
#include "webkitwebinspector.h"
+#include <wtf/Forward.h>
namespace WebCore {
class Node;
class Page;
- class String;
}
namespace WebKit {
@@ -58,10 +58,10 @@ namespace WebKit {
virtual void highlight(WebCore::Node*);
virtual void hideHighlight();
- virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
- virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
+ virtual void populateSetting(const WTF::String& key, WTF::String* value);
+ virtual void storeSetting(const WTF::String& key, const WTF::String& value);
- virtual bool sendMessageToFrontend(const WebCore::String&);
+ virtual bool sendMessageToFrontend(const WTF::String&);
void releaseFrontendPage();
@@ -79,9 +79,9 @@ namespace WebKit {
void destroyInspectorWindow();
- virtual WebCore::String localizedStringsURL();
+ virtual WTF::String localizedStringsURL();
- virtual WebCore::String hiddenPanels();
+ virtual WTF::String hiddenPanels();
virtual void bringToFront();
virtual void closeWindow();
@@ -91,7 +91,7 @@ namespace WebKit {
virtual void setAttachedWindowHeight(unsigned height);
- virtual void inspectedURLChanged(const WebCore::String& newURL);
+ virtual void inspectedURLChanged(const WTF::String& newURL);
private:
virtual ~InspectorFrontendClient();
diff --git a/WebKit/gtk/gdom/ConvertToGCharPrivate.h b/WebKit/gtk/gdom/ConvertToGCharPrivate.h
index dd8c65e..ef42b08 100644
--- a/WebKit/gtk/gdom/ConvertToGCharPrivate.h
+++ b/WebKit/gtk/gdom/ConvertToGCharPrivate.h
@@ -25,7 +25,7 @@
#include "PlatformString.h"
#include <wtf/text/CString.h>
-inline gchar* copyAsGchar(WebCore::String const& s)
+inline gchar* copyAsGchar(WTF::String const& s)
{
return g_strdup(s.utf8().data());
}
@@ -40,7 +40,7 @@ inline gchar* copyAsGchar(const JSC::UString& s)
return g_strdup(s.UTF8String().c_str());
}
-inline gchar* copyAsGchar(WebCore::AtomicString const& s)
+inline gchar* copyAsGchar(WTF::AtomicString const& s)
{
return g_strdup(s.string().utf8().data());
}
diff --git a/WebKit/gtk/po/ChangeLog b/WebKit/gtk/po/ChangeLog
index aac3c0c..f088275 100644
--- a/WebKit/gtk/po/ChangeLog
+++ b/WebKit/gtk/po/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-03 Jorge González <aloriel@gmail.com>
+
+ Reviewed by Gustavo Noronha.
+
+ Spanish translation update.
+
+ * es.po: Updated.
+
2010-07-13 Alejandro G. Castro <alex@igalia.com>
Reviewed by Gustavo Noronha.
diff --git a/WebKit/gtk/po/es.po b/WebKit/gtk/po/es.po
index b06ba1b..433c9de 100644
--- a/WebKit/gtk/po/es.po
+++ b/WebKit/gtk/po/es.po
@@ -1,21 +1,20 @@
-# translation of webkit.webkit.HEAD.es.po.po to Español
+# translation of webkit.po to Español
# This file is put in the public domain.
+# Jorge González <jorgegonz@svn.gnome.org>, 2010.
#
-# Jacinto Capote Robles <fastangel@gmail.com>, 2009.
-# Jorge González <jorgegonz@svn.gnome.org>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: webkit.webkit.HEAD.es.po\n"
+"Project-Id-Version: webkit\n"
"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n"
"POT-Creation-Date: 2010-02-25 15:53-0300\n"
-"PO-Revision-Date: 2009-06-11 15:36+0200\n"
+"PO-Revision-Date: 2010-05-01 11:18+0200\n"
"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:535
msgid "Upload File"
@@ -73,35 +72,35 @@ msgstr "_Insertar un carácter de control Unicode"
#: WebKit/gtk/webkit/webkitdownload.cpp:266
msgid "Network Request"
-msgstr ""
+msgstr "Solicitud de red"
#: WebKit/gtk/webkit/webkitdownload.cpp:267
msgid "The network request for the URI that should be downloaded"
-msgstr ""
+msgstr "La solicitud de red para el URI que se debe descargar"
#: WebKit/gtk/webkit/webkitdownload.cpp:281
msgid "Network Response"
-msgstr ""
+msgstr "Respuesta de red"
#: WebKit/gtk/webkit/webkitdownload.cpp:282
msgid "The network response for the URI that should be downloaded"
-msgstr ""
+msgstr "La respuesta de red para el URI que se debería descargar"
#: WebKit/gtk/webkit/webkitdownload.cpp:296
msgid "Destination URI"
-msgstr ""
+msgstr "URI de destino"
#: WebKit/gtk/webkit/webkitdownload.cpp:297
msgid "The destination URI where to save the file"
-msgstr ""
+msgstr "El URI de destino donde guardar el archivo"
#: WebKit/gtk/webkit/webkitdownload.cpp:311
msgid "Suggested Filename"
-msgstr ""
+msgstr "Nombre de archivo sugerido"
#: WebKit/gtk/webkit/webkitdownload.cpp:312
msgid "The filename suggested as default when saving"
-msgstr ""
+msgstr "El nombre de archivo sugerido como predeterminado al guardar"
#: WebKit/gtk/webkit/webkitdownload.cpp:329
msgid "Progress"
@@ -109,7 +108,7 @@ msgstr "Progreso"
#: WebKit/gtk/webkit/webkitdownload.cpp:330
msgid "Determines the current progress of the download"
-msgstr ""
+msgstr "Determina el progreso actual de la descarga"
#: WebKit/gtk/webkit/webkitdownload.cpp:343
msgid "Status"
@@ -125,7 +124,7 @@ msgstr "Tamaño actual"
#: WebKit/gtk/webkit/webkitdownload.cpp:360
msgid "The length of the data already downloaded"
-msgstr ""
+msgstr "El tamaño de los datos ya descargados"
#: WebKit/gtk/webkit/webkitdownload.cpp:374
msgid "Total Size"
@@ -133,20 +132,20 @@ msgstr "Tamaño total"
#: WebKit/gtk/webkit/webkitdownload.cpp:375
msgid "The total size of the file"
-msgstr ""
+msgstr "El tamaño total del archivo"
#: WebKit/gtk/webkit/webkitdownload.cpp:526
msgid "User cancelled the download"
-msgstr ""
+msgstr "El usuario canceló la descarga"
#: WebKit/gtk/webkit/webkitsoupauthdialog.c:248
#, c-format
msgid "A username and password are being requested by the site %s"
-msgstr ""
+msgstr "El sitio %s está solicitando un usuario y una contraseña"
#: WebKit/gtk/webkit/webkitsoupauthdialog.c:278
msgid "Server message:"
-msgstr ""
+msgstr "Mensaje del servidor:"
#: WebKit/gtk/webkit/webkitsoupauthdialog.c:291
msgid "Username:"
@@ -157,9 +156,8 @@ msgid "Password:"
msgstr "Contraseña:"
#: WebKit/gtk/webkit/webkitsoupauthdialog.c:302
-#, fuzzy
msgid "_Remember password"
-msgstr "Recordar contraseña"
+msgstr "_Recordar contraseña"
#: WebKit/gtk/webkit/webkitwebframe.cpp:298
msgid "Name"
@@ -167,7 +165,7 @@ msgstr "Nombre"
#: WebKit/gtk/webkit/webkitwebframe.cpp:299
msgid "The name of the frame"
-msgstr ""
+msgstr "El nombre del marco"
#: WebKit/gtk/webkit/webkitwebframe.cpp:305
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:146
@@ -177,7 +175,7 @@ msgstr "Título"
#: WebKit/gtk/webkit/webkitwebframe.cpp:306
msgid "The document title of the frame"
-msgstr ""
+msgstr "El nombre de documento del marco"
#: WebKit/gtk/webkit/webkitwebframe.cpp:312
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:178
@@ -187,29 +185,32 @@ msgstr "URI"
#: WebKit/gtk/webkit/webkitwebframe.cpp:313
msgid "The current URI of the contents displayed by the frame"
-msgstr ""
+msgstr "El URI actual del contenido mostrado en el marco"
#: WebKit/gtk/webkit/webkitwebframe.cpp:344
msgid "Horizontal Scrollbar Policy"
-msgstr ""
+msgstr "Directiva de la barra de desplazamiento horizontal"
#: WebKit/gtk/webkit/webkitwebframe.cpp:345
msgid ""
"Determines the current policy for the horizontal scrollbar of the frame."
msgstr ""
+"Determina la política actual para la barra de desplazamiento horizontal del "
+"marco."
#: WebKit/gtk/webkit/webkitwebframe.cpp:362
msgid "Vertical Scrollbar Policy"
-msgstr ""
+msgstr "Directiva de la barra de desplazamiento vertical"
#: WebKit/gtk/webkit/webkitwebframe.cpp:363
-#, fuzzy
msgid "Determines the current policy for the vertical scrollbar of the frame."
-msgstr "Determina el estado actual de la descarga"
+msgstr ""
+"Determina la política actual para la barra de desplazamiento vertical del "
+"marco."
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:147
msgid "The title of the history item"
-msgstr ""
+msgstr "El título del elemento del histórico"
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:162
msgid "Alternate Title"
@@ -217,28 +218,28 @@ msgstr "Título alternativo"
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:163
msgid "The alternate title of the history item"
-msgstr ""
+msgstr "El título alternativo del elemento del histórico"
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:179
msgid "The URI of the history item"
-msgstr ""
+msgstr "El URI del elemento del histórico"
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:194
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:173
msgid "Original URI"
-msgstr ""
+msgstr "URI original"
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:195
msgid "The original URI of the history item"
-msgstr ""
+msgstr "El URI original del elemento del histórico"
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:210
msgid "Last visited Time"
-msgstr ""
+msgstr "Hora de la última visita"
#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:211
msgid "The time at which the history item was last visited"
-msgstr ""
+msgstr "La hora en la que se vió el elemento del histórico por última vez"
#: WebKit/gtk/webkit/webkitwebinspector.cpp:268
msgid "Web View"
@@ -246,23 +247,23 @@ msgstr "Vista web"
#: WebKit/gtk/webkit/webkitwebinspector.cpp:269
msgid "The Web View that renders the Web Inspector itself"
-msgstr ""
+msgstr "La vista de web que renderiza el inspector web en sí"
#: WebKit/gtk/webkit/webkitwebinspector.cpp:282
msgid "Inspected URI"
-msgstr ""
+msgstr "URI inspeccionada"
#: WebKit/gtk/webkit/webkitwebinspector.cpp:283
msgid "The URI that is currently being inspected"
-msgstr ""
+msgstr "El URI que actualmente está siendo inspeccionado"
#: WebKit/gtk/webkit/webkitwebinspector.cpp:299
msgid "Enable JavaScript profiling"
-msgstr ""
+msgstr "Activar perfilado de JavaScript"
#: WebKit/gtk/webkit/webkitwebinspector.cpp:300
msgid "Profile the executed JavaScript."
-msgstr ""
+msgstr "Perfilar el JavaScript ejecutado."
#: WebKit/gtk/webkit/webkitwebinspector.cpp:315
msgid "Enable Timeline profiling"
@@ -278,11 +279,11 @@ msgstr "Razón"
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:159
msgid "The reason why this navigation is occurring"
-msgstr ""
+msgstr "La razón por la cuál está ocurriendo esta navegación"
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:174
msgid "The URI that was requested as the target for the navigation"
-msgstr ""
+msgstr "El URI solicitado como el objetivo para la navegación"
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:188
msgid "Button"
@@ -290,23 +291,24 @@ msgstr "Botón"
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:189
msgid "The button used to click"
-msgstr ""
+msgstr "El botón usado para pulsar"
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:204
msgid "Modifier state"
-msgstr ""
+msgstr "Estado del modificador"
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:205
msgid "A bitmask representing the state of the modifier keys"
msgstr ""
+"Una máscara de bits que representa el estado de las teclas modificadoras"
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:220
msgid "Target frame"
-msgstr ""
+msgstr "Marco de destino"
#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:221
msgid "The target frame for the navigation"
-msgstr ""
+msgstr "El marco de destino para la navegación"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:237
msgid "Default Encoding"
@@ -314,55 +316,59 @@ msgstr "Codificación predeterminada"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:238
msgid "The default encoding used to display text."
-msgstr ""
+msgstr "La codificación predeterminada usada para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:246
msgid "Cursive Font Family"
-msgstr ""
+msgstr "Tipografía cursiva"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:247
msgid "The default Cursive font family used to display text."
msgstr ""
+"La familia tipográfica cursiva predeterminada usada para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:255
msgid "Default Font Family"
-msgstr ""
+msgstr "Tipografía predeterminada"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:256
msgid "The default font family used to display text."
-msgstr ""
+msgstr "La familia tipográfica predeterminada usada para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:264
msgid "Fantasy Font Family"
-msgstr ""
+msgstr "Familia de tipografía fantasía"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:265
msgid "The default Fantasy font family used to display text."
msgstr ""
+"La familia tipográfica fantasía predeterminada usada para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:273
msgid "Monospace Font Family"
-msgstr ""
+msgstr "Tipografía Monospace"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:274
msgid "The default font family used to display monospace text."
msgstr ""
+"La familia tipográfica predeterminada usada para mostrar texto monoespaciado."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:282
msgid "Sans Serif Font Family"
-msgstr ""
+msgstr "Tipografía Sans Serif"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:283
msgid "The default Sans Serif font family used to display text."
msgstr ""
+"La familia tipográfica Sans Serif predeterminada usada para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:291
msgid "Serif Font Family"
-msgstr ""
+msgstr "Tipografía Serif"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:292
msgid "The default Serif font family used to display text."
-msgstr ""
+msgstr "La familia tipográfica Serif predeterminada usada para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:300
msgid "Default Font Size"
@@ -370,15 +376,17 @@ msgstr "Tamaño de predeterminado de tipografía"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:301
msgid "The default font size used to display text."
-msgstr ""
+msgstr "El tamaño de tipografía predeterminado usado para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:309
msgid "Default Monospace Font Size"
-msgstr ""
+msgstr "Tipografía predeterminada Monospace"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:310
msgid "The default font size used to display monospace text."
msgstr ""
+"El tamaño de tipografía predeterminado usado para mostrar texto "
+"monoespaciado."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:318
msgid "Minimum Font Size"
@@ -386,55 +394,55 @@ msgstr "Tamaño mínimo de tipografía"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:319
msgid "The minimum font size used to display text."
-msgstr ""
+msgstr "El mínimo tamaño de tipografía usado para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:327
msgid "Minimum Logical Font Size"
-msgstr ""
+msgstr "Tamaño mínimo lógico de tipografía"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:328
msgid "The minimum logical font size used to display text."
-msgstr ""
+msgstr "El tamaño mínimo lógico de tipografía usado para mostrar texto."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:347
msgid "Enforce 96 DPI"
-msgstr ""
+msgstr "Forzar 96 DPI"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:348
msgid "Enforce a resolution of 96 DPI"
-msgstr ""
+msgstr "Forzar una resolución de 96 DPI"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:356
msgid "Auto Load Images"
-msgstr ""
+msgstr "Cargar imágenes automáticamente"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:357
msgid "Load images automatically."
-msgstr ""
+msgstr "Cargar imágenes automáticamente."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:365
msgid "Auto Shrink Images"
-msgstr ""
+msgstr "Autoencoger imágenes"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:366
msgid "Automatically shrink standalone images to fit."
-msgstr ""
+msgstr "Encoger imágenes independientes para ajustarlas."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:374
msgid "Print Backgrounds"
-msgstr ""
+msgstr "Imprimir fondos"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:375
msgid "Whether background images should be printed."
-msgstr ""
+msgstr "Indica si se deben imprimir las imágenes de fondo."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:383
msgid "Enable Scripts"
-msgstr ""
+msgstr "Activar scripts"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:384
msgid "Enable embedded scripting languages."
-msgstr ""
+msgstr "Activar lenguajes de scrpting empotrados"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:392
msgid "Enable Plugins"
@@ -442,15 +450,15 @@ msgstr "Activar complementos"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:393
msgid "Enable embedded plugin objects."
-msgstr ""
+msgstr "Activar objetos de complemento empotrados."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:401
msgid "Resizable Text Areas"
-msgstr ""
+msgstr "Áreas de texto redimensionables"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:402
msgid "Whether text areas are resizable."
-msgstr ""
+msgstr "Indica si las áreas de texto son redimensionables."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:409
msgid "User Stylesheet URI"
@@ -458,47 +466,49 @@ msgstr "URI de la hoja de estilo del usuario"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:410
msgid "The URI of a stylesheet that is applied to every page."
-msgstr ""
+msgstr "El URI de una hoja de estilo que se aplica a cada página."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:425
msgid "Zoom Stepping Value"
-msgstr ""
+msgstr "Valor del paso de la ampliación"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:426
msgid "The value by which the zoom level is changed when zooming in or out."
msgstr ""
+"El valor por el cuál el nivel de ampliación se cambia al ampliar o reducir."
#: WebKit/gtk/webkit/webkitwebsettings.cpp:444
msgid "Enable Developer Extras"
-msgstr ""
+msgstr "Activar extras para desarrolladores"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:445
msgid "Enables special extensions that help developers"
-msgstr ""
+msgstr "Activa extensiones especiales para ayudar a los desarrolladores"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:465
msgid "Enable Private Browsing"
-msgstr ""
+msgstr "Activar navegación privada"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:466
msgid "Enables private browsing mode"
-msgstr ""
+msgstr "Activa el modo de navegación privado"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:481
msgid "Enable Spell Checking"
-msgstr ""
+msgstr "Activar revisión ortográfica"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:482
msgid "Enables spell checking while typing"
-msgstr ""
+msgstr "Activa la revisión ortográfica al escribir"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:505
msgid "Languages to use for spell checking"
-msgstr ""
+msgstr "Idiomas que usar para la revisión ortográfica"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:506
msgid "Comma separated list of languages to use for spell checking"
msgstr ""
+"Lista separada por comas de los idiomas que usar para la revisión ortográfica"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:520
msgid "Enable Caret Browsing"
@@ -510,11 +520,11 @@ msgstr ""
#: WebKit/gtk/webkit/webkitwebsettings.cpp:536
msgid "Enable HTML5 Database"
-msgstr ""
+msgstr "Activar la base de datos de HTML5"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:537
msgid "Whether to enable HTML5 database support"
-msgstr ""
+msgstr "Indica si se debe activar el soporte para la base de datos de HTML5"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:552
msgid "Enable HTML5 Local Storage"
@@ -526,11 +536,11 @@ msgstr ""
#: WebKit/gtk/webkit/webkitwebsettings.cpp:567
msgid "Enable XSS Auditor"
-msgstr ""
+msgstr "Activar el auditor de XSS"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:568
msgid "Whether to enable teh XSS auditor"
-msgstr ""
+msgstr "Indica si se debe activar el auditor de XSS"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:586
msgid "User Agent"
@@ -608,15 +618,15 @@ msgstr ""
#: WebKit/gtk/webkit/webkitwebsettings.cpp:763
msgid "Enable page cache"
-msgstr ""
+msgstr "Activar caché de páginas"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:764
msgid "Whether the page cache should be used"
-msgstr ""
+msgstr "Indica si se debería usar la caché de páginas"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:784
msgid "Auto Resize Window"
-msgstr ""
+msgstr "Autoredimensionar ventana"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:785
msgid "Automatically resize the toplevel window when a page requests it"
@@ -624,19 +634,21 @@ msgstr ""
#: WebKit/gtk/webkit/webkitwebsettings.cpp:817
msgid "Enable Java Applet"
-msgstr ""
+msgstr "Activar la miniaplicación de Java"
#: WebKit/gtk/webkit/webkitwebsettings.cpp:818
msgid "Whether Java Applet support through <applet> should be enabled"
msgstr ""
+"Indica si se debería activar el soporte de miniaplicaciones Java a través de "
+"<applet>"
#: WebKit/gtk/webkit/webkitwebview.cpp:2319
msgid "Returns the @web_view's document title"
-msgstr ""
+msgstr "Devuelve el título del documento de @web_view"
#: WebKit/gtk/webkit/webkitwebview.cpp:2333
msgid "Returns the current URI of the contents displayed by the @web_view"
-msgstr ""
+msgstr "Devuelve el contenido actual del URI mostrado en @web_view"
#: WebKit/gtk/webkit/webkitwebview.cpp:2346
msgid "Copy target list"
@@ -645,6 +657,8 @@ msgstr "Copiar la lista de destinos"
#: WebKit/gtk/webkit/webkitwebview.cpp:2347
msgid "The list of targets this web view supports for clipboard copying"
msgstr ""
+"La lista de objetivos que esta vista web soporta para copiar desde el "
+"portapapeles"
#: WebKit/gtk/webkit/webkitwebview.cpp:2360
msgid "Paste target list"
@@ -653,6 +667,8 @@ msgstr "Pegar la lista de destinos"
#: WebKit/gtk/webkit/webkitwebview.cpp:2361
msgid "The list of targets this web view supports for clipboard pasting"
msgstr ""
+"La lista de objetivos que esta vista web soporta para pegar desde el "
+"portapapeles"
#: WebKit/gtk/webkit/webkitwebview.cpp:2367
msgid "Settings"
@@ -660,7 +676,7 @@ msgstr "Ajustes"
#: WebKit/gtk/webkit/webkitwebview.cpp:2368
msgid "An associated WebKitWebSettings instance"
-msgstr ""
+msgstr "Una instancia asociada de WebKitWebSettings"
#: WebKit/gtk/webkit/webkitwebview.cpp:2381
msgid "Web Inspector"
@@ -668,7 +684,7 @@ msgstr "Inspector web"
#: WebKit/gtk/webkit/webkitwebview.cpp:2382
msgid "The associated WebKitWebInspector instance"
-msgstr ""
+msgstr "La instanacia aosiciada de WebKitWebInspector"
#: WebKit/gtk/webkit/webkitwebview.cpp:2402
msgid "Editable"
@@ -676,7 +692,7 @@ msgstr "Editable"
#: WebKit/gtk/webkit/webkitwebview.cpp:2403
msgid "Whether content can be modified by the user"
-msgstr ""
+msgstr "Indica si el usuario puede modificar el contenido"
#: WebKit/gtk/webkit/webkitwebview.cpp:2409
msgid "Transparent"
@@ -684,7 +700,7 @@ msgstr "Transparente"
#: WebKit/gtk/webkit/webkitwebview.cpp:2410
msgid "Whether content has a transparent background"
-msgstr ""
+msgstr "Indica si el contenido tiene un fondo transparente"
#: WebKit/gtk/webkit/webkitwebview.cpp:2423
msgid "Zoom level"
@@ -696,11 +712,11 @@ msgstr "El nivel de ampliación del contenido"
#: WebKit/gtk/webkit/webkitwebview.cpp:2439
msgid "Full content zoom"
-msgstr ""
+msgstr "Ampliación completa del contenido"
#: WebKit/gtk/webkit/webkitwebview.cpp:2440
msgid "Whether the full content is scaled when zooming"
-msgstr ""
+msgstr "Indica si el contenido completo se escala al ampliar"
#: WebKit/gtk/webkit/webkitwebview.cpp:2453
msgid "Encoding"
@@ -712,15 +728,15 @@ msgstr "La codificación predeterminada de la vista web"
#: WebKit/gtk/webkit/webkitwebview.cpp:2467
msgid "Custom Encoding"
-msgstr ""
+msgstr "Codificación personalizada"
#: WebKit/gtk/webkit/webkitwebview.cpp:2468
msgid "The custom encoding of the web view"
-msgstr ""
+msgstr "La codificación de caracteres personalizada de la vista de la web"
#: WebKit/gtk/webkit/webkitwebview.cpp:2520
msgid "Icon URI"
-msgstr ""
+msgstr "Icono de URI"
#: WebKit/gtk/webkit/webkitwebview.cpp:2521
msgid "The URI for the favicon for the #WebKitWebView."
@@ -738,6 +754,8 @@ msgstr "Restablecer"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:70
msgid "This is a searchable index. Enter search keywords: "
msgstr ""
+"Es un índice en el que se puede buscar. Introduzca palabras clave de "
+"búsqueda:"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:75
msgid "Choose File"
@@ -781,7 +799,7 @@ msgstr "Re_cargar"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:183
msgid "No Guesses Found"
-msgstr ""
+msgstr "No se encontró ninguna sugerencia"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:188
msgid "_Ignore Spelling"
@@ -797,7 +815,7 @@ msgstr "_Buscar en la web"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:203
msgid "_Look Up in Dictionary"
-msgstr ""
+msgstr "_Buscar en diccionario"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:208
msgid "_Open Link"
@@ -817,19 +835,19 @@ msgstr "_Mostrar ortografía y gramática"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223
msgid "_Hide Spelling and Grammar"
-msgstr ""
+msgstr "_Ocultar ortografía y grámatica"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:228
msgid "_Check Document Now"
-msgstr ""
+msgstr "_Comprobar documento ahora"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:233
msgid "Check Spelling While _Typing"
-msgstr ""
+msgstr "Comprobar ortografía al _escribir"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:238
msgid "Check _Grammar With Spelling"
-msgstr ""
+msgstr "Comprobar gra_mática y ortografía"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:243
msgid "_Font"
@@ -837,7 +855,7 @@ msgstr "_Tipografía"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:266
msgid "_Outline"
-msgstr ""
+msgstr "C_ontorno"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:271
msgid "Inspect _Element"
@@ -865,7 +883,7 @@ msgstr "definición"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:301
msgid "press"
-msgstr ""
+msgstr "pulsar"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:306
msgid "select"
@@ -897,23 +915,23 @@ msgstr "Desconocido"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:364
msgid "Loading..."
-msgstr ""
+msgstr "Cargando…"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:369
msgid "Live Broadcast"
-msgstr ""
+msgstr "En directo"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:375
msgid "audio element controller"
-msgstr ""
+msgstr "controlador de elemento de sonido"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:377
msgid "video element controller"
-msgstr ""
+msgstr "controlador de elemento de vídeo"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:379
msgid "mute"
-msgstr ""
+msgstr "silenciar"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:381
msgid "unmute"
@@ -921,15 +939,15 @@ msgstr ""
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:383
msgid "play"
-msgstr ""
+msgstr "play"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:385
msgid "pause"
-msgstr ""
+msgstr "pause"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:387
msgid "movie time"
-msgstr ""
+msgstr "tiempo de la película"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:389
msgid "timeline slider thumb"
@@ -937,28 +955,27 @@ msgstr ""
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:391
msgid "back 30 seconds"
-msgstr ""
+msgstr "atrás 30 segundos"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:393
msgid "return to realtime"
-msgstr ""
+msgstr "volver a tiempo real"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:395
msgid "elapsed time"
-msgstr ""
+msgstr "tiempo transcurrido"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:397
msgid "remaining time"
-msgstr ""
+msgstr "tiempo restante"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:399
-#, fuzzy
msgid "status"
-msgstr "Estado"
+msgstr "estado"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:401
msgid "fullscreen"
-msgstr ""
+msgstr "pantalla completa"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:403
msgid "fast forward"
@@ -1026,7 +1043,7 @@ msgstr ""
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:442
msgid "current movie status"
-msgstr ""
+msgstr "estado actual de la película"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:444
msgid "seek quickly back"
@@ -1049,9 +1066,8 @@ msgid "stop displaying closed captions"
msgstr ""
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:461
-#, fuzzy
msgid "indefinite time"
-msgstr "definición"
+msgstr "tiempo indefinido"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:491
msgid "value missing"
@@ -1067,7 +1083,7 @@ msgstr ""
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:507
msgid "too long"
-msgstr ""
+msgstr "demasiado largo"
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:512
msgid "range underflow"
@@ -1080,6 +1096,3 @@ msgstr ""
#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:522
msgid "step mismatch"
msgstr ""
-
-#~ msgid "_Searchable Index"
-#~ msgstr "Índice buscable"
diff --git a/WebKit/gtk/tests/testdomdocument.c b/WebKit/gtk/tests/testdomdocument.c
index 4c677ea..ec2f579 100644
--- a/WebKit/gtk/tests/testdomdocument.c
+++ b/WebKit/gtk/tests/testdomdocument.c
@@ -75,7 +75,7 @@ static void test_dom_document_title(DomDocumentFixture* fixture, gconstpointer d
g_assert(title);
g_assert_cmpstr(title, ==, "This is the title");
g_free(title);
- webkit_dom_document_set_title(document, (gchar*)"This is the second title");
+ webkit_dom_document_set_title(document, "This is the second title");
title = webkit_dom_document_get_title(document);
g_assert(title);
g_assert_cmpstr(title, ==, "This is the second title");
@@ -89,7 +89,7 @@ static void test_dom_document_get_elements_by_tag_name(DomDocumentFixture* fixtu
g_assert(view);
WebKitDOMDocument* document = webkit_web_view_get_dom_document(view);
g_assert(document);
- WebKitDOMNodeList* list = webkit_dom_document_get_elements_by_tag_name(document, (gchar*)"li");
+ WebKitDOMNodeList* list = webkit_dom_document_get_elements_by_tag_name(document, "li");
g_assert(list);
gulong length = webkit_dom_node_list_get_length(list);
g_assert_cmpint(length, ==, 3);
@@ -116,7 +116,7 @@ static void test_dom_document_get_elements_by_class_name(DomDocumentFixture* fix
g_assert(view);
WebKitDOMDocument* document = webkit_web_view_get_dom_document(view);
g_assert(document);
- WebKitDOMNodeList* list = webkit_dom_document_get_elements_by_class_name(document, (gchar*)"test");
+ WebKitDOMNodeList* list = webkit_dom_document_get_elements_by_class_name(document, "test");
g_assert(list);
gulong length = webkit_dom_node_list_get_length(list);
g_assert_cmpint(length, ==, 2);
@@ -139,17 +139,17 @@ static void test_dom_document_get_element_by_id(DomDocumentFixture* fixture, gco
g_assert(view);
WebKitDOMDocument* document = webkit_web_view_get_dom_document(view);
g_assert(document);
- WebKitDOMElement* element = webkit_dom_document_get_element_by_id(document, (gchar*)"testok");
+ WebKitDOMElement* element = webkit_dom_document_get_element_by_id(document, "testok");
g_assert(element);
- element = webkit_dom_document_get_element_by_id(document, (gchar*)"this-id-does-not-exist");
+ element = webkit_dom_document_get_element_by_id(document, "this-id-does-not-exist");
g_assert(element == 0);
/* The DOM spec says the return value is undefined when there's
* more than one element with the same id; in our case the first
* one will be returned */
- element = webkit_dom_document_get_element_by_id(document, (gchar*)"testbad");
+ element = webkit_dom_document_get_element_by_id(document, "testbad");
g_assert(element);
WebKitDOMHTMLElement* htmlElement = (WebKitDOMHTMLElement*)element;
- g_assert_cmpstr(webkit_dom_html_element_get_inner_text(htmlElement), ==, (gchar*)"first");
+ g_assert_cmpstr(webkit_dom_html_element_get_inner_text(htmlElement), ==, "first");
}
static void test_dom_document_get_links(DomDocumentFixture* fixture, gconstpointer data)
diff --git a/WebKit/gtk/tests/testdomdomwindow.c b/WebKit/gtk/tests/testdomdomwindow.c
index 1796057..a52bca5 100644
--- a/WebKit/gtk/tests/testdomdomwindow.c
+++ b/WebKit/gtk/tests/testdomdomwindow.c
@@ -26,7 +26,7 @@
#if GLIB_CHECK_VERSION(2, 16, 0) && GTK_CHECK_VERSION(2, 14, 0)
-#define HTML_DOCUMENT "<html><head><title>This is the title</title></head><body></body></html>"
+#define HTML_DOCUMENT "<html><head><title>This is the title</title></head><body><p id='test'>test</p></body></html>"
typedef struct {
GtkWidget* webView;
@@ -108,7 +108,7 @@ static void load_event_callback(WebKitWebView* webView, GParamSpec* spec, DomDom
g_signal_connect(fixture->domWindow, "click-event", G_CALLBACK(clickedCallback), fixture);
g_assert(fixture->clicked == FALSE);
- gtk_test_widget_click (GTK_WIDGET(fixture->webView), 1, 0);
+ gtk_test_widget_click(GTK_WIDGET(fixture->webView), 1, 0);
}
}
@@ -132,12 +132,69 @@ static void test_dom_domview_signals(DomDomviewFixture* fixture, gconstpointer d
gtk_widget_show_all(fixture->window);
gtk_window_present(GTK_WINDOW(fixture->window));
- g_main_loop_run (fixture->loop);
+ g_main_loop_run(fixture->loop);
g_assert(fixture->loaded);
g_assert(fixture->clicked);
}
+static gboolean
+clicked_cb(WebKitDOMEventTarget* target, WebKitDOMEvent* event, DomDomviewFixture* fixture)
+{
+ g_assert(fixture->clicked == FALSE);
+ fixture->clicked = TRUE;
+ finish_loading(fixture);
+ return FALSE;
+}
+
+static void load_status_callback(WebKitWebView* webView, GParamSpec* spec, DomDomviewFixture* fixture)
+{
+ WebKitLoadStatus status = webkit_web_view_get_load_status(webView);
+ if (status == WEBKIT_LOAD_FINISHED) {
+ WebKitDOMDocument* document;
+ WebKitDOMDOMWindow* domWindow;
+ WebKitDOMElement* element;
+ WebKitDOMEvent* event;
+ glong clientX, clientY;
+
+ document = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(fixture->webView));
+ g_assert(document);
+ domWindow = webkit_dom_document_get_default_view(document);
+ g_assert(domWindow);
+ fixture->domWindow = domWindow;
+
+ element = webkit_dom_document_get_element_by_id(document, "test");
+ g_assert(element);
+ event = webkit_dom_document_create_event(document, "MouseEvent", NULL);
+ g_assert(event);
+ g_assert(WEBKIT_DOM_IS_EVENT(event));
+ g_assert(WEBKIT_DOM_IS_MOUSE_EVENT(event));
+ clientX = webkit_dom_element_get_client_left(element);
+ clientY = webkit_dom_element_get_client_top(element);
+ webkit_dom_mouse_event_init_mouse_event(WEBKIT_DOM_MOUSE_EVENT(event),
+ "click", TRUE, TRUE,
+ fixture->domWindow, 0, 0, 0, clientX, clientY,
+ FALSE, FALSE, FALSE, FALSE,
+ 1, WEBKIT_DOM_EVENT_TARGET(element));
+ g_signal_connect(element, "click-event", G_CALLBACK(clicked_cb), fixture);
+ g_assert(fixture->clicked == FALSE);
+ webkit_dom_event_target_dispatch_event(WEBKIT_DOM_EVENT_TARGET(element), event, NULL);
+ }
+
+}
+
+static void test_dom_domview_dispatch_event(DomDomviewFixture* fixture, gconstpointer data)
+{
+ g_signal_connect(fixture->window, "map-event", G_CALLBACK(map_event_cb), fixture);
+ g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_status_callback), fixture);
+
+ gtk_widget_show_all(fixture->window);
+ gtk_window_present(GTK_WINDOW(fixture->window));
+
+ g_main_loop_run (fixture->loop);
+ g_assert(fixture->clicked);
+}
+
int main(int argc, char** argv)
{
if (!g_thread_supported())
@@ -153,6 +210,12 @@ int main(int argc, char** argv)
test_dom_domview_signals,
dom_domview_fixture_teardown);
+ g_test_add("/webkit/domdomview/dispatch_event",
+ DomDomviewFixture, HTML_DOCUMENT,
+ dom_domview_fixture_setup,
+ test_dom_domview_dispatch_event,
+ dom_domview_fixture_teardown);
+
return g_test_run();
}
diff --git a/WebKit/gtk/tests/testdomnode.c b/WebKit/gtk/tests/testdomnode.c
index b253d1d..c6056d6 100644
--- a/WebKit/gtk/tests/testdomnode.c
+++ b/WebKit/gtk/tests/testdomnode.c
@@ -138,7 +138,7 @@ static void test_dom_node_insertion(DomNodeFixture* fixture, gconstpointer data)
g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body)) == FALSE);
/* Insert one P element */
- p = webkit_dom_document_create_element(document, (char*)"P", NULL);
+ p = webkit_dom_document_create_element(document, "P", NULL);
webkit_dom_node_append_child(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(p), NULL);
/* Now it should have one, the same that we inserted */
@@ -150,7 +150,7 @@ static void test_dom_node_insertion(DomNodeFixture* fixture, gconstpointer data)
g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(p), node));
/* Replace the P tag with a DIV tag */
- div = webkit_dom_document_create_element(document, (char*)"DIV", NULL);
+ div = webkit_dom_document_create_element(document, "DIV", NULL);
webkit_dom_node_replace_child(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(div), WEBKIT_DOM_NODE(p), NULL);
g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body)));
list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body));
diff --git a/WebKit/gtk/webkit/webkitprivate.h b/WebKit/gtk/webkit/webkitprivate.h
index 3ce77e6..aa19bec 100644
--- a/WebKit/gtk/webkit/webkitprivate.h
+++ b/WebKit/gtk/webkit/webkitprivate.h
@@ -273,6 +273,12 @@ extern "C" {
void
webkit_web_view_set_tooltip_text(WebKitWebView*, const char*);
+ WEBKIT_API void
+ webkit_web_view_execute_core_command_by_name(WebKitWebView* webView, const gchar* name, const gchar* value);
+
+ WEBKIT_API gboolean
+ webkit_web_view_is_command_enabled(WebKitWebView* webView, const gchar* name);
+
WebKitDownload*
webkit_download_new_with_handle(WebKitNetworkRequest* request, WebCore::ResourceHandle* handle, const WebCore::ResourceResponse& response);
diff --git a/WebKit/gtk/webkit/webkitsecurityorigin.cpp b/WebKit/gtk/webkit/webkitsecurityorigin.cpp
index 0ab0a9c..de074ae 100644
--- a/WebKit/gtk/webkit/webkitsecurityorigin.cpp
+++ b/WebKit/gtk/webkit/webkitsecurityorigin.cpp
@@ -233,7 +233,7 @@ G_CONST_RETURN gchar* webkit_security_origin_get_protocol(WebKitSecurityOrigin*
g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), NULL);
WebKitSecurityOriginPrivate* priv = securityOrigin->priv;
- WebCore::String protocol = priv->coreOrigin->protocol();
+ WTF::String protocol = priv->coreOrigin->protocol();
if (!priv->protocol)
priv->protocol = g_strdup(protocol.utf8().data());
@@ -256,7 +256,7 @@ G_CONST_RETURN gchar* webkit_security_origin_get_host(WebKitSecurityOrigin* secu
g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), NULL);
WebKitSecurityOriginPrivate* priv = securityOrigin->priv;
- WebCore::String host = priv->coreOrigin->host();
+ WTF::String host = priv->coreOrigin->host();
if (!priv->host)
priv->host = g_strdup(host.utf8().data());
@@ -364,7 +364,7 @@ GList* webkit_security_origin_get_all_web_databases(WebKitSecurityOrigin* securi
#if ENABLE(DATABASE)
WebCore::SecurityOrigin* coreOrigin = core(securityOrigin);
- Vector<WebCore::String> databaseNames;
+ Vector<WTF::String> databaseNames;
if (!WebCore::DatabaseTracker::tracker().databaseNamesForOrigin(coreOrigin, databaseNames))
return NULL;
diff --git a/WebKit/gtk/webkit/webkitversion.h.in b/WebKit/gtk/webkit/webkitversion.h.in
index 5eb9426..ce6b569 100644
--- a/WebKit/gtk/webkit/webkitversion.h.in
+++ b/WebKit/gtk/webkit/webkitversion.h.in
@@ -30,6 +30,7 @@ G_BEGIN_DECLS
#define WEBKIT_MICRO_VERSION (@WEBKIT_MICRO_VERSION@)
#define WEBKIT_USER_AGENT_MAJOR_VERSION (@WEBKIT_USER_AGENT_MAJOR_VERSION@)
#define WEBKIT_USER_AGENT_MINOR_VERSION (@WEBKIT_USER_AGENT_MINOR_VERSION@)
+#define WEBKITGTK_API_VERSION (@WEBKITGTK_API_VERSION@)
#define WEBKIT_CHECK_VERSION(major, minor, micro) \
(WEBKIT_MAJOR_VERSION > (major) || \
diff --git a/WebKit/gtk/webkit/webkitwebdatabase.cpp b/WebKit/gtk/webkit/webkitwebdatabase.cpp
index e92c400..d4f6198 100644
--- a/WebKit/gtk/webkit/webkitwebdatabase.cpp
+++ b/WebKit/gtk/webkit/webkitwebdatabase.cpp
@@ -331,7 +331,7 @@ G_CONST_RETURN gchar* webkit_web_database_get_display_name(WebKitWebDatabase* we
#if ENABLE(DATABASE)
WebKitWebDatabasePrivate* priv = webDatabase->priv;
WebCore::DatabaseDetails details = WebCore::DatabaseTracker::tracker().detailsForNameAndOrigin(priv->name, core(priv->origin));
- WebCore::String displayName = details.displayName();
+ WTF::String displayName = details.displayName();
if (displayName.isEmpty())
return "";
@@ -408,8 +408,8 @@ G_CONST_RETURN gchar* webkit_web_database_get_filename(WebKitWebDatabase* webDat
#if ENABLE(DATABASE)
WebKitWebDatabasePrivate* priv = webDatabase->priv;
- WebCore::String coreName = WebCore::String::fromUTF8(priv->name);
- WebCore::String corePath = WebCore::DatabaseTracker::tracker().fullPathForDatabase(core(priv->origin), coreName);
+ WTF::String coreName = WTF::String::fromUTF8(priv->name);
+ WTF::String corePath = WebCore::DatabaseTracker::tracker().fullPathForDatabase(core(priv->origin), coreName);
if (corePath.isEmpty())
return"";
@@ -470,7 +470,7 @@ void webkit_remove_all_web_databases()
G_CONST_RETURN gchar* webkit_get_web_database_directory_path()
{
#if ENABLE(DATABASE)
- WebCore::String path = WebCore::DatabaseTracker::tracker().databaseDirectoryPath();
+ WTF::String path = WebCore::DatabaseTracker::tracker().databaseDirectoryPath();
if (path.isEmpty())
return "";
@@ -495,7 +495,7 @@ G_CONST_RETURN gchar* webkit_get_web_database_directory_path()
void webkit_set_web_database_directory_path(const gchar* path)
{
#if ENABLE(DATABASE)
- WebCore::String corePath = WebCore::String::fromUTF8(path);
+ WTF::String corePath = WTF::String::fromUTF8(path);
WebCore::DatabaseTracker::tracker().setDatabaseDirectoryPath(corePath);
g_free(webkit_database_directory_path);
diff --git a/WebKit/gtk/webkit/webkitwebhistoryitem.cpp b/WebKit/gtk/webkit/webkitwebhistoryitem.cpp
index 5177c4c..8a9153c 100644
--- a/WebKit/gtk/webkit/webkitwebhistoryitem.cpp
+++ b/WebKit/gtk/webkit/webkitwebhistoryitem.cpp
@@ -301,7 +301,7 @@ WebKitWebHistoryItem* webkit_web_history_item_new_with_data(const gchar* uri, co
WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
WebCore::KURL historyUri(WebCore::KURL(), uri);
- WebCore::String historyTitle = WebCore::String::fromUTF8(title);
+ WTF::String historyTitle = WTF::String::fromUTF8(title);
RefPtr<WebCore::HistoryItem> item = WebCore::HistoryItem::create(historyUri, historyTitle, 0);
priv->historyItem = item.release().releaseRef();
webkit_history_item_add(webHistoryItem, priv->historyItem);
@@ -365,7 +365,7 @@ void webkit_web_history_item_set_alternate_title(WebKitWebHistoryItem* webHistor
WebCore::HistoryItem* item = core(webHistoryItem);
- item->setAlternateTitle(WebCore::String::fromUTF8(title));
+ item->setAlternateTitle(WTF::String::fromUTF8(title));
g_object_notify(G_OBJECT(webHistoryItem), "alternate-title");
}
diff --git a/WebKit/gtk/webkit/webkitwebsettings.cpp b/WebKit/gtk/webkit/webkitwebsettings.cpp
index d61f3ff..71a338c 100644
--- a/WebKit/gtk/webkit/webkitwebsettings.cpp
+++ b/WebKit/gtk/webkit/webkitwebsettings.cpp
@@ -569,7 +569,7 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass)
PROP_ENABLE_XSS_AUDITOR,
g_param_spec_boolean("enable-xss-auditor",
_("Enable XSS Auditor"),
- _("Whether to enable teh XSS auditor"),
+ _("Whether to enable the XSS auditor"),
TRUE,
flags));
/**
diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp
index 8747d42..58d91ea 100644
--- a/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -549,6 +549,11 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose*
ctx.restore();
}
}
+
+ ctx.save();
+ ctx.clip(static_cast<IntRect>(event->area));
+ frame->page()->inspectorController()->drawNodeHighlight(ctx);
+ ctx.restore();
}
return FALSE;
@@ -792,7 +797,8 @@ static gboolean webkit_web_view_focus_in_event(GtkWidget* widget, GdkEventFocus*
else
focusController->setFocusedFrame(core(webView)->mainFrame());
- gtk_im_context_focus_in(webView->priv->imContext);
+ if (focusController->focusedFrame()->editor()->canEdit())
+ gtk_im_context_focus_in(webView->priv->imContext);
}
return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->focus_in_event(widget, event);
}
@@ -4658,3 +4664,20 @@ WebKitCacheModel webkit_get_cache_model()
webkit_init();
return cacheModel;
}
+
+void webkit_web_view_execute_core_command_by_name(WebKitWebView* webView, const gchar* name, const gchar* value)
+{
+ g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
+ g_return_if_fail(name);
+ g_return_if_fail(value);
+
+ core(webView)->focusController()->focusedOrMainFrame()->editor()->command(name).execute(value);
+}
+
+gboolean webkit_web_view_is_command_enabled(WebKitWebView* webView, const gchar* name)
+{
+ g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
+ g_return_val_if_fail(name, FALSE);
+
+ return core(webView)->focusController()->focusedOrMainFrame()->editor()->command(name).isEnabled();
+}
diff --git a/WebKit/haiku/ChangeLog b/WebKit/haiku/ChangeLog
index 9e2e24d..986b00f 100644
--- a/WebKit/haiku/ChangeLog
+++ b/WebKit/haiku/ChangeLog
@@ -1,3 +1,22 @@
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebCoreSupport/FrameLoaderClientHaiku.h:
+ * WebCoreSupport/InspectorClientHaiku.h:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * WebCoreSupport/FrameLoaderClientHaiku.h:
+ * WebCoreSupport/InspectorClientHaiku.h:
+
2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Darin Fisher.
diff --git a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
index 8201fae..6a5b381 100644
--- a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
@@ -99,7 +99,7 @@ namespace WebCore {
bool runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result);
bool shouldInterruptJavaScript();
- void setStatusbarText(const WebCore::String&);
+ void setStatusbarText(const WTF::String&);
bool tabsToLinks() const;
IntRect windowResizerRect() const;
diff --git a/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h b/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
index 073c0c3..dfe5747 100644
--- a/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
@@ -33,6 +33,7 @@
#include "FrameLoaderClient.h"
#include "KURL.h"
#include "ResourceResponse.h"
+#include <wtf/Forward.h>
class BMessenger;
class WebView;
@@ -44,7 +45,6 @@ namespace WebCore {
class FormState;
class NavigationAction;
class ResourceLoader;
- class String;
struct LoadErrorResetToken;
diff --git a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
index 3828d04..d6df4c6 100644
--- a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
@@ -31,12 +31,11 @@
#define InspectorClientHaiku_h
#include "InspectorClient.h"
-
+#include <wtf/Forward.h>
namespace WebCore {
class Node;
class Page;
- class String;
class InspectorClientHaiku : public InspectorClient {
public:
@@ -47,10 +46,10 @@ namespace WebCore {
virtual void highlight(Node*);
virtual void hideHighlight();
- virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
- virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
+ virtual void populateSetting(const WTF::String& key, WTF::String* value);
+ virtual void storeSetting(const WTF::String& key, const WTF::String& value);
- virtual bool sendMessageToFrontend(const WebCore::String&);
+ virtual bool sendMessageToFrontend(const WTF::String&);
};
} // namespace WebCore
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index bb42e9d..269110f 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,172 @@
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * Plugins/Hosted/NetscapePluginInstanceProxy.h:
+ * Plugins/WebBaseNetscapePluginView.h:
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebIconDatabaseClient.h:
+ * WebCoreSupport/WebPluginHalterClient.h:
+ * WebView/WebViewInternal.h:
+
+2010-08-04 MORITA Hajime <morrita@google.com>
+
+ Reviewed by Tony Chang.
+
+ Pasting should fire textInput event.
+ https://bugs.webkit.org/show_bug.cgi?id=42958
+
+ On paste, invoke Editor instead of direct command invocation,
+ which allows dispatching events before actual paste.
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]):
+
+2010-08-06 Yongjun Zhang <yongjun_zhang@apple.com>
+
+ Reviewed by Eric Seidel.
+
+ add "const" to WebChromeClient::webView().
+ https://bugs.webkit.org/show_bug.cgi?id=43631
+
+ Change WebChromeClient::webView() to be const because ChromeClient::didReceiveViewportArguments
+ is const method now, and calling webView() inside port-specific didReceiveViewportArguments
+ implementation fails compiling if webView() is not const.
+
+ * WebCoreSupport/WebChromeClient.h:
+ (WebChromeClient::webView):
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * Plugins/Hosted/NetscapePluginInstanceProxy.h:
+ * Plugins/WebBaseNetscapePluginView.h:
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebIconDatabaseClient.h:
+ * WebCoreSupport/WebPluginHalterClient.h:
+ * WebView/WebViewInternal.h:
+
+2010-08-05 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by David Kilzer.
+
+ Remove Invalid Asserts for Application Cache Quotas
+ https://bugs.webkit.org/show_bug.cgi?id=43585
+
+ Removed Invalid ASSERTs that would always happen for quotas
+ that were not noQuota().
+
+ * WebView/WebPreferences.mm:
+ (-[WebPreferences applicationCacheTotalQuota]):
+ (-[WebPreferences applicationCacheDefaultOriginQuota]):
+
+2010-08-05 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * Plugins/Hosted/NetscapePluginInstanceProxy.h:
+ * Plugins/WebBaseNetscapePluginView.h:
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebIconDatabaseClient.h:
+ * WebCoreSupport/WebPluginHalterClient.h:
+ * WebView/WebViewInternal.h:
+
+2010-08-05 Jian Li <jianli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Unify blob related feature defines to ENABLE(BLOB).
+ https://bugs.webkit.org/show_bug.cgi?id=43081
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-08-03 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by David Kilzer.
+
+ Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
+ https://bugs.webkit.org/show_bug.cgi?id=40627
+
+ Part 6 - LayoutTest and Cleanup
+
+ * WebCoreSupport/WebApplicationCache.h:
+ * WebCoreSupport/WebApplicationCache.mm:
+ (+[WebApplicationCache setMaximumSize:]): refactor out deleting the application caches.
+ (+[WebApplicationCache deleteAllApplicationCaches]): delete application caches.
+
+2010-08-03 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by David Kilzer.
+
+ Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
+ https://bugs.webkit.org/show_bug.cgi?id=40627
+
+ Part 5 - Refactor Quota Management in WebSecurityOrigin into Managers
+
+ Per-Origin quotas exist for Databases and Application Caches. Clients
+ given a WebSecurityOrigin have the ability to set the quota for any
+ per-origin quota type. This puts quota management into an interface
+ and WebSecurityOrigin allows access to quota managers for the
+ different types of quotas.
+
+ This also deprecates the old methods on WebSecurityOrigin. They are
+ left in for now to prevent breaking older clients.
+
+ The WebQuotaManager interface allows querying and modifying a
+ per-origin quota. This is implemented for both Databases and
+ Application Caches.
+
+ * Misc/WebQuotaManager.h: Added. Interface for quota management (usage, quota, setQuota).
+ * Storage/WebDatabaseQuotaManager.h: Added.
+ * Storage/WebDatabaseQuotaManager.mm: Added.
+ (-[WebDatabaseQuotaManager origin]):
+ (-[WebDatabaseQuotaManager usage]):
+ (-[WebDatabaseQuotaManager quota]):
+ (-[WebDatabaseQuotaManager setQuota:]):
+ * Storage/WebDatabaseSecurityOrigin.h: Removed.
+ * Storage/WebDatabaseSecurityOrigin.mm: Removed.
+ * WebCoreSupport/WebApplicationCacheQuotaManager.h: Added.
+ * WebCoreSupport/WebApplicationCacheQuotaManager.mm: Added.
+ (-[WebApplicationCacheQuotaManager origin]):
+ (-[WebApplicationCacheQuotaManager usage]):
+ (-[WebApplicationCacheQuotaManager quota]):
+ (-[WebApplicationCacheQuotaManager setQuota:]):
+ * WebCoreSupport/WebSecurityOriginPrivate.h: Added a category to access managers. Deprecated old methods.
+
+ Remove the WebSecurityOrigin sub-classes. Managers are better.
+
+ * WebCoreSupport/WebApplicationCacheSecurityOrigin.h: Removed.
+ * WebCoreSupport/WebApplicationCacheSecurityOrigin.mm: Removed.
+
+ Create the managers lazily. Change old style calls to make use
+ of the managers.
+
+ * WebCoreSupport/WebChromeClient.mm:
+ (WebChromeClient::exceededDatabaseQuota):
+ (WebChromeClient::reachedApplicationCacheOriginQuota):
+ * WebCoreSupport/WebSecurityOrigin.mm:
+ (-[WebSecurityOrigin applicationCacheQuotaManager]):
+ (-[WebSecurityOrigin databaseQuotaManager]):
+ (-[WebSecurityOrigin dealloc]): release the managers if they exist.
+
+2010-08-03 Alex Milowski <alex@milowski.com>
+
+ Reviewed by Beth Dakin.
+
+ Changed the ENABLE_MATHML value to enable MathML by default.
+
+ * Configurations/FeatureDefines.xcconfig:
+
2010-08-02 Brady Eidson <beidson@apple.com>
Reviewed by Anders Carlsson.
diff --git a/WebKit/mac/Configurations/FeatureDefines.xcconfig b/WebKit/mac/Configurations/FeatureDefines.xcconfig
index 9810cf7..f2b4c09 100644
--- a/WebKit/mac/Configurations/FeatureDefines.xcconfig
+++ b/WebKit/mac/Configurations/FeatureDefines.xcconfig
@@ -46,8 +46,8 @@ ENABLE_3D_RENDERING_macosx_1050 = ENABLE_3D_RENDERING;
ENABLE_3D_RENDERING_macosx_1060 = ENABLE_3D_RENDERING;
ENABLE_3D_RENDERING_macosx_1070 = ENABLE_3D_RENDERING;
-ENABLE_BLOB_SLICE = $(ENABLE_BLOB_SLICE_$(REAL_PLATFORM_NAME));
-ENABLE_BLOB_SLICE_macosx = ENABLE_BLOB_SLICE;
+ENABLE_BLOB = $(ENABLE_BLOB_$(REAL_PLATFORM_NAME));
+ENABLE_BLOB_macosx = ENABLE_BLOB;
ENABLE_CHANNEL_MESSAGING = $(ENABLE_CHANNEL_MESSAGING_$(REAL_PLATFORM_NAME));
ENABLE_CHANNEL_MESSAGING_macosx = ENABLE_CHANNEL_MESSAGING;
@@ -69,9 +69,6 @@ ENABLE_EVENTSOURCE = ENABLE_EVENTSOURCE;
ENABLE_FILTERS = $(ENABLE_FILTERS_$(REAL_PLATFORM_NAME));
ENABLE_FILTERS_macosx = ENABLE_FILTERS;
-ENABLE_FILE_READER = $(ENABLE_FILE_READER_$(REAL_PLATFORM_NAME));
-ENABLE_FILE_READER_macosx = ENABLE_FILE_READER;
-
ENABLE_FILE_WRITER = ;
ENABLE_FILE_SYSTEM = ;
ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
@@ -83,7 +80,7 @@ ENABLE_IMAGE_RESIZER = ;
ENABLE_INDEXED_DATABASE = ;
ENABLE_INPUT_SPEECH = ;
ENABLE_JAVASCRIPT_DEBUGGER = ENABLE_JAVASCRIPT_DEBUGGER;
-ENABLE_MATHML = ;
+ENABLE_MATHML = ENABLE_MATHML;
ENABLE_METER_TAG = ENABLE_METER_TAG;
ENABLE_NOTIFICATIONS = ;
ENABLE_OFFLINE_WEB_APPLICATIONS = ENABLE_OFFLINE_WEB_APPLICATIONS;
@@ -123,4 +120,4 @@ ENABLE_XHTMLMP = ;
ENABLE_XPATH = ENABLE_XPATH;
ENABLE_XSLT = ENABLE_XSLT;
-FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_FILE_SYSTEM) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_WRITER) $(ENABLE_FILE_SYSTEM) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
diff --git a/WebKit/mac/Configurations/Version.xcconfig b/WebKit/mac/Configurations/Version.xcconfig
index cc30ce9..deb52b6 100644
--- a/WebKit/mac/Configurations/Version.xcconfig
+++ b/WebKit/mac/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 534;
-MINOR_VERSION = 5;
+MINOR_VERSION = 6;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/WebKit/mac/Misc/WebQuotaManager.h b/WebKit/mac/Misc/WebQuotaManager.h
new file mode 100644
index 0000000..45074e4
--- /dev/null
+++ b/WebKit/mac/Misc/WebQuotaManager.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+@class WebSecurityOrigin;
+
+/*!
+ @protocol WebQuotaManager
+ @discussion This protocol is used to view and manipulate a per-origin storage quota.
+*/
+@protocol WebQuotaManager
+
+/*!
+ @method initWithOrigin:
+ @param The security origin this will manage.
+ @result A new WebQuotaManager object.
+*/
+- (id)initWithOrigin:(WebSecurityOrigin *)origin;
+
+/*!
+ @method origin
+ @result The security origin this manager is managing.
+*/
+- (WebSecurityOrigin *)origin;
+
+/*!
+ @method usage
+ @result The current total usage of all relevant items in this security origin in bytes.
+*/
+- (unsigned long long)usage;
+
+/*!
+ @method quota
+ @result The current quota of security origin in bytes.
+*/
+- (unsigned long long)quota;
+
+/*!
+ @method setQuota:
+ @param Sets a new quota, in bytes, on this security origin.
+*/
+- (void)setQuota:(unsigned long long)quota;
+
+@end
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h
index e1f02ac..b88f1a4 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h
@@ -44,28 +44,28 @@ class NetscapePluginHostManager {
public:
static NetscapePluginHostManager& shared();
- PassRefPtr<NetscapePluginInstanceProxy> instantiatePlugin(const WebCore::String& pluginPath, cpu_type_t pluginArchitecture, const WebCore::String& bundleIdentifier, WebHostedNetscapePluginView *, NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL, bool fullFrame, bool isPrivateBrowsingEnabled, bool isAcceleratedCompositingEnabled);
+ PassRefPtr<NetscapePluginInstanceProxy> instantiatePlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const WTF::String& bundleIdentifier, WebHostedNetscapePluginView *, NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL, bool fullFrame, bool isPrivateBrowsingEnabled, bool isAcceleratedCompositingEnabled);
void pluginHostDied(NetscapePluginHostProxy*);
- static void createPropertyListFile(const WebCore::String& pluginPath, cpu_type_t pluginArchitecture);
+ static void createPropertyListFile(const WTF::String& pluginPath, cpu_type_t pluginArchitecture);
void didCreateWindow();
private:
- NetscapePluginHostProxy* hostForPlugin(const WebCore::String& pluginPath, cpu_type_t pluginArchitecture, const WebCore::String& bundleIdentifier, bool useProxiedOpenPanel);
+ NetscapePluginHostProxy* hostForPlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const WTF::String& bundleIdentifier, bool useProxiedOpenPanel);
NetscapePluginHostManager();
~NetscapePluginHostManager();
- bool spawnPluginHost(const WebCore::String& pluginPath, cpu_type_t pluginArchitecture, mach_port_t clientPort, mach_port_t& pluginHostPort, ProcessSerialNumber& pluginHostPSN, bool useProxiedOpenPanel);
+ bool spawnPluginHost(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, mach_port_t clientPort, mach_port_t& pluginHostPort, ProcessSerialNumber& pluginHostPSN, bool useProxiedOpenPanel);
bool initializeVendorPort();
mach_port_t m_pluginVendorPort;
// FIXME: This should really be a HashMap of RetainPtrs, but that doesn't work right now.
- typedef HashMap<WebCore::String, NetscapePluginHostProxy*> PluginHostMap;
+ typedef HashMap<WTF::String, NetscapePluginHostProxy*> PluginHostMap;
PluginHostMap m_pluginHosts;
};
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm
index baec6ba..22874df 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm
@@ -70,7 +70,7 @@ NetscapePluginHostManager::~NetscapePluginHostManager()
{
}
-NetscapePluginHostProxy* NetscapePluginHostManager::hostForPlugin(const WebCore::String& pluginPath, cpu_type_t pluginArchitecture, const String& bundleIdentifier, bool useProxiedOpenPanel)
+NetscapePluginHostProxy* NetscapePluginHostManager::hostForPlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const String& bundleIdentifier, bool useProxiedOpenPanel)
{
pair<PluginHostMap::iterator, bool> result = m_pluginHosts.add(pluginPath, 0);
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
index 9ca5b5a..3081120 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
@@ -32,16 +32,13 @@
#include <WebCore/Timer.h>
#include <WebKit/npapi.h>
#include <wtf/Deque.h>
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RetainPtr.h>
#include "WebKitPluginHostTypes.h"
-namespace WebCore {
- class String;
-}
-
namespace JSC {
namespace Bindings {
class Instance;
@@ -112,7 +109,7 @@ public:
bool getPluginElementNPObject(uint32_t& objectID);
bool forgetBrowserObjectID(uint32_t objectID); // Will fail if the ID is being sent to plug-in right now (i.e., retain/release calls aren't balanced).
- bool evaluate(uint32_t objectID, const WebCore::String& script, data_t& resultData, mach_msg_type_number_t& resultLength, bool allowPopups);
+ bool evaluate(uint32_t objectID, const WTF::String& script, data_t& resultData, mach_msg_type_number_t& resultLength, bool allowPopups);
bool invoke(uint32_t objectID, const JSC::Identifier& methodName, data_t argumentsData, mach_msg_type_number_t argumentsLength, data_t& resultData, mach_msg_type_number_t& resultLength);
bool invokeDefault(uint32_t objectID, data_t argumentsData, mach_msg_type_number_t argumentsLength, data_t& resultData, mach_msg_type_number_t& resultLength);
bool construct(uint32_t objectID, data_t argumentsData, mach_msg_type_number_t argumentsLength, data_t& resultData, mach_msg_type_number_t& resultLength);
@@ -170,7 +167,7 @@ public:
void didDraw();
void privateBrowsingModeDidChange(bool isPrivateBrowsingEnabled);
- static void setGlobalException(const WebCore::String&);
+ static void setGlobalException(const WTF::String&);
static void moveGlobalExceptionToExecState(JSC::ExecState*);
// Reply structs
diff --git a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
index 4c8ea84..9a29cc2 100644
--- a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
+++ b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
@@ -31,6 +31,7 @@
#import "WebNetscapePluginPackage.h"
#import "WebPluginContainerCheck.h"
+#import <wtf/Forward.h>
#import <wtf/OwnPtr.h>
#import <wtf/PassRefPtr.h>
#import <wtf/RefPtr.h>
@@ -41,10 +42,6 @@
@class WebFrame;
@class WebView;
-namespace WTF {
- class CString;
-}
-
namespace WebCore {
class HTMLPlugInElement;
}
diff --git a/WebKit/mac/Plugins/WebBasePluginPackage.h b/WebKit/mac/Plugins/WebBasePluginPackage.h
index ca2ddcd..a42a82e 100644
--- a/WebKit/mac/Plugins/WebBasePluginPackage.h
+++ b/WebKit/mac/Plugins/WebBasePluginPackage.h
@@ -57,7 +57,7 @@ typedef void (*BP_CreatePluginMIMETypesPreferencesFuncPtr)(void);
{
NSMutableSet *pluginDatabases;
- WebCore::String path;
+ WTF::String path;
WebCore::PluginInfo pluginInfo;
RetainPtr<CFBundleRef> cfBundle;
@@ -73,16 +73,16 @@ typedef void (*BP_CreatePluginMIMETypesPreferencesFuncPtr)(void);
- (BOOL)load;
- (void)unload;
-- (const WebCore::String&)path;
+- (const WTF::String&)path;
- (const WebCore::PluginInfo&)pluginInfo;
-- (WebCore::String)bundleIdentifier;
+- (WTF::String)bundleIdentifier;
-- (BOOL)supportsExtension:(const WebCore::String&)extension;
-- (BOOL)supportsMIMEType:(const WebCore::String&)MIMEType;
+- (BOOL)supportsExtension:(const WTF::String&)extension;
+- (BOOL)supportsMIMEType:(const WTF::String&)MIMEType;
-- (NSString *)MIMETypeForExtension:(const WebCore::String&)extension;
+- (NSString *)MIMETypeForExtension:(const WTF::String&)extension;
- (BOOL)isQuickTimePlugIn;
- (BOOL)isJavaPlugIn;
diff --git a/WebKit/mac/Plugins/WebBasePluginPackage.mm b/WebKit/mac/Plugins/WebBasePluginPackage.mm
index 70e5889..78b0a7f 100644
--- a/WebKit/mac/Plugins/WebBasePluginPackage.mm
+++ b/WebKit/mac/Plugins/WebBasePluginPackage.mm
@@ -303,7 +303,7 @@ static NSString *pathByResolvingSymlinksAndAliases(NSString *thePath)
return NO;
}
-- (BOOL)supportsMIMEType:(const WebCore::String&)mimeType
+- (BOOL)supportsMIMEType:(const WTF::String&)mimeType
{
ASSERT(mimeType.lower() == mimeType);
@@ -445,7 +445,7 @@ static inline void swapIntsInHeader(uint8_t* bytes, unsigned length)
[pluginDatabases removeObject:database];
}
-- (WebCore::String)bundleIdentifier
+- (WTF::String)bundleIdentifier
{
return CFBundleGetIdentifier(cfBundle.get());
}
diff --git a/WebKit/mac/Plugins/WebNetscapePluginStream.h b/WebKit/mac/Plugins/WebNetscapePluginStream.h
index 8ee9e7f..20beee2 100644
--- a/WebKit/mac/Plugins/WebNetscapePluginStream.h
+++ b/WebKit/mac/Plugins/WebNetscapePluginStream.h
@@ -90,7 +90,7 @@ private:
void deliverDataToFile(NSData *data);
void deliverData();
- void startStream(NSURL *, long long expectedContentLength, NSDate *lastModifiedDate, const WebCore::String& mimeType, NSData *headers);
+ void startStream(NSURL *, long long expectedContentLength, NSDate *lastModifiedDate, const WTF::String& mimeType, NSData *headers);
NSError *pluginCancelledConnectionError() const;
diff --git a/WebKit/mac/WebCoreSupport/WebApplicationCacheSecurityOrigin.h b/WebKit/mac/Storage/WebDatabaseQuotaManager.h
index 09c0610..8219da4 100644
--- a/WebKit/mac/WebCoreSupport/WebApplicationCacheSecurityOrigin.h
+++ b/WebKit/mac/Storage/WebDatabaseQuotaManager.h
@@ -23,7 +23,10 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#import "WebSecurityOriginInternal.h"
+#import "WebQuotaManager.h"
+
+@interface WebDatabaseQuotaManager : NSObject <WebQuotaManager> {
+ WebSecurityOrigin *_origin;
+}
-@interface WebApplicationCacheSecurityOrigin : WebSecurityOrigin
@end
diff --git a/WebKit/mac/Storage/WebDatabaseQuotaManager.mm b/WebKit/mac/Storage/WebDatabaseQuotaManager.mm
new file mode 100644
index 0000000..e26ae33
--- /dev/null
+++ b/WebKit/mac/Storage/WebDatabaseQuotaManager.mm
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2007, 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "WebDatabaseQuotaManager.h"
+
+#import "WebSecurityOriginInternal.h"
+#import <WebCore/DatabaseTracker.h>
+
+using namespace WebCore;
+
+@implementation WebDatabaseQuotaManager
+
+- (id)initWithOrigin:(WebSecurityOrigin *)origin
+{
+ self = [super init];
+ if (!self)
+ return nil;
+
+ _origin = origin;
+ return self;
+}
+
+- (WebSecurityOrigin *)origin
+{
+ return _origin;
+}
+
+- (unsigned long long)usage
+{
+#if ENABLE(DATABASE)
+ return DatabaseTracker::tracker().usageForOrigin([_origin _core]);
+#else
+ return 0;
+#endif
+}
+
+- (unsigned long long)quota
+{
+#if ENABLE(DATABASE)
+ return DatabaseTracker::tracker().quotaForOrigin([_origin _core]);
+#else
+ return 0;
+#endif
+}
+
+// If the quota is set to a value lower than the current usage, that quota will
+// "stick" but no data will be purged to meet the new quota. This will simply
+// prevent new data from being added to databases in that origin.
+- (void)setQuota:(unsigned long long)quota
+{
+#if ENABLE(DATABASE)
+ DatabaseTracker::tracker().setQuota([_origin _core], quota);
+#endif
+}
+
+@end
diff --git a/WebKit/mac/Storage/WebDatabaseTrackerClient.h b/WebKit/mac/Storage/WebDatabaseTrackerClient.h
index d06cfe9..cbb5eb7 100644
--- a/WebKit/mac/Storage/WebDatabaseTrackerClient.h
+++ b/WebKit/mac/Storage/WebDatabaseTrackerClient.h
@@ -36,7 +36,7 @@ public:
virtual ~WebDatabaseTrackerClient();
virtual void dispatchDidModifyOrigin(WebCore::SecurityOrigin*);
- virtual void dispatchDidModifyDatabase(WebCore::SecurityOrigin*, const WebCore::String& databaseIdentifier);
+ virtual void dispatchDidModifyDatabase(WebCore::SecurityOrigin*, const WTF::String& databaseIdentifier);
private:
WebDatabaseTrackerClient();
};
diff --git a/WebKit/mac/WebCoreSupport/WebApplicationCache.h b/WebKit/mac/WebCoreSupport/WebApplicationCache.h
index 78b06b7..976ce18 100644
--- a/WebKit/mac/WebCoreSupport/WebApplicationCache.h
+++ b/WebKit/mac/WebCoreSupport/WebApplicationCache.h
@@ -33,4 +33,6 @@
+ (long long)defaultOriginQuota;
+ (void)setDefaultOriginQuota:(long long)size;
++ (void)deleteAllApplicationCaches;
+
@end
diff --git a/WebKit/mac/WebCoreSupport/WebApplicationCache.mm b/WebKit/mac/WebCoreSupport/WebApplicationCache.mm
index 5c2a208..45f0703 100644
--- a/WebKit/mac/WebCoreSupport/WebApplicationCache.mm
+++ b/WebKit/mac/WebCoreSupport/WebApplicationCache.mm
@@ -39,8 +39,7 @@ using namespace WebCore;
+ (void)setMaximumSize:(long long)size
{
- cacheStorage().empty();
- cacheStorage().vacuumDatabaseFile();
+ [WebApplicationCache deleteAllApplicationCaches];
cacheStorage().setMaximumSize(size);
}
@@ -54,6 +53,12 @@ using namespace WebCore;
cacheStorage().setDefaultOriginQuota(size);
}
++ (void)deleteAllApplicationCaches
+{
+ cacheStorage().empty();
+ cacheStorage().vacuumDatabaseFile();
+}
+
@end
#endif
diff --git a/WebKit/mac/Storage/WebDatabaseSecurityOrigin.h b/WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.h
index a06ca3d..6d30148 100644
--- a/WebKit/mac/Storage/WebDatabaseSecurityOrigin.h
+++ b/WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.h
@@ -23,7 +23,10 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#import "WebSecurityOriginInternal.h"
+#import "WebQuotaManager.h"
+
+@interface WebApplicationCacheQuotaManager : NSObject <WebQuotaManager> {
+ WebSecurityOrigin *_origin;
+}
-@interface WebDatabaseSecurityOrigin : WebSecurityOrigin
@end
diff --git a/WebKit/mac/WebCoreSupport/WebApplicationCacheSecurityOrigin.mm b/WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.mm
index dac41ae..562bb29 100644
--- a/WebKit/mac/WebCoreSupport/WebApplicationCacheSecurityOrigin.mm
+++ b/WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.mm
@@ -23,19 +23,35 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#import "WebApplicationCacheSecurityOrigin.h"
+#import "WebApplicationCacheQuotaManager.h"
+#import "WebSecurityOriginInternal.h"
#import <WebCore/ApplicationCacheStorage.h>
using namespace WebCore;
-@implementation WebApplicationCacheSecurityOrigin
+@implementation WebApplicationCacheQuotaManager
+
+- (id)initWithOrigin:(WebSecurityOrigin *)origin
+{
+ self = [super init];
+ if (!self)
+ return nil;
+
+ _origin = origin;
+ return self;
+}
+
+- (WebSecurityOrigin *)origin
+{
+ return _origin;
+}
- (unsigned long long)usage
{
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
long long usage;
- if (cacheStorage().usageForOrigin(reinterpret_cast<SecurityOrigin*>(_private), usage))
+ if (cacheStorage().usageForOrigin([_origin _core], usage))
return usage;
return 0;
#else
@@ -47,7 +63,7 @@ using namespace WebCore;
{
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
long long quota;
- if (cacheStorage().quotaForOrigin(reinterpret_cast<SecurityOrigin*>(_private), quota))
+ if (cacheStorage().quotaForOrigin([_origin _core], quota))
return quota;
return 0;
#else
@@ -58,7 +74,7 @@ using namespace WebCore;
- (void)setQuota:(unsigned long long)quota
{
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- cacheStorage().storeUpdatedQuotaForOrigin(reinterpret_cast<SecurityOrigin*>(_private), quota);
+ cacheStorage().storeUpdatedQuotaForOrigin([_origin _core], quota);
#endif
}
diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.h b/WebKit/mac/WebCoreSupport/WebChromeClient.h
index 50c159c..e5de14d 100644
--- a/WebKit/mac/WebCoreSupport/WebChromeClient.h
+++ b/WebKit/mac/WebCoreSupport/WebChromeClient.h
@@ -36,7 +36,7 @@
class WebChromeClient : public WebCore::ChromeClient {
public:
WebChromeClient(WebView *webView);
- WebView *webView() { return m_webView; }
+ WebView *webView() const { return m_webView; }
virtual void chromeDestroyed();
@@ -75,16 +75,16 @@ public:
virtual void setResizable(bool);
- virtual void addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type, WebCore::MessageLevel level, const WebCore::String& message, unsigned int lineNumber, const WebCore::String& sourceURL);
+ virtual void addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type, WebCore::MessageLevel level, const WTF::String& message, unsigned int lineNumber, const WTF::String& sourceURL);
virtual bool canRunBeforeUnloadConfirmPanel();
- virtual bool runBeforeUnloadConfirmPanel(const WebCore::String& message, WebCore::Frame* frame);
+ virtual bool runBeforeUnloadConfirmPanel(const WTF::String& message, WebCore::Frame* frame);
virtual void closeWindowSoon();
- virtual void runJavaScriptAlert(WebCore::Frame*, const WebCore::String&);
- virtual bool runJavaScriptConfirm(WebCore::Frame*, const WebCore::String&);
- virtual bool runJavaScriptPrompt(WebCore::Frame*, const WebCore::String& message, const WebCore::String& defaultValue, WebCore::String& result);
+ virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&);
+ virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&);
+ virtual bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String& message, const WTF::String& defaultValue, WTF::String& result);
virtual bool shouldInterruptJavaScript();
virtual bool tabsToLinks() const;
@@ -102,18 +102,18 @@ public:
virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) const;
virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const;
- virtual void setStatusbarText(const WebCore::String&);
+ virtual void setStatusbarText(const WTF::String&);
virtual void scrollbarsModeDidChange() const { }
virtual bool shouldMissingPluginMessageBeButton() const;
virtual void missingPluginButtonClicked(WebCore::Element*) const;
virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags);
- virtual void setToolTip(const WebCore::String&, WebCore::TextDirection);
+ virtual void setToolTip(const WTF::String&, WebCore::TextDirection);
virtual void print(WebCore::Frame*);
#if ENABLE(DATABASE)
- virtual void exceededDatabaseQuota(WebCore::Frame*, const WebCore::String& databaseName);
+ virtual void exceededDatabaseQuota(WebCore::Frame*, const WTF::String& databaseName);
#endif
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
virtual void reachedMaxAppCacheSize(int64_t spaceNeeded);
@@ -126,13 +126,13 @@ public:
#endif
virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
- virtual void chooseIconForFiles(const Vector<WebCore::String>&, WebCore::FileChooser*);
+ virtual void chooseIconForFiles(const Vector<WTF::String>&, WebCore::FileChooser*);
virtual void setCursor(const WebCore::Cursor&);
- virtual WebCore::FloatRect customHighlightRect(WebCore::Node*, const WebCore::AtomicString& type,
+ virtual WebCore::FloatRect customHighlightRect(WebCore::Node*, const WTF::AtomicString& type,
const WebCore::FloatRect& lineRect);
- virtual void paintCustomHighlight(WebCore::Node*, const WebCore::AtomicString& type,
+ virtual void paintCustomHighlight(WebCore::Node*, const WTF::AtomicString& type,
const WebCore::FloatRect& boxRect, const WebCore::FloatRect& lineRect,
bool behindText, bool entireLine);
@@ -143,8 +143,8 @@ public:
virtual void willPopUpMenu(NSMenu *);
- virtual bool shouldReplaceWithGeneratedFileForUpload(const WebCore::String& path, WebCore::String &generatedFilename);
- virtual WebCore::String generateReplacementFile(const WebCore::String& path);
+ virtual bool shouldReplaceWithGeneratedFileForUpload(const WTF::String& path, WTF::String &generatedFilename);
+ virtual WTF::String generateReplacementFile(const WTF::String& path);
virtual void formStateDidChange(const WebCore::Node*) { }
diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.mm b/WebKit/mac/WebCoreSupport/WebChromeClient.mm
index 1a3736e..c80721f 100644
--- a/WebKit/mac/WebCoreSupport/WebChromeClient.mm
+++ b/WebKit/mac/WebCoreSupport/WebChromeClient.mm
@@ -30,8 +30,6 @@
#import "WebChromeClient.h"
#import "DOMNodeInternal.h"
-#import "WebApplicationCacheSecurityOrigin.h"
-#import "WebDatabaseSecurityOrigin.h"
#import "WebDefaultUIDelegate.h"
#import "WebDelegateImplementationCaching.h"
#import "WebElementDictionary.h"
@@ -43,6 +41,7 @@
#import "WebKitSystemInterface.h"
#import "WebNSURLRequestExtras.h"
#import "WebPlugin.h"
+#import "WebQuotaManager.h"
#import "WebSecurityOriginInternal.h"
#import "WebUIDelegatePrivate.h"
#import "WebView.h"
@@ -559,11 +558,11 @@ void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String& database
{
BEGIN_BLOCK_OBJC_EXCEPTIONS;
- WebDatabaseSecurityOrigin *webOrigin = [[WebDatabaseSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:frame->document()->securityOrigin()];
+ WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:frame->document()->securityOrigin()];
// FIXME: remove this workaround once shipping Safari has the necessary delegate implemented.
if (WKAppVersionCheckLessThan(@"com.apple.Safari", -1, 3.1)) {
const unsigned long long defaultQuota = 5 * 1024 * 1024; // 5 megabytes should hopefully be enough to test storage support.
- [webOrigin setQuota:defaultQuota];
+ [[webOrigin databaseQuotaManager] setQuota:defaultQuota];
} else
CallUIDelegate(m_webView, @selector(webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:), kit(frame), webOrigin, (NSString *)databaseName);
[webOrigin release];
@@ -582,7 +581,7 @@ void WebChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin* origin)
{
BEGIN_BLOCK_OBJC_EXCEPTIONS;
- WebApplicationCacheSecurityOrigin *webOrigin = [[WebApplicationCacheSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:origin];
+ WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:origin];
CallUIDelegate(m_webView, @selector(webView:exceededApplicationCacheOriginQuotaForSecurityOrigin:), webOrigin);
[webOrigin release];
diff --git a/WebKit/mac/WebCoreSupport/WebContextMenuClient.h b/WebKit/mac/WebCoreSupport/WebContextMenuClient.h
index c3ff4dd..077cd16 100644
--- a/WebKit/mac/WebCoreSupport/WebContextMenuClient.h
+++ b/WebKit/mac/WebCoreSupport/WebContextMenuClient.h
@@ -43,7 +43,7 @@ public:
virtual void searchWithGoogle(const WebCore::Frame*);
virtual void lookUpInDictionary(WebCore::Frame*);
virtual bool isSpeaking();
- virtual void speak(const WebCore::String&);
+ virtual void speak(const WTF::String&);
virtual void stopSpeaking();
virtual void searchWithSpotlight();
diff --git a/WebKit/mac/WebCoreSupport/WebDragClient.h b/WebKit/mac/WebCoreSupport/WebDragClient.h
index 234090e..216a2fb 100644
--- a/WebKit/mac/WebCoreSupport/WebDragClient.h
+++ b/WebKit/mac/WebCoreSupport/WebDragClient.h
@@ -36,7 +36,7 @@ public:
virtual void dragControllerDestroyed();
virtual WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint& windowPoint);
virtual void startDrag(WebCore::DragImageRef dragImage, const WebCore::IntPoint& dragPos, const WebCore::IntPoint& eventPos, WebCore::Clipboard*, WebCore::Frame*, bool linkDrag);
- virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL& url, const WebCore::String& label, WebCore::Frame*);
+ virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL& url, const WTF::String& label, WebCore::Frame*);
virtual void declareAndWriteDragImage(NSPasteboard*, DOMElement*, NSURL*, NSString*, WebCore::Frame*);
private:
WebView* m_webView;
diff --git a/WebKit/mac/WebCoreSupport/WebEditorClient.h b/WebKit/mac/WebCoreSupport/WebEditorClient.h
index 1cb2a59..e6426aa 100644
--- a/WebKit/mac/WebCoreSupport/WebEditorClient.h
+++ b/WebKit/mac/WebCoreSupport/WebEditorClient.h
@@ -57,7 +57,7 @@ public:
virtual bool shouldBeginEditing(WebCore::Range*);
virtual bool shouldEndEditing(WebCore::Range*);
virtual bool shouldInsertNode(WebCore::Node*, WebCore::Range*, WebCore::EditorInsertAction);
- virtual bool shouldInsertText(const WebCore::String&, WebCore::Range*, WebCore::EditorInsertAction);
+ virtual bool shouldInsertText(const WTF::String&, WebCore::Range*, WebCore::EditorInsertAction);
virtual bool shouldChangeSelectedRange(WebCore::Range* fromRange, WebCore::Range* toRange, WebCore::EAffinity, bool stillSelecting);
virtual bool shouldApplyStyle(WebCore::CSSStyleDeclaration*, WebCore::Range*);
@@ -116,17 +116,17 @@ public:
virtual void textWillBeDeletedInTextField(WebCore::Element*);
virtual void textDidChangeInTextArea(WebCore::Element*);
- virtual void ignoreWordInSpellDocument(const WebCore::String&);
- virtual void learnWord(const WebCore::String&);
+ virtual void ignoreWordInSpellDocument(const WTF::String&);
+ virtual void learnWord(const WTF::String&);
virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength);
- virtual WebCore::String getAutoCorrectSuggestionForMisspelledWord(const WebCore::String&);
+ virtual WTF::String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&);
virtual void checkGrammarOfString(const UChar*, int length, WTF::Vector<WebCore::GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength);
virtual void checkTextOfParagraph(const UChar* text, int length, uint64_t checkingTypes, WTF::Vector<WebCore::TextCheckingResult>& results);
- virtual void updateSpellingUIWithGrammarString(const WebCore::String&, const WebCore::GrammarDetail&);
- virtual void updateSpellingUIWithMisspelledWord(const WebCore::String&);
+ virtual void updateSpellingUIWithGrammarString(const WTF::String&, const WebCore::GrammarDetail&);
+ virtual void updateSpellingUIWithMisspelledWord(const WTF::String&);
virtual void showSpellingUI(bool show);
virtual bool spellingUIIsShowing();
- virtual void getGuessesForWord(const WebCore::String&, WTF::Vector<WebCore::String>& guesses);
+ virtual void getGuessesForWord(const WTF::String&, WTF::Vector<WTF::String>& guesses);
virtual void willSetInputMethodState();
virtual void setInputMethodState(bool enabled);
private:
diff --git a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
index d750a10..d932e66 100644
--- a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
+++ b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
@@ -43,7 +43,6 @@ namespace WebCore {
class CachedFrame;
class HistoryItem;
class ProtectionSpace;
- class String;
class ResourceLoader;
class ResourceRequest;
}
@@ -102,7 +101,7 @@ private:
virtual void dispatchWillClose();
virtual void dispatchDidReceiveIcon();
virtual void dispatchDidStartProvisionalLoad();
- virtual void dispatchDidReceiveTitle(const WebCore::String& title);
+ virtual void dispatchDidReceiveTitle(const WTF::String& title);
virtual void dispatchDidChangeIcons();
virtual void dispatchDidCommitLoad();
virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&);
@@ -116,9 +115,9 @@ private:
virtual void dispatchShow();
virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction,
- const WebCore::String& MIMEType, const WebCore::ResourceRequest&);
+ const WTF::String& MIMEType, const WebCore::ResourceRequest&);
virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction,
- const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const WebCore::String& frameName);
+ const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const WTF::String& frameName);
virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction,
const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>);
virtual void cancelPolicyCheck();
@@ -170,16 +169,16 @@ private:
virtual bool shouldFallBack(const WebCore::ResourceError&);
- virtual WebCore::String userAgent(const WebCore::KURL&);
+ virtual WTF::String userAgent(const WebCore::KURL&);
virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
virtual void transitionToCommittedForNewPage();
virtual bool canHandleRequest(const WebCore::ResourceRequest&) const;
- virtual bool canShowMIMEType(const WebCore::String& MIMEType) const;
- virtual bool representationExistsForURLScheme(const WebCore::String& URLScheme) const;
- virtual WebCore::String generatedMIMETypeForURLScheme(const WebCore::String& URLScheme) const;
+ virtual bool canShowMIMEType(const WTF::String& MIMEType) const;
+ virtual bool representationExistsForURLScheme(const WTF::String& URLScheme) const;
+ virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String& URLScheme) const;
virtual void frameLoadCompleted();
virtual void saveViewStateToItem(WebCore::HistoryItem*);
@@ -189,27 +188,27 @@ private:
virtual void prepareForDataSourceReplacement();
virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
- virtual void setTitle(const WebCore::String& title, const WebCore::KURL&);
+ virtual void setTitle(const WTF::String& title, const WebCore::KURL&);
- virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WebCore::String& name, WebCore::HTMLFrameOwnerElement*,
- const WebCore::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
+ virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WTF::String& name, WebCore::HTMLFrameOwnerElement*,
+ const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
virtual void didTransferChildFrameToNewDocument();
- virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WebCore::String>&,
- const Vector<WebCore::String>&, const WebCore::String&, bool);
+ virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WTF::String>&,
+ const Vector<WTF::String>&, const WTF::String&, bool);
virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL,
- const Vector<WebCore::String>& paramNames, const Vector<WebCore::String>& paramValues);
+ const Vector<WTF::String>& paramNames, const Vector<WTF::String>& paramValues);
#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
virtual PassRefPtr<WebCore::Widget> createMediaPlayerProxyPlugin(const WebCore::IntSize&, WebCore::HTMLMediaElement*, const WebCore::KURL&,
- const Vector<WebCore::String>&, const Vector<WebCore::String>&, const WebCore::String&);
+ const Vector<WTF::String>&, const Vector<WTF::String>&, const WTF::String&);
virtual void hideMediaPlayerProxyPlugin(WebCore::Widget*);
virtual void showMediaPlayerProxyPlugin(WebCore::Widget*);
#endif
- virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WebCore::String& mimeType);
- virtual WebCore::String overrideMediaType() const;
+ virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType);
+ virtual WTF::String overrideMediaType() const;
virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
virtual void documentElementAvailable();
diff --git a/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h b/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
index e908242..3f9df13 100644
--- a/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
+++ b/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
@@ -27,14 +27,11 @@
*/
#import <WebCore/IconDatabaseClient.h>
-
-namespace WebCore {
- class String;
-}
+#import <wtf/Forward.h>
class WebIconDatabaseClient : public WebCore::IconDatabaseClient {
public:
virtual bool performImport();
virtual void dispatchDidRemoveAllIcons();
- virtual void dispatchDidAddIconForPageURL(const WebCore::String& pageURL);
+ virtual void dispatchDidAddIconForPageURL(const WTF::String& pageURL);
};
diff --git a/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm b/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm
index 1b0c834..3651dea 100644
--- a/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm
+++ b/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm
@@ -48,7 +48,7 @@ void WebIconDatabaseClient::dispatchDidRemoveAllIcons()
[pool drain];
}
-void WebIconDatabaseClient::dispatchDidAddIconForPageURL(const WebCore::String& pageURL)
+void WebIconDatabaseClient::dispatchDidAddIconForPageURL(const WTF::String& pageURL)
{
// This is a quick notification that is likely to fire in a rapidly iterating loop
// Therefore we let WebCore handle autorelease by draining its pool "from time to time"
diff --git a/WebKit/mac/WebCoreSupport/WebInspectorClient.h b/WebKit/mac/WebCoreSupport/WebInspectorClient.h
index bd52954..d33e3b9 100644
--- a/WebKit/mac/WebCoreSupport/WebInspectorClient.h
+++ b/WebKit/mac/WebCoreSupport/WebInspectorClient.h
@@ -59,10 +59,10 @@ public:
virtual void highlight(WebCore::Node*);
virtual void hideHighlight();
- virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
- virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
+ virtual void populateSetting(const WTF::String& key, WTF::String* value);
+ virtual void storeSetting(const WTF::String& key, const WTF::String& value);
- virtual bool sendMessageToFrontend(const WebCore::String&);
+ virtual bool sendMessageToFrontend(const WTF::String&);
void releaseFrontendPage();
@@ -79,8 +79,8 @@ public:
virtual void frontendLoaded();
- virtual WebCore::String localizedStringsURL();
- virtual WebCore::String hiddenPanels();
+ virtual WTF::String localizedStringsURL();
+ virtual WTF::String hiddenPanels();
virtual void bringToFront();
virtual void closeWindow();
@@ -89,12 +89,12 @@ public:
virtual void detachWindow();
virtual void setAttachedWindowHeight(unsigned height);
- virtual void inspectedURLChanged(const WebCore::String& newURL);
+ virtual void inspectedURLChanged(const WTF::String& newURL);
private:
void updateWindowTitle() const;
WebView* m_inspectedWebView;
RetainPtr<WebInspectorWindowController> m_windowController;
- WebCore::String m_inspectedURL;
+ WTF::String m_inspectedURL;
};
diff --git a/WebKit/mac/WebCoreSupport/WebPasteboardHelper.h b/WebKit/mac/WebCoreSupport/WebPasteboardHelper.h
index 7092157..2aa37a6 100644
--- a/WebKit/mac/WebCoreSupport/WebPasteboardHelper.h
+++ b/WebKit/mac/WebCoreSupport/WebPasteboardHelper.h
@@ -34,8 +34,8 @@ class WebPasteboardHelper : public WebCore::PasteboardHelper
{
public:
WebPasteboardHelper(WebHTMLView* view) : m_view(view) {}
- virtual WebCore::String urlFromPasteboard(NSPasteboard*, WebCore::String* title) const;
- virtual WebCore::String plainTextFromPasteboard(NSPasteboard*) const;
+ virtual WTF::String urlFromPasteboard(NSPasteboard*, WTF::String* title) const;
+ virtual WTF::String plainTextFromPasteboard(NSPasteboard*) const;
virtual DOMDocumentFragment* fragmentFromPasteboard(NSPasteboard*) const;
virtual NSArray* insertablePasteboardTypes() const;
private:
diff --git a/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h b/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h
index 3d34dbe..53f39f8 100644
--- a/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h
+++ b/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h
@@ -48,108 +48,108 @@ private:
virtual void getPluginInfo(Vector<WebCore::PluginInfo>&);
// WebCore::LocalizationStrategy
- virtual WebCore::String inputElementAltText();
- virtual WebCore::String resetButtonDefaultLabel();
- virtual WebCore::String searchableIndexIntroduction();
- virtual WebCore::String submitButtonDefaultLabel();
- virtual WebCore::String fileButtonChooseFileLabel();
- virtual WebCore::String fileButtonNoFileSelectedLabel();
- virtual WebCore::String copyImageUnknownFileLabel();
+ virtual WTF::String inputElementAltText();
+ virtual WTF::String resetButtonDefaultLabel();
+ virtual WTF::String searchableIndexIntroduction();
+ virtual WTF::String submitButtonDefaultLabel();
+ virtual WTF::String fileButtonChooseFileLabel();
+ virtual WTF::String fileButtonNoFileSelectedLabel();
+ virtual WTF::String copyImageUnknownFileLabel();
#if ENABLE(CONTEXT_MENUS)
- virtual WebCore::String contextMenuItemTagOpenLinkInNewWindow();
- virtual WebCore::String contextMenuItemTagDownloadLinkToDisk();
- virtual WebCore::String contextMenuItemTagCopyLinkToClipboard();
- virtual WebCore::String contextMenuItemTagOpenImageInNewWindow();
- virtual WebCore::String contextMenuItemTagDownloadImageToDisk();
- virtual WebCore::String contextMenuItemTagCopyImageToClipboard();
- virtual WebCore::String contextMenuItemTagOpenFrameInNewWindow();
- virtual WebCore::String contextMenuItemTagCopy();
- virtual WebCore::String contextMenuItemTagGoBack();
- virtual WebCore::String contextMenuItemTagGoForward();
- virtual WebCore::String contextMenuItemTagStop();
- virtual WebCore::String contextMenuItemTagReload();
- virtual WebCore::String contextMenuItemTagCut();
- virtual WebCore::String contextMenuItemTagPaste();
- virtual WebCore::String contextMenuItemTagNoGuessesFound();
- virtual WebCore::String contextMenuItemTagIgnoreSpelling();
- virtual WebCore::String contextMenuItemTagLearnSpelling();
- virtual WebCore::String contextMenuItemTagSearchWeb();
- virtual WebCore::String contextMenuItemTagLookUpInDictionary();
- virtual WebCore::String contextMenuItemTagOpenLink();
- virtual WebCore::String contextMenuItemTagIgnoreGrammar();
- virtual WebCore::String contextMenuItemTagSpellingMenu();
- virtual WebCore::String contextMenuItemTagShowSpellingPanel(bool show);
- virtual WebCore::String contextMenuItemTagCheckSpelling();
- virtual WebCore::String contextMenuItemTagCheckSpellingWhileTyping();
- virtual WebCore::String contextMenuItemTagCheckGrammarWithSpelling();
- virtual WebCore::String contextMenuItemTagFontMenu();
- virtual WebCore::String contextMenuItemTagBold();
- virtual WebCore::String contextMenuItemTagItalic();
- virtual WebCore::String contextMenuItemTagUnderline();
- virtual WebCore::String contextMenuItemTagOutline();
- virtual WebCore::String contextMenuItemTagWritingDirectionMenu();
- virtual WebCore::String contextMenuItemTagTextDirectionMenu();
- virtual WebCore::String contextMenuItemTagDefaultDirection();
- virtual WebCore::String contextMenuItemTagLeftToRight();
- virtual WebCore::String contextMenuItemTagRightToLeft();
- virtual WebCore::String contextMenuItemTagSearchInSpotlight();
- virtual WebCore::String contextMenuItemTagShowFonts();
- virtual WebCore::String contextMenuItemTagStyles();
- virtual WebCore::String contextMenuItemTagShowColors();
- virtual WebCore::String contextMenuItemTagSpeechMenu();
- virtual WebCore::String contextMenuItemTagStartSpeaking();
- virtual WebCore::String contextMenuItemTagStopSpeaking();
- virtual WebCore::String contextMenuItemTagCorrectSpellingAutomatically();
- virtual WebCore::String contextMenuItemTagSubstitutionsMenu();
- virtual WebCore::String contextMenuItemTagShowSubstitutions(bool show);
- virtual WebCore::String contextMenuItemTagSmartCopyPaste();
- virtual WebCore::String contextMenuItemTagSmartQuotes();
- virtual WebCore::String contextMenuItemTagSmartDashes();
- virtual WebCore::String contextMenuItemTagSmartLinks();
- virtual WebCore::String contextMenuItemTagTextReplacement();
- virtual WebCore::String contextMenuItemTagTransformationsMenu();
- virtual WebCore::String contextMenuItemTagMakeUpperCase();
- virtual WebCore::String contextMenuItemTagMakeLowerCase();
- virtual WebCore::String contextMenuItemTagCapitalize();
- virtual WebCore::String contextMenuItemTagChangeBack(const WebCore::String& replacedString);
- virtual WebCore::String contextMenuItemTagInspectElement();
+ virtual WTF::String contextMenuItemTagOpenLinkInNewWindow();
+ virtual WTF::String contextMenuItemTagDownloadLinkToDisk();
+ virtual WTF::String contextMenuItemTagCopyLinkToClipboard();
+ virtual WTF::String contextMenuItemTagOpenImageInNewWindow();
+ virtual WTF::String contextMenuItemTagDownloadImageToDisk();
+ virtual WTF::String contextMenuItemTagCopyImageToClipboard();
+ virtual WTF::String contextMenuItemTagOpenFrameInNewWindow();
+ virtual WTF::String contextMenuItemTagCopy();
+ virtual WTF::String contextMenuItemTagGoBack();
+ virtual WTF::String contextMenuItemTagGoForward();
+ virtual WTF::String contextMenuItemTagStop();
+ virtual WTF::String contextMenuItemTagReload();
+ virtual WTF::String contextMenuItemTagCut();
+ virtual WTF::String contextMenuItemTagPaste();
+ virtual WTF::String contextMenuItemTagNoGuessesFound();
+ virtual WTF::String contextMenuItemTagIgnoreSpelling();
+ virtual WTF::String contextMenuItemTagLearnSpelling();
+ virtual WTF::String contextMenuItemTagSearchWeb();
+ virtual WTF::String contextMenuItemTagLookUpInDictionary();
+ virtual WTF::String contextMenuItemTagOpenLink();
+ virtual WTF::String contextMenuItemTagIgnoreGrammar();
+ virtual WTF::String contextMenuItemTagSpellingMenu();
+ virtual WTF::String contextMenuItemTagShowSpellingPanel(bool show);
+ virtual WTF::String contextMenuItemTagCheckSpelling();
+ virtual WTF::String contextMenuItemTagCheckSpellingWhileTyping();
+ virtual WTF::String contextMenuItemTagCheckGrammarWithSpelling();
+ virtual WTF::String contextMenuItemTagFontMenu();
+ virtual WTF::String contextMenuItemTagBold();
+ virtual WTF::String contextMenuItemTagItalic();
+ virtual WTF::String contextMenuItemTagUnderline();
+ virtual WTF::String contextMenuItemTagOutline();
+ virtual WTF::String contextMenuItemTagWritingDirectionMenu();
+ virtual WTF::String contextMenuItemTagTextDirectionMenu();
+ virtual WTF::String contextMenuItemTagDefaultDirection();
+ virtual WTF::String contextMenuItemTagLeftToRight();
+ virtual WTF::String contextMenuItemTagRightToLeft();
+ virtual WTF::String contextMenuItemTagSearchInSpotlight();
+ virtual WTF::String contextMenuItemTagShowFonts();
+ virtual WTF::String contextMenuItemTagStyles();
+ virtual WTF::String contextMenuItemTagShowColors();
+ virtual WTF::String contextMenuItemTagSpeechMenu();
+ virtual WTF::String contextMenuItemTagStartSpeaking();
+ virtual WTF::String contextMenuItemTagStopSpeaking();
+ virtual WTF::String contextMenuItemTagCorrectSpellingAutomatically();
+ virtual WTF::String contextMenuItemTagSubstitutionsMenu();
+ virtual WTF::String contextMenuItemTagShowSubstitutions(bool show);
+ virtual WTF::String contextMenuItemTagSmartCopyPaste();
+ virtual WTF::String contextMenuItemTagSmartQuotes();
+ virtual WTF::String contextMenuItemTagSmartDashes();
+ virtual WTF::String contextMenuItemTagSmartLinks();
+ virtual WTF::String contextMenuItemTagTextReplacement();
+ virtual WTF::String contextMenuItemTagTransformationsMenu();
+ virtual WTF::String contextMenuItemTagMakeUpperCase();
+ virtual WTF::String contextMenuItemTagMakeLowerCase();
+ virtual WTF::String contextMenuItemTagCapitalize();
+ virtual WTF::String contextMenuItemTagChangeBack(const WTF::String& replacedString);
+ virtual WTF::String contextMenuItemTagInspectElement();
#endif // ENABLE(CONTEXT_MENUS)
- virtual WebCore::String searchMenuNoRecentSearchesText();
- virtual WebCore::String searchMenuRecentSearchesText();
- virtual WebCore::String searchMenuClearRecentSearchesText();
- virtual WebCore::String AXWebAreaText();
- virtual WebCore::String AXLinkText();
- virtual WebCore::String AXListMarkerText();
- virtual WebCore::String AXImageMapText();
- virtual WebCore::String AXHeadingText();
- virtual WebCore::String AXDefinitionListTermText();
- virtual WebCore::String AXDefinitionListDefinitionText();
- virtual WebCore::String AXARIAContentGroupText(const WebCore::String& ariaType);
- virtual WebCore::String AXButtonActionVerb();
- virtual WebCore::String AXRadioButtonActionVerb();
- virtual WebCore::String AXTextFieldActionVerb();
- virtual WebCore::String AXCheckedCheckBoxActionVerb();
- virtual WebCore::String AXUncheckedCheckBoxActionVerb();
- virtual WebCore::String AXMenuListActionVerb();
- virtual WebCore::String AXMenuListPopupActionVerb();
- virtual WebCore::String AXLinkActionVerb();
- virtual WebCore::String missingPluginText();
- virtual WebCore::String crashedPluginText();
- virtual WebCore::String multipleFileUploadText(unsigned numberOfFiles);
- virtual WebCore::String unknownFileSizeText();
- virtual WebCore::String imageTitle(const WebCore::String& filename, const WebCore::IntSize& size);
- virtual WebCore::String mediaElementLoadingStateText();
- virtual WebCore::String mediaElementLiveBroadcastStateText();
- virtual WebCore::String localizedMediaControlElementString(const WebCore::String&);
- virtual WebCore::String localizedMediaControlElementHelpText(const WebCore::String&);
- virtual WebCore::String localizedMediaTimeDescription(float);
- virtual WebCore::String validationMessageValueMissingText();
- virtual WebCore::String validationMessageTypeMismatchText();
- virtual WebCore::String validationMessagePatternMismatchText();
- virtual WebCore::String validationMessageTooLongText();
- virtual WebCore::String validationMessageRangeUnderflowText();
- virtual WebCore::String validationMessageRangeOverflowText();
- virtual WebCore::String validationMessageStepMismatchText();
+ virtual WTF::String searchMenuNoRecentSearchesText();
+ virtual WTF::String searchMenuRecentSearchesText();
+ virtual WTF::String searchMenuClearRecentSearchesText();
+ virtual WTF::String AXWebAreaText();
+ virtual WTF::String AXLinkText();
+ virtual WTF::String AXListMarkerText();
+ virtual WTF::String AXImageMapText();
+ virtual WTF::String AXHeadingText();
+ virtual WTF::String AXDefinitionListTermText();
+ virtual WTF::String AXDefinitionListDefinitionText();
+ virtual WTF::String AXARIAContentGroupText(const WTF::String& ariaType);
+ virtual WTF::String AXButtonActionVerb();
+ virtual WTF::String AXRadioButtonActionVerb();
+ virtual WTF::String AXTextFieldActionVerb();
+ virtual WTF::String AXCheckedCheckBoxActionVerb();
+ virtual WTF::String AXUncheckedCheckBoxActionVerb();
+ virtual WTF::String AXMenuListActionVerb();
+ virtual WTF::String AXMenuListPopupActionVerb();
+ virtual WTF::String AXLinkActionVerb();
+ virtual WTF::String missingPluginText();
+ virtual WTF::String crashedPluginText();
+ virtual WTF::String multipleFileUploadText(unsigned numberOfFiles);
+ virtual WTF::String unknownFileSizeText();
+ virtual WTF::String imageTitle(const WTF::String& filename, const WebCore::IntSize& size);
+ virtual WTF::String mediaElementLoadingStateText();
+ virtual WTF::String mediaElementLiveBroadcastStateText();
+ virtual WTF::String localizedMediaControlElementString(const WTF::String&);
+ virtual WTF::String localizedMediaControlElementHelpText(const WTF::String&);
+ virtual WTF::String localizedMediaTimeDescription(float);
+ virtual WTF::String validationMessageValueMissingText();
+ virtual WTF::String validationMessageTypeMismatchText();
+ virtual WTF::String validationMessagePatternMismatchText();
+ virtual WTF::String validationMessageTooLongText();
+ virtual WTF::String validationMessageRangeUnderflowText();
+ virtual WTF::String validationMessageRangeOverflowText();
+ virtual WTF::String validationMessageStepMismatchText();
// WebCore::VisitedLinkStrategy
virtual bool isLinkVisited(WebCore::Page*, WebCore::LinkHash);
diff --git a/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h b/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h
index a0d398d..ed4ff11 100644
--- a/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h
+++ b/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h
@@ -24,10 +24,10 @@
*/
#import <WebCore/PluginHalterClient.h>
+#import <wtf/Forward.h>
namespace WebCore {
class Node;
- class String;
}
@class WebView;
@@ -36,7 +36,7 @@ class WebPluginHalterClient : public WebCore::PluginHalterClient {
public:
WebPluginHalterClient(WebView *);
- virtual bool shouldHaltPlugin(WebCore::Node*, bool, const WebCore::String&) const;
+ virtual bool shouldHaltPlugin(WebCore::Node*, bool, const WTF::String&) const;
virtual bool enabled() const;
private:
diff --git a/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm b/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm
index 0d49445..f19dcb5 100644
--- a/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm
+++ b/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm
@@ -28,9 +28,12 @@
#import "WebSecurityOriginInternal.h"
+#import "WebApplicationCacheQuotaManager.h"
+#import "WebDatabaseQuotaManager.h"
+#import "WebQuotaManager.h"
#import <WebCore/KURL.h>
-#import <WebCore/SecurityOrigin.h>
#import <WebCore/DatabaseTracker.h>
+#import <WebCore/SecurityOrigin.h>
using namespace WebCore;
@@ -69,38 +72,6 @@ using namespace WebCore;
return reinterpret_cast<SecurityOrigin*>(_private)->port();
}
-// FIXME: https://bugs.webkit.org/show_bug.cgi?id=40627
-// Proper steps should be taken to have subclass implementations of SecurityOrigin's
-// origin, quota, and setQuota methods.
-
-- (unsigned long long)usage
-{
-#if ENABLE(DATABASE)
- return DatabaseTracker::tracker().usageForOrigin(reinterpret_cast<SecurityOrigin*>(_private));
-#else
- return 0;
-#endif
-}
-
-- (unsigned long long)quota
-{
-#if ENABLE(DATABASE)
- return DatabaseTracker::tracker().quotaForOrigin(reinterpret_cast<SecurityOrigin*>(_private));
-#else
- return 0;
-#endif
-}
-
-// If the quota is set to a value lower than the current usage, that quota will
-// "stick" but no data will be purged to meet the new quota. This will simply
-// prevent new data from being added to databases in that origin
-- (void)setQuota:(unsigned long long)quota
-{
-#if ENABLE(DATABASE)
- DatabaseTracker::tracker().setQuota(reinterpret_cast<SecurityOrigin*>(_private), quota);
-#endif
-}
-
- (BOOL)isEqual:(id)anObject
{
if (![anObject isMemberOfClass:[WebSecurityOrigin class]]) {
@@ -114,6 +85,10 @@ using namespace WebCore;
{
if (_private)
reinterpret_cast<SecurityOrigin*>(_private)->deref();
+ if (_applicationCacheQuotaManager)
+ [(NSObject *)_applicationCacheQuotaManager release];
+ if (_databaseQuotaManager)
+ [(NSObject *)_databaseQuotaManager release];
[super dealloc];
}
@@ -147,3 +122,62 @@ using namespace WebCore;
}
@end
+
+
+#pragma mark -
+#pragma mark WebQuotaManagers
+
+@implementation WebSecurityOrigin (WebQuotaManagers)
+
+- (id<WebQuotaManager>)applicationCacheQuotaManager
+{
+ if (!_applicationCacheQuotaManager)
+ _applicationCacheQuotaManager = [[WebApplicationCacheQuotaManager alloc] initWithOrigin:self];
+ return _applicationCacheQuotaManager;
+}
+
+- (id<WebQuotaManager>)databaseQuotaManager
+{
+ if (!_databaseQuotaManager)
+ _databaseQuotaManager = [[WebDatabaseQuotaManager alloc] initWithOrigin:self];
+ return _databaseQuotaManager;
+}
+
+@end
+
+
+#pragma mark -
+#pragma mark Deprecated
+
+// FIXME: The following methods are deprecated and should removed later.
+// Clients should instead get a WebQuotaManager, and query / set the quota via the Manager.
+// NOTE: the <WebCore/DatabaseTracker.h> #include should be removed as well.
+
+@implementation WebSecurityOrigin (Deprecated)
+
+- (unsigned long long)usage
+{
+#if ENABLE(DATABASE)
+ return DatabaseTracker::tracker().usageForOrigin(reinterpret_cast<SecurityOrigin*>(_private));
+#else
+ return 0;
+#endif
+}
+
+- (unsigned long long)quota
+{
+#if ENABLE(DATABASE)
+ return DatabaseTracker::tracker().quotaForOrigin(reinterpret_cast<SecurityOrigin*>(_private));
+#else
+ return 0;
+#endif
+}
+
+- (void)setQuota:(unsigned long long)quota
+{
+#if ENABLE(DATABASE)
+ DatabaseTracker::tracker().setQuota(reinterpret_cast<SecurityOrigin*>(_private), quota);
+#endif
+}
+
+@end
diff --git a/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h b/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h
index 6518a16..2973d92 100644
--- a/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h
+++ b/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2007, 2010 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,9 +27,12 @@
*/
@class WebSecurityOriginPrivate;
+@protocol WebQuotaManager;
@interface WebSecurityOrigin : NSObject {
WebSecurityOriginPrivate *_private;
+ id<WebQuotaManager> _applicationCacheQuotaManager;
+ id<WebQuotaManager> _databaseQuotaManager;
}
- (id)initWithURL:(NSURL *)url;
@@ -40,16 +43,17 @@
// Returns zero if the port is the default port for the protocol, non-zero otherwise.
- (unsigned short)port;
-// Meant to be implemented in a subclass.
-// Returns the current total usage of all relevant items in this security origin in bytes.
-- (unsigned long long)usage;
+@end
-// Meant to be implemented in a subclass.
-// Returns the quota of this security origin in bytes.
-- (unsigned long long)quota;
+@interface WebSecurityOrigin (WebQuotaManagers)
+- (id<WebQuotaManager>)applicationCacheQuotaManager;
+- (id<WebQuotaManager>)databaseQuotaManager;
+@end
-// Meant to be implemented in a subclass.
-// Sets the storage quota in bytes.
+// FIXME: The following methods are deprecated and should removed later.
+// Clients should instead get a WebQuotaManager, and query / set the quota via the Manager.
+@interface WebSecurityOrigin (Deprecated)
+- (unsigned long long)usage;
+- (unsigned long long)quota;
- (void)setQuota:(unsigned long long)quota;
-
@end
diff --git a/WebKit/mac/WebView/WebFrameInternal.h b/WebKit/mac/WebView/WebFrameInternal.h
index 586b4c3..240b09c 100644
--- a/WebKit/mac/WebView/WebFrameInternal.h
+++ b/WebKit/mac/WebView/WebFrameInternal.h
@@ -92,8 +92,8 @@ WebView *getWebView(WebFrame *webFrame);
@interface WebFrame (WebInternal)
-+ (void)_createMainFrameWithPage:(WebCore::Page*)page frameName:(const WebCore::String&)name frameView:(WebFrameView *)frameView;
-+ (PassRefPtr<WebCore::Frame>)_createSubframeWithOwnerElement:(WebCore::HTMLFrameOwnerElement*)ownerElement frameName:(const WebCore::String&)name frameView:(WebFrameView *)frameView;
++ (void)_createMainFrameWithPage:(WebCore::Page*)page frameName:(const WTF::String&)name frameView:(WebFrameView *)frameView;
++ (PassRefPtr<WebCore::Frame>)_createSubframeWithOwnerElement:(WebCore::HTMLFrameOwnerElement*)ownerElement frameName:(const WTF::String&)name frameView:(WebFrameView *)frameView;
- (id)_initWithWebFrameView:(WebFrameView *)webFrameView webView:(WebView *)webView;
- (void)_clearCoreFrame;
diff --git a/WebKit/mac/WebView/WebHTMLView.mm b/WebKit/mac/WebView/WebHTMLView.mm
index 58ce124..0e559b4 100644
--- a/WebKit/mac/WebView/WebHTMLView.mm
+++ b/WebKit/mac/WebView/WebHTMLView.mm
@@ -849,11 +849,12 @@ static NSURL* uniqueURLWithRelativePart(NSString *relativePart)
[webView _setInsertionPasteboard:pasteboard];
DOMRange *range = [self _selectedRange];
+ Frame* coreFrame = core([self _frame]);
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
DOMDocumentFragment *fragment = [self _documentFragmentFromPasteboard:pasteboard inContext:range allowPlainText:allowPlainText];
if (fragment && [self _shouldInsertFragment:fragment replacingDOMRange:range givenAction:WebViewInsertActionPasted])
- [[self _frame] _replaceSelectionWithFragment:fragment selectReplacement:NO smartReplace:[self _canSmartReplaceWithPasteboard:pasteboard] matchStyle:NO];
+ coreFrame->editor()->pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
#else
// Mail is ignoring the frament passed to the delegate and creates a new one.
// We want to avoid creating the fragment twice.
@@ -861,12 +862,12 @@ static NSURL* uniqueURLWithRelativePart(NSString *relativePart)
if ([self _shouldInsertFragment:nil replacingDOMRange:range givenAction:WebViewInsertActionPasted]) {
DOMDocumentFragment *fragment = [self _documentFragmentFromPasteboard:pasteboard inContext:range allowPlainText:allowPlainText];
if (fragment)
- [[self _frame] _replaceSelectionWithFragment:fragment selectReplacement:NO smartReplace:[self _canSmartReplaceWithPasteboard:pasteboard] matchStyle:NO];
+ coreFrame->editor()->pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
}
} else {
DOMDocumentFragment *fragment = [self _documentFragmentFromPasteboard:pasteboard inContext:range allowPlainText:allowPlainText];
if (fragment && [self _shouldInsertFragment:fragment replacingDOMRange:range givenAction:WebViewInsertActionPasted])
- [[self _frame] _replaceSelectionWithFragment:fragment selectReplacement:NO smartReplace:[self _canSmartReplaceWithPasteboard:pasteboard] matchStyle:NO];
+ coreFrame->editor()->pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
}
#endif
[webView _setInsertionPasteboard:nil];
diff --git a/WebKit/mac/WebView/WebPreferences.mm b/WebKit/mac/WebView/WebPreferences.mm
index 7ec2439..c46dca7 100644
--- a/WebKit/mac/WebView/WebPreferences.mm
+++ b/WebKit/mac/WebView/WebPreferences.mm
@@ -998,7 +998,6 @@ static WebCacheModel cacheModelForMainBundle(void)
- (int64_t)applicationCacheTotalQuota
{
- ASSERT([self _longLongValueForKey:WebKitApplicationCacheTotalQuota] == [WebApplicationCache maximumSize]);
return [self _longLongValueForKey:WebKitApplicationCacheTotalQuota];
}
@@ -1012,7 +1011,6 @@ static WebCacheModel cacheModelForMainBundle(void)
- (int64_t)applicationCacheDefaultOriginQuota
{
- ASSERT([self _longLongValueForKey:WebKitApplicationCacheDefaultOriginQuota] == [WebApplicationCache defaultOriginQuota]);
return [self _longLongValueForKey:WebKitApplicationCacheDefaultOriginQuota];
}
diff --git a/WebKit/mac/WebView/WebViewData.h b/WebKit/mac/WebView/WebViewData.h
index d097c4c..3b80a89 100644
--- a/WebKit/mac/WebView/WebViewData.h
+++ b/WebKit/mac/WebView/WebViewData.h
@@ -79,7 +79,7 @@ extern int pluginDatabaseClientCount;
float zoomMultiplier;
NSString *applicationNameForUserAgent;
- WebCore::String userAgent;
+ WTF::String userAgent;
BOOL userAgentOverridden;
WebPreferences *preferences;
diff --git a/WebKit/mac/WebView/WebViewInternal.h b/WebKit/mac/WebView/WebViewInternal.h
index f95d3d3..71a2660 100644
--- a/WebKit/mac/WebView/WebViewInternal.h
+++ b/WebKit/mac/WebView/WebViewInternal.h
@@ -36,8 +36,9 @@
#ifdef __cplusplus
#import <WebCore/WebCoreKeyboardUIMode.h>
+#include <wtf/Forward.h>
+
namespace WebCore {
- class String;
class Frame;
class KURL;
class KeyboardEvent;
diff --git a/WebKit/qt/Api/qgraphicswebview.cpp b/WebKit/qt/Api/qgraphicswebview.cpp
index 53c1494..47ab82a 100644
--- a/WebKit/qt/Api/qgraphicswebview.cpp
+++ b/WebKit/qt/Api/qgraphicswebview.cpp
@@ -241,7 +241,7 @@ QGraphicsWebView::QGraphicsWebView(QGraphicsItem* parent)
: QGraphicsWidget(parent)
, d(new QGraphicsWebViewPrivate(this))
{
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, true);
#endif
setAcceptDrops(true);
@@ -417,7 +417,7 @@ void QGraphicsWebViewPrivate::detachCurrentPage()
if (!page)
return;
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
page->d->view.clear();
#else
page->d->view = 0;
diff --git a/WebKit/qt/Api/qwebdatabase_p.h b/WebKit/qt/Api/qwebdatabase_p.h
index 9ae8fc8..ec03ea5 100644
--- a/WebKit/qt/Api/qwebdatabase_p.h
+++ b/WebKit/qt/Api/qwebdatabase_p.h
@@ -29,7 +29,7 @@
class QWebDatabasePrivate : public QSharedData {
public:
- WebCore::String name;
+ WTF::String name;
WTF::RefPtr<WebCore::SecurityOrigin> origin;
};
diff --git a/WebKit/qt/Api/qwebframe.cpp b/WebKit/qt/Api/qwebframe.cpp
index e90367e..0bb6922 100644
--- a/WebKit/qt/Api/qwebframe.cpp
+++ b/WebKit/qt/Api/qwebframe.cpp
@@ -36,6 +36,7 @@
#include "GraphicsContext.h"
#include "HTMLMetaElement.h"
#include "HitTestResult.h"
+#include "HTTPParsers.h"
#include "IconDatabase.h"
#include "InspectorController.h"
#include "JSDOMBinding.h"
@@ -178,7 +179,7 @@ void QWEBKIT_EXPORT qtwebkit_webframe_scrollRecursively(QWebFrame* qFrame, int d
QWebFrameData::QWebFrameData(WebCore::Page* parentPage, WebCore::Frame* parentFrame,
WebCore::HTMLFrameOwnerElement* ownerFrameElement,
- const WebCore::String& frameName)
+ const WTF::String& frameName)
: name(frameName)
, ownerElement(ownerFrameElement)
, page(parentPage)
@@ -753,7 +754,7 @@ void QWebFrame::load(const QNetworkRequest &req,
case QNetworkAccessManager::PostOperation:
request.setHTTPMethod("POST");
break;
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
case QNetworkAccessManager::DeleteOperation:
request.setHTTPMethod("DELETE");
break;
@@ -808,7 +809,7 @@ void QWebFrame::setHtml(const QString &html, const QUrl &baseUrl)
WebCore::ResourceRequest request(kurl);
const QByteArray utf8 = html.toUtf8();
WTF::RefPtr<WebCore::SharedBuffer> data = WebCore::SharedBuffer::create(utf8.constData(), utf8.length());
- WebCore::SubstituteData substituteData(data, WebCore::String("text/html"), WebCore::String("utf-8"), KURL());
+ WebCore::SubstituteData substituteData(data, WTF::String("text/html"), WTF::String("utf-8"), KURL());
d->frame->loader()->load(request, substituteData, false);
}
@@ -830,10 +831,15 @@ void QWebFrame::setContent(const QByteArray &data, const QString &mimeType, cons
KURL kurl(baseUrl);
WebCore::ResourceRequest request(kurl);
WTF::RefPtr<WebCore::SharedBuffer> buffer = WebCore::SharedBuffer::create(data.constData(), data.length());
- QString actualMimeType = mimeType;
- if (actualMimeType.isEmpty())
+ QString actualMimeType;
+ WTF::String encoding;
+ if (mimeType.isEmpty())
actualMimeType = QLatin1String("text/html");
- WebCore::SubstituteData substituteData(buffer, WebCore::String(actualMimeType), WebCore::String(), KURL());
+ else {
+ actualMimeType = extractMIMETypeFromMediaType(mimeType);
+ encoding = extractCharsetFromMediaType(mimeType);
+ }
+ WebCore::SubstituteData substituteData(buffer, WTF::String(actualMimeType), encoding, KURL());
d->frame->loader()->load(request, substituteData, false);
}
diff --git a/WebKit/qt/Api/qwebframe_p.h b/WebKit/qt/Api/qwebframe_p.h
index 62bd59e..15b0549 100644
--- a/WebKit/qt/Api/qwebframe_p.h
+++ b/WebKit/qt/Api/qwebframe_p.h
@@ -44,16 +44,16 @@ class QWebFrameData {
public:
QWebFrameData(WebCore::Page*, WebCore::Frame* parentFrame = 0,
WebCore::HTMLFrameOwnerElement* = 0,
- const WebCore::String& frameName = WebCore::String());
+ const WTF::String& frameName = WTF::String());
WebCore::KURL url;
- WebCore::String name;
+ WTF::String name;
WebCore::HTMLFrameOwnerElement* ownerElement;
WebCore::Page* page;
RefPtr<WebCore::Frame> frame;
WebCore::FrameLoaderClientQt* frameLoaderClient;
- WebCore::String referrer;
+ WTF::String referrer;
bool allowsScrolling;
int marginWidth;
int marginHeight;
diff --git a/WebKit/qt/Api/qwebkitplatformplugin.h b/WebKit/qt/Api/qwebkitplatformplugin.h
index 32d22d4..3c56c98 100644
--- a/WebKit/qt/Api/qwebkitplatformplugin.h
+++ b/WebKit/qt/Api/qwebkitplatformplugin.h
@@ -81,6 +81,20 @@ Q_SIGNALS:
void notificationClosed();
};
+class QWebHapticFeedbackPlayer
+{
+public:
+ enum HapticStrength {
+ None, Weak, Medium, Strong
+ };
+
+ enum HapticEvent {
+ Press, Release
+ };
+
+ virtual void playHapticFeedback(const HapticEvent, const QString& hapticType, const HapticStrength) = 0;
+};
+
class QWebKitPlatformPlugin
{
public:
@@ -88,15 +102,17 @@ public:
enum Extension {
MultipleSelections,
- Notifications
+ Notifications,
+ Haptics
};
virtual bool supportsExtension(Extension extension) const = 0;
virtual QWebSelectMethod* createSelectInputMethod() const = 0;
virtual QWebNotificationPresenter* createNotificationPresenter() const = 0;
+ virtual QWebHapticFeedbackPlayer* createHapticFeedbackPlayer() const = 0;
};
-Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.2");
+Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.3");
#endif // QWEBKITPLATFORMPLUGIN_H
diff --git a/WebKit/qt/Api/qwebpage.cpp b/WebKit/qt/Api/qwebpage.cpp
index a8bd06a..516ebc9 100644
--- a/WebKit/qt/Api/qwebpage.cpp
+++ b/WebKit/qt/Api/qwebpage.cpp
@@ -252,7 +252,7 @@ static inline Qt::DropAction dragOpToDropAction(unsigned actions)
QWebPagePrivate::QWebPagePrivate(QWebPage *qq)
: q(qq)
, client(0)
-#if QT_VERSION < 0x040600
+#if QT_VERSION < QT_VERSION_CHECK(4, 6, 0)
, view(0)
#endif
, clickCausedFocus(false)
@@ -1131,7 +1131,7 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev)
{
WebCore::Frame *frame = page->focusController()->focusedOrMainFrame();
WebCore::Editor *editor = frame->editor();
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
QInputMethodEvent::Attribute selection(QInputMethodEvent::Selection, 0, 0, QVariant());
#endif
@@ -1172,7 +1172,7 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev)
}
break;
}
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
case QInputMethodEvent::Selection: {
selection = a;
hasSelection = true;
@@ -1190,7 +1190,7 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev)
// 3. populated preedit with a selection attribute, and start/end of 0 or non-0 updates selection of supplied preedit text
// 4. otherwise event is updating supplied pre-edit text
QString preedit = ev->preeditString();
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
if (hasSelection) {
QString text = (renderTextControl) ? QString(renderTextControl->text()) : QString();
if (preedit.isEmpty() && selection.start + selection.length > 0)
@@ -1473,7 +1473,7 @@ QVariant QWebPage::inputMethodQuery(Qt::InputMethodQuery property) const
return QVariant();
}
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
case Qt::ImAnchorPosition: {
if (renderTextControl) {
if (editor->hasComposition()) {
@@ -1978,7 +1978,7 @@ void QWebPage::setView(QWidget* view)
*/
QWidget *QWebPage::view() const
{
-#if QT_VERSION < 0x040600
+#if QT_VERSION < QT_VERSION_CHECK(4, 6, 0)
return d->view;
#else
return d->view.data();
diff --git a/WebKit/qt/Api/qwebpage.h b/WebKit/qt/Api/qwebpage.h
index f0d2438..14f3b8b 100644
--- a/WebKit/qt/Api/qwebpage.h
+++ b/WebKit/qt/Api/qwebpage.h
@@ -217,6 +217,7 @@ public:
inline qreal initialScaleFactor() const { return m_initialScaleFactor; };
inline qreal minimumScaleFactor() const { return m_minimumScaleFactor; };
inline qreal maximumScaleFactor() const { return m_maximumScaleFactor; };
+ inline int targetDensityDpi() const { return m_targetDensityDpi; };
inline bool isUserScalable() const { return m_isUserScalable; };
inline bool isValid() const { return m_isValid; };
inline QSize size() const { return m_size; };
@@ -226,6 +227,7 @@ public:
qreal m_initialScaleFactor;
qreal m_minimumScaleFactor;
qreal m_maximumScaleFactor;
+ int m_targetDensityDpi;
bool m_isUserScalable;
bool m_isValid;
QSize m_size;
diff --git a/WebKit/qt/Api/qwebview.cpp b/WebKit/qt/Api/qwebview.cpp
index 773c79a..5e7265f 100644
--- a/WebKit/qt/Api/qwebview.cpp
+++ b/WebKit/qt/Api/qwebview.cpp
@@ -349,7 +349,7 @@ void QWebViewPrivate::detachCurrentPage()
return;
if (page) {
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
page->d->view.clear();
#else
page->d->view = 0;
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index b49385a..4f2845f 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,226 @@
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebCoreSupport/FrameLoaderClientQt.h:
+ * WebCoreSupport/InspectorClientQt.h:
+
+2010-08-08 Ariya Hidayat <ariya@sencha.com>
+
+ Reviewed by Antonio Gomes.
+
+ Inconsistent Qt version checks
+ https://bugs.webkit.org/show_bug.cgi?id=43695
+
+ Use QT_VERSION_CHECK macro instead of encoded hex.
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebView::QGraphicsWebView):
+ (QGraphicsWebViewPrivate::detachCurrentPage):
+ * Api/qwebframe.cpp:
+ (QWebFrame::load):
+ * Api/qwebpage.cpp:
+ (QWebPagePrivate::QWebPagePrivate):
+ (QWebPagePrivate::inputMethodEvent):
+ (QWebPage::inputMethodQuery):
+ (QWebPage::view):
+ * Api/qwebview.cpp:
+ (QWebViewPrivate::detachCurrentPage):
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::setInputMethodState):
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::createPlugin):
+ * WebCoreSupport/PageClientQt.cpp:
+ * WebCoreSupport/PageClientQt.h:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * WebCoreSupport/FrameLoaderClientQt.h:
+ * WebCoreSupport/InspectorClientQt.h:
+
+2010-08-06 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Move Qt's popup menu implementation from WebCore to WebKit layer
+ https://bugs.webkit.org/show_bug.cgi?id=43427
+
+ After PopupMenu changes in bug 42592 class QtAbstractWebPopup became unecessary and
+ there is no need to keep any Qt specific code for popup menus in WebCore/platform/qt.
+
+ PopupMenuQt has been moved from WebCore/platform/qt to WebKit/qt/WebCoreSupport and
+ assumed the responsibilities of QtAbstractWebPopup. SearchPopupMenuQt has been moved
+ to WebKit/qt/WebCoreSupport as well.
+
+ All classes that previously inherited from QtAbstractWebPopup now inherit from
+ QWebSelectMethod and QtPlatformPlugin's method createSelectInputMethod now returns an
+ instance of class QWebSelectMethod instead of QtAbstractWebPopup.
+
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::createSelectPopup):
+ (WebCore::ChromeClientQt::createPopupMenu):
+ (WebCore::ChromeClientQt::createSearchPopupMenu):
+ * WebCoreSupport/ChromeClientQt.h:
+ * WebCoreSupport/PopupMenuQt.cpp: Added.
+ (SelectData::SelectData):
+ (SelectData::itemText):
+ (SelectData::itemToolTip):
+ (SelectData::itemIsEnabled):
+ (SelectData::itemCount):
+ (SelectData::itemIsSelected):
+ (SelectData::multiple):
+ (SelectData::itemType):
+ (WebCore::PopupMenuQt::PopupMenuQt):
+ (WebCore::PopupMenuQt::~PopupMenuQt):
+ (WebCore::PopupMenuQt::disconnectClient):
+ (WebCore::PopupMenuQt::show):
+ (WebCore::PopupMenuQt::didHide):
+ (WebCore::PopupMenuQt::hide):
+ (WebCore::PopupMenuQt::updateFromElement):
+ (WebCore::PopupMenuQt::selectItem):
+ * WebCoreSupport/PopupMenuQt.h: Added.
+ * WebCoreSupport/QtFallbackWebPopup.cpp:
+ (WebCore::QtFallbackWebPopupCombo::hidePopup):
+ (WebCore::QtFallbackWebPopup::QtFallbackWebPopup):
+ (WebCore::QtFallbackWebPopup::show):
+ (WebCore::QtFallbackWebPopup::populate):
+ (WebCore::QtFallbackWebPopup::activeChanged):
+ (WebCore::QtFallbackWebPopup::pageClient):
+ * WebCoreSupport/QtFallbackWebPopup.h:
+ (WebCore::QtFallbackWebPopup::setGeometry):
+ (WebCore::QtFallbackWebPopup::geometry):
+ (WebCore::QtFallbackWebPopup::setFont):
+ (WebCore::QtFallbackWebPopup::font):
+ * WebCoreSupport/QtMaemoWebPopup.cpp:
+ (WebCore::Maemo5Popup::populateList):
+ (WebCore::QtMaemoWebPopup::QtMaemoWebPopup):
+ (WebCore::QtMaemoWebPopup::createSingleSelectionPopup):
+ (WebCore::QtMaemoWebPopup::createMultipleSelectionPopup):
+ (WebCore::QtMaemoWebPopup::createPopup):
+ (WebCore::QtMaemoWebPopup::show):
+ (WebCore::QtMaemoWebPopup::popupClosed):
+ (WebCore::QtMaemoWebPopup::itemClicked):
+ (WebCore::Maemo5SingleSelectionPopup::Maemo5SingleSelectionPopup):
+ (WebCore::Maemo5MultipleSelectionPopup::Maemo5MultipleSelectionPopup):
+ * WebCoreSupport/QtMaemoWebPopup.h:
+ (WebCore::Maemo5Popup::Maemo5Popup):
+ * WebCoreSupport/QtPlatformPlugin.cpp:
+ (WebCore::QtPlatformPlugin::createSelectInputMethod):
+ * WebCoreSupport/QtPlatformPlugin.h:
+ * WebCoreSupport/SearchPopupMenuQt.cpp: Added.
+ (WebCore::SearchPopupMenuQt::SearchPopupMenuQt):
+ (WebCore::SearchPopupMenuQt::popupMenu):
+ (WebCore::SearchPopupMenuQt::saveRecentSearches):
+ (WebCore::SearchPopupMenuQt::loadRecentSearches):
+ (WebCore::SearchPopupMenuQt::enabled):
+ * WebCoreSupport/SearchPopupMenuQt.h: Added.
+
+2010-08-06 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Reviewed by Antonio Gomes.
+
+ [Qt] Add support for the Android viewport meta tag extensions.
+ http://webkit.org/b/43567
+
+ * Api/qwebpage.h:
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::didReceiveViewportArguments):
+
+2010-08-05 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebCoreSupport/FrameLoaderClientQt.h:
+ * WebCoreSupport/InspectorClientQt.h:
+
+2010-08-05 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Tor Arne Vestbø.
+
+ [Qt] Clean up the input method handling
+ https://bugs.webkit.org/show_bug.cgi?id=43545
+
+ Replace the way of individually setting input method hints by
+ many calls to QWidget::setInputMethodHints with one single call.
+
+ This is more efficient by requiring less updates in the input
+ method hint.
+
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::setInputMethodState):
+ * WebCoreSupport/PageClientQt.cpp:
+ (WebCore::PageClientQWidget::setInputMethodHints):
+ (WebCore::PageClientQGraphicsWidget::setInputMethodHints):
+ * WebCoreSupport/PageClientQt.h:
+
+2010-08-05 David Leong <david.leong@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Input mode states are not reset after entering a password field
+ https://bugs.webkit.org/show_bug.cgi?id=43530
+
+ Input mode hints are not reset if clicking on password <input> elements then
+ clicking on <textarea> elements
+
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::setInputMethodState):
+ * tests/qwebview/resources/input_types.html:
+ * tests/qwebview/tst_qwebview.cpp:
+ (tst_QWebView::focusInputTypes):
+
+
+2010-08-04 Pierre Rossi <pierre.rossi@nokia.com>
+
+ Reviewed by Antonio Gomes.
+
+ [Qt] QWebFrame::setContent() does not respect charset provided in the mimeType
+ https://bugs.webkit.org/show_bug.cgi?id=43125
+
+ * Api/qwebframe.cpp:
+ (QWebFrame::setContent):
+ * tests/qwebframe/tst_qwebframe.cpp:
+
+2010-08-03 Noam Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Edits to bridge documentation
+ https://bugs.webkit.org/show_bug.cgi?id=43012
+
+ * docs/qtwebkit-bridge.qdoc:
+ * docs/webkitsnippets/qtwebkit_bridge_snippets.cpp:
+ (wrapInFunction):
+
+2010-08-03 Kim Grönholm <kim.1.gronholm@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Platform plugin interface for Haptics
+ https://bugs.webkit.org/show_bug.cgi?id=43143
+
+ Platform plugin interface for playing haptic feedback
+
+ * Api/qwebkitplatformplugin.h:
+ (QWebHapticFeedbackPlayer::):
+ (QWebKitPlatformPlugin::):
+ * examples/platformplugin/WebPlugin.h:
+ (WebPlugin::createHapticFeedbackPlayer):
+ * examples/platformplugin/qwebkitplatformplugin.h:
+ (QWebHapticFeedbackPlayer::):
+ (QWebKitPlatformPlugin::):
+
2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Darin Fisher.
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
index a0bac72..0b77ea6 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
@@ -591,16 +591,16 @@ IntRect ChromeClientQt::visibleRectForTiledBackingStore() const
}
#endif
-QtAbstractWebPopup* ChromeClientQt::createSelectPopup()
+QWebSelectMethod* ChromeClientQt::createSelectPopup() const
{
- QtAbstractWebPopup* result = m_platformPlugin.createSelectInputMethod();
+ QWebSelectMethod* result = m_platformPlugin.createSelectInputMethod();
if (result)
return result;
#if defined(Q_WS_MAEMO_5)
return new QtMaemoWebPopup;
#elif !defined(QT_NO_COMBOBOX)
- return new QtFallbackWebPopup;
+ return new QtFallbackWebPopup(this);
#else
return 0;
#endif
@@ -620,6 +620,7 @@ void ChromeClientQt::didReceiveViewportArguments(Frame* frame, const ViewportArg
hints.m_initialScaleFactor = arguments.initialScale;
hints.m_minimumScaleFactor = arguments.minimumScale;
hints.m_maximumScaleFactor = arguments.maximumScale;
+ hints.m_targetDensityDpi = arguments.targetDensityDpi;
hints.m_isUserScalable = isUserScalable;
emit m_webPage->viewportChangeRequested(hints);
@@ -632,12 +633,12 @@ bool ChromeClientQt::selectItemWritingDirectionIsNatural()
PassRefPtr<PopupMenu> ChromeClientQt::createPopupMenu(PopupMenuClient* client) const
{
- return adoptRef(new PopupMenuQt(client));
+ return adoptRef(new PopupMenuQt(client, this));
}
PassRefPtr<SearchPopupMenu> ChromeClientQt::createSearchPopupMenu(PopupMenuClient* client) const
{
- return adoptRef(new SearchPopupMenuQt(client));
+ return adoptRef(new SearchPopupMenuQt(createPopupMenu(client)));
}
} // namespace WebCore
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
index aab2813..55edc50 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
@@ -174,21 +174,21 @@ namespace WebCore {
virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const;
virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const;
- QtAbstractWebPopup* createSelectPopup();
+ QWebSelectMethod* createSelectPopup() const;
virtual void didReceiveViewportArguments(Frame*, const ViewportArguments&) const;
QWebPage* m_webPage;
WebCore::KURL lastHoverURL;
- WebCore::String lastHoverTitle;
- WebCore::String lastHoverContent;
+ WTF::String lastHoverTitle;
+ WTF::String lastHoverContent;
bool toolBarsVisible;
bool statusBarVisible;
bool menuBarVisible;
QEventLoop* m_eventLoop;
- QtPlatformPlugin m_platformPlugin;
+ mutable QtPlatformPlugin m_platformPlugin;
};
}
diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
index 54993b1..0a9a0ea 100644
--- a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
@@ -595,7 +595,9 @@ void EditorClientQt::setInputMethodState(bool active)
{
QWebPageClient* webPageClient = m_page->d->client;
if (webPageClient) {
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+ Qt::InputMethodHints hints;
+
HTMLInputElement* inputElement = 0;
Frame* frame = m_page->d->page->focusController()->focusedOrMainFrame();
if (frame && frame->document() && frame->document()->focusedNode())
@@ -604,24 +606,29 @@ void EditorClientQt::setInputMethodState(bool active)
if (inputElement) {
// Set input method hints for "number", "tel", "email", "url" and "password" input elements.
- webPageClient->setInputMethodHint(Qt::ImhDialableCharactersOnly, inputElement->isTelephoneField());
- webPageClient->setInputMethodHint(Qt::ImhDigitsOnly, inputElement->isNumberField());
- webPageClient->setInputMethodHint(Qt::ImhEmailCharactersOnly, inputElement->isEmailField());
- webPageClient->setInputMethodHint(Qt::ImhUrlCharactersOnly, inputElement->isUrlField());
+ if (inputElement->isTelephoneField())
+ hints |= Qt::ImhDialableCharactersOnly;
+ if (inputElement->isNumberField())
+ hints |= Qt::ImhDigitsOnly;
+ if (inputElement->isEmailField())
+ hints |= Qt::ImhEmailCharactersOnly;
+ if (inputElement->isUrlField())
+ hints |= Qt::ImhUrlCharactersOnly;
// Setting the Qt::WA_InputMethodEnabled attribute true and Qt::ImhHiddenText flag
// for password fields. The Qt platform is responsible for determining which widget
// will receive input method events for password fields.
- bool isPasswordField = inputElement->isPasswordField();
- webPageClient->setInputMethodHint(Qt::ImhHiddenText, isPasswordField);
- if (isPasswordField)
+ if (inputElement->isPasswordField()) {
active = true;
+ hints |= Qt::ImhHiddenText;
+ }
}
#if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
// disables auto-uppercase and predictive text for mobile devices
- webPageClient->setInputMethodHint(Qt::ImhNoAutoUppercase, true);
- webPageClient->setInputMethodHint(Qt::ImhNoPredictiveText, true);
+ hints |= Qt::ImhNoAutoUppercase;
+ hints |= Qt::ImhNoPredictiveText;
#endif // Q_WS_MAEMO_5 || Q_WS_MAEMO_6 || Q_OS_SYMBIAN
+ webPageClient->setInputMethodHints(hints);
#endif // QT_VERSION check
webPageClient->setInputMethodEnabled(active);
}
diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 9fe66d9..cf76dae 100644
--- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -1067,7 +1067,7 @@ WebCore::Frame* FrameLoaderClientQt::dispatchCreatePage()
return newPage->mainFrame()->d->frame;
}
-void FrameLoaderClientQt::dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const WebCore::String& MIMEType, const WebCore::ResourceRequest&)
+void FrameLoaderClientQt::dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const WTF::String& MIMEType, const WebCore::ResourceRequest&)
{
// we need to call directly here
const ResourceResponse& response = m_frame->loader()->activeDocumentLoader()->response();
@@ -1079,7 +1079,7 @@ void FrameLoaderClientQt::dispatchDecidePolicyForMIMEType(FramePolicyFunction fu
callPolicyFunction(function, PolicyDownload);
}
-void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>, const WebCore::String&)
+void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>, const WTF::String&)
{
Q_ASSERT(m_webFrame);
QNetworkRequest r(request.toNetworkRequest(m_webFrame));
@@ -1321,7 +1321,7 @@ private:
}
};
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
class QtPluginGraphicsWidget: public Widget
{
public:
@@ -1439,7 +1439,7 @@ PassRefPtr<Widget> FrameLoaderClientQt::createPlugin(const IntSize& pluginSize,
w->setFrameRect(IntRect(0, 0, 0, 0));
return w;
}
-#if QT_VERSION >= 0x040600
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
QGraphicsWidget* graphicsWidget = qobject_cast<QGraphicsWidget*>(object);
if (graphicsWidget) {
QGraphicsObject* parentWidget = 0;
diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
index ec672f5..00a073f 100644
--- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
+++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
@@ -40,6 +40,7 @@
#include "ResourceResponse.h"
#include <QUrl>
#include <qobject.h>
+#include <wtf/Forward.h>
class QWebFrame;
namespace WebCore {
@@ -49,7 +50,6 @@ class DocumentLoader;
class Element;
class FormState;
class NavigationAction;
-class String;
class ResourceLoader;
struct LoadErrorResetToken;
@@ -121,8 +121,8 @@ public:
virtual WebCore::Frame* dispatchCreatePage();
virtual void dispatchShow();
- virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const WebCore::String&, const WebCore::ResourceRequest&);
- virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<FormState>, const WebCore::String&);
+ virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const WTF::String&, const WebCore::ResourceRequest&);
+ virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<FormState>, const WTF::String&);
virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<FormState>);
virtual void cancelPolicyCheck();
diff --git a/WebKit/qt/WebCoreSupport/InspectorClientQt.h b/WebKit/qt/WebCoreSupport/InspectorClientQt.h
index c996f55..9526c88 100644
--- a/WebKit/qt/WebCoreSupport/InspectorClientQt.h
+++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.h
@@ -35,6 +35,7 @@
#include "OwnPtr.h"
#include "PassOwnPtr.h"
#include <QtCore/QString>
+#include <wtf/Forward.h>
class QWebPage;
class QWebView;
@@ -42,7 +43,6 @@ class QWebView;
namespace WebCore {
class Node;
class Page;
-class String;
class InspectorClientQt : public InspectorClient {
public:
diff --git a/WebKit/qt/WebCoreSupport/PageClientQt.cpp b/WebKit/qt/WebCoreSupport/PageClientQt.cpp
index 90a5a63..62f48ff 100644
--- a/WebKit/qt/WebCoreSupport/PageClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/PageClientQt.cpp
@@ -48,13 +48,10 @@ bool PageClientQWidget::inputMethodEnabled() const
return view->testAttribute(Qt::WA_InputMethodEnabled);
}
-#if QT_VERSION >= 0x040600
-void PageClientQWidget::setInputMethodHint(Qt::InputMethodHint hint, bool enable)
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+void PageClientQWidget::setInputMethodHints(Qt::InputMethodHints hints)
{
- if (enable)
- view->setInputMethodHints(view->inputMethodHints() | hint);
- else
- view->setInputMethodHints(view->inputMethodHints() & ~hint);
+ view->setInputMethodHints(hints);
}
#endif
@@ -232,13 +229,10 @@ bool PageClientQGraphicsWidget::inputMethodEnabled() const
#endif
}
-#if QT_VERSION >= 0x040600
-void PageClientQGraphicsWidget::setInputMethodHint(Qt::InputMethodHint hint, bool enable)
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+void PageClientQGraphicsWidget::setInputMethodHints(Qt::InputMethodHints hints)
{
- if (enable)
- view->setInputMethodHints(view->inputMethodHints() | hint);
- else
- view->setInputMethodHints(view->inputMethodHints() & ~hint);
+ view->setInputMethodHints(hints);
}
#endif
diff --git a/WebKit/qt/WebCoreSupport/PageClientQt.h b/WebKit/qt/WebCoreSupport/PageClientQt.h
index 1204afc..65ee849 100644
--- a/WebKit/qt/WebCoreSupport/PageClientQt.h
+++ b/WebKit/qt/WebCoreSupport/PageClientQt.h
@@ -58,8 +58,8 @@ public:
virtual void update(const QRect& dirtyRect);
virtual void setInputMethodEnabled(bool enable);
virtual bool inputMethodEnabled() const;
-#if QT_VERSION >= 0x040600
- virtual void setInputMethodHint(Qt::InputMethodHint hint, bool enable);
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+ virtual void setInputMethodHints(Qt::InputMethodHints hints);
#endif
#ifndef QT_NO_CURSOR
@@ -146,8 +146,8 @@ public:
virtual void update(const QRect& dirtyRect);
virtual void setInputMethodEnabled(bool enable);
virtual bool inputMethodEnabled() const;
-#if QT_VERSION >= 0x040600
- virtual void setInputMethodHint(Qt::InputMethodHint hint, bool enable);
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+ virtual void setInputMethodHints(Qt::InputMethodHints hints);
#endif
#ifndef QT_NO_CURSOR
diff --git a/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp b/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp
new file mode 100644
index 0000000..56a0fac
--- /dev/null
+++ b/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp
@@ -0,0 +1,158 @@
+/*
+ * This file is part of the popup menu implementation for <select> elements in WebCore.
+ *
+ * Copyright (C) 2008, 2009, 2010 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
+ * Coypright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "config.h"
+#include "PopupMenuQt.h"
+
+#include "ChromeClientQt.h"
+#include "FrameView.h"
+#include "PopupMenuClient.h"
+#include "QtFallbackWebPopup.h"
+
+#include "qwebkitplatformplugin.h"
+
+class SelectData : public QWebSelectData {
+public:
+ SelectData(WebCore::PopupMenuClient*& data) : d(data) {}
+
+ virtual ItemType itemType(int) const;
+ virtual QString itemText(int idx) const { return QString(d ? d->itemText(idx) : ""); }
+ virtual QString itemToolTip(int idx) const { return QString(d ? d->itemToolTip(idx) : ""); }
+ virtual bool itemIsEnabled(int idx) const { return d ? d->itemIsEnabled(idx) : false; }
+ virtual int itemCount() const { return d ? d->listSize() : 0; }
+ virtual bool itemIsSelected(int idx) const { return d ? d->itemIsSelected(idx) : false; }
+ virtual bool multiple() const;
+
+private:
+ WebCore::PopupMenuClient*& d;
+};
+
+bool SelectData::multiple() const
+{
+ if (!d)
+ return false;
+
+#if ENABLE(NO_LISTBOX_RENDERING)
+ WebCore::ListPopupMenuClient* client = static_cast<WebCore::ListPopupMenuClient*>(d);
+ return client && client->multiple();
+#else
+ return false;
+#endif
+}
+
+SelectData::ItemType SelectData::itemType(int idx) const
+{
+ if (!d)
+ return SelectData::Option;
+
+ if (d->itemIsSeparator(idx))
+ return SelectData::Separator;
+ if (d->itemIsLabel(idx))
+ return SelectData::Group;
+ return SelectData::Option;
+}
+
+namespace WebCore {
+
+PopupMenuQt::PopupMenuQt(PopupMenuClient* client, const ChromeClientQt* chromeClient)
+ : m_popupClient(client)
+ , m_popup(0)
+ , m_selectData(0)
+ , m_chromeClient(chromeClient)
+{
+}
+
+PopupMenuQt::~PopupMenuQt()
+{
+ delete m_selectData;
+ delete m_popup;
+}
+
+void PopupMenuQt::disconnectClient()
+{
+ m_popupClient = 0;
+}
+
+void PopupMenuQt::show(const IntRect& rect, FrameView* view, int index)
+{
+ if (!m_popupClient)
+ return;
+
+ if (!m_popup) {
+ m_popup = m_chromeClient->createSelectPopup();
+ connect(m_popup, SIGNAL(didHide()), this, SLOT(didHide()));
+ connect(m_popup, SIGNAL(selectItem(int, bool, bool)), this, SLOT(selectItem(int, bool, bool)));
+ }
+
+ if (QtFallbackWebPopup* fallback = qobject_cast<QtFallbackWebPopup*>(m_popup)) {
+ QRect geometry(rect);
+ geometry.moveTopLeft(view->contentsToWindow(rect.topLeft()));
+ fallback->setGeometry(geometry);
+ fallback->setFont(m_popupClient->menuStyle().font().font());
+ }
+
+ if (m_selectData)
+ delete m_selectData;
+ m_selectData = new SelectData(m_popupClient);
+ m_popup->show(*m_selectData);
+}
+
+void PopupMenuQt::didHide()
+{
+ if (m_popupClient)
+ m_popupClient->popupDidHide();
+}
+
+void PopupMenuQt::hide()
+{
+ if (!m_popup)
+ m_popup->hide();
+}
+
+void PopupMenuQt::updateFromElement()
+{
+ if (m_popupClient)
+ m_popupClient->setTextFromItem(m_popupClient->selectedIndex());
+}
+
+void PopupMenuQt::selectItem(int index, bool ctrl, bool shift)
+{
+ if (!m_popupClient)
+ return;
+
+#if ENABLE(NO_LISTBOX_RENDERING)
+ ListPopupMenuClient* client = static_cast<ListPopupMenuClient*>(m_popupClient);
+ if (client) {
+ client->listBoxSelectItem(index, ctrl, shift);
+ return;
+ }
+#endif
+
+ m_popupClient->valueChanged(index);
+}
+
+}
+
+// vim: ts=4 sw=4 et
diff --git a/WebCore/platform/qt/PopupMenuQt.h b/WebKit/qt/WebCoreSupport/PopupMenuQt.h
index 25a9f76..837f323 100644
--- a/WebCore/platform/qt/PopupMenuQt.h
+++ b/WebKit/qt/WebCoreSupport/PopupMenuQt.h
@@ -21,17 +21,21 @@
#define PopupMenuQt_h
#include "PopupMenu.h"
+#include <QObject>
+
+class QWebSelectData;
+class QWebSelectMethod;
namespace WebCore {
+class ChromeClientQt;
class FrameView;
-class QtAbstractWebPopup;
-class Scrollbar;
class PopupMenuClient;
-class PopupMenuQt : public PopupMenu {
+class PopupMenuQt : public QObject, public PopupMenu {
+ Q_OBJECT
public:
- PopupMenuQt(PopupMenuClient*);
+ PopupMenuQt(PopupMenuClient*, const ChromeClientQt*);
~PopupMenuQt();
virtual void show(const IntRect&, FrameView*, int index);
@@ -39,9 +43,15 @@ public:
virtual void updateFromElement();
virtual void disconnectClient();
+private slots:
+ void didHide();
+ void selectItem(int index, bool ctrl, bool shift);
+
private:
PopupMenuClient* m_popupClient;
- QtAbstractWebPopup* m_popup;
+ QWebSelectMethod* m_popup;
+ QWebSelectData* m_selectData;
+ const ChromeClientQt* m_chromeClient;
};
}
diff --git a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
index 59ac87b..21678c7 100644
--- a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
+++ b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
@@ -23,8 +23,7 @@
#ifndef QT_NO_COMBOBOX
-#include "HostWindow.h"
-#include "PopupMenuClient.h"
+#include "ChromeClientQt.h"
#include "QWebPageClient.h"
#include "qgraphicswebview.h"
#include <QAbstractItemView>
@@ -79,7 +78,7 @@ void QtFallbackWebPopupCombo::hidePopup()
return;
m_ownerPopup.m_popupVisible = false;
- m_ownerPopup.popupDidHide();
+ emit m_ownerPopup.didHide();
m_ownerPopup.destroyPopup();
}
@@ -97,10 +96,10 @@ bool QtFallbackWebPopupCombo::eventFilter(QObject* watched, QEvent* event)
// QtFallbackWebPopup
-QtFallbackWebPopup::QtFallbackWebPopup()
- : QtAbstractWebPopup()
- , m_popupVisible(false)
+QtFallbackWebPopup::QtFallbackWebPopup(const ChromeClientQt* chromeClient)
+ : m_popupVisible(false)
, m_combo(0)
+ , m_chromeClient(chromeClient)
{
}
@@ -109,7 +108,7 @@ QtFallbackWebPopup::~QtFallbackWebPopup()
destroyPopup();
}
-void QtFallbackWebPopup::show()
+void QtFallbackWebPopup::show(const QWebSelectData& data)
{
if (!pageClient())
return;
@@ -123,8 +122,7 @@ void QtFallbackWebPopup::show()
connect(m_combo, SIGNAL(activated(int)),
SLOT(activeChanged(int)), Qt::QueuedConnection);
- populate();
- m_combo->setCurrentIndex(currentIndex());
+ populate(data);
QRect rect = geometry();
if (QGraphicsWebView *webView = qobject_cast<QGraphicsWebView*>(pageClient()->pluginParent())) {
@@ -212,7 +210,7 @@ void QtFallbackWebPopup::destroyPopup()
}
}
-void QtFallbackWebPopup::populate()
+void QtFallbackWebPopup::populate(const QWebSelectData& data)
{
QStandardItemModel* model = qobject_cast<QStandardItemModel*>(m_combo->model());
Q_ASSERT(model);
@@ -220,21 +218,28 @@ void QtFallbackWebPopup::populate()
#if !defined(Q_WS_S60)
m_combo->setFont(font());
#endif
- for (int i = 0; i < itemCount(); ++i) {
- switch (itemType(i)) {
- case Separator:
+
+ int currentIndex = -1;
+ for (int i = 0; i < data.itemCount(); ++i) {
+ switch (data.itemType(i)) {
+ case QWebSelectData::Separator:
m_combo->insertSeparator(i);
break;
- case Group:
- m_combo->insertItem(i, itemText(i));
+ case QWebSelectData::Group:
+ m_combo->insertItem(i, data.itemText(i));
model->item(i)->setEnabled(false);
break;
- case Option:
- m_combo->insertItem(i, itemText(i));
- model->item(i)->setEnabled(itemIsEnabled(i));
+ case QWebSelectData::Option:
+ m_combo->insertItem(i, data.itemText(i));
+ model->item(i)->setEnabled(data.itemIsEnabled(i));
+ if (data.itemIsSelected(i))
+ currentIndex = i;
break;
}
}
+
+ if (currentIndex >= 0)
+ m_combo->setCurrentIndex(currentIndex);
}
void QtFallbackWebPopup::activeChanged(int index)
@@ -242,7 +247,12 @@ void QtFallbackWebPopup::activeChanged(int index)
if (index < 0)
return;
- valueChanged(index);
+ emit selectItem(index, false, false);
+}
+
+QWebPageClient* QtFallbackWebPopup::pageClient() const
+{
+ return m_chromeClient->platformPageClient();
}
}
diff --git a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h
index e6c371f..7c98fb4 100644
--- a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h
+++ b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h
@@ -20,7 +20,9 @@
#ifndef QtFallbackWebPopup_h
#define QtFallbackWebPopup_h
-#include "QtAbstractWebPopup.h"
+#include "Platform.h"
+#include "qwebkitplatformplugin.h"
+
#include <QComboBox>
#ifndef QT_NO_COMBOBOX
@@ -29,21 +31,30 @@ QT_BEGIN_NAMESPACE
class QGraphicsProxyWidget;
QT_END_NAMESPACE
+class QWebPageClient;
+
namespace WebCore {
+class ChromeClientQt;
class QtFallbackWebPopupCombo;
-class QtFallbackWebPopup : public QObject, public QtAbstractWebPopup {
+class QtFallbackWebPopup : public QWebSelectMethod {
Q_OBJECT
public:
- QtFallbackWebPopup();
+ QtFallbackWebPopup(const ChromeClientQt*);
~QtFallbackWebPopup();
- virtual void show();
+ virtual void show(const QWebSelectData&);
virtual void hide();
void destroyPopup();
+ void setGeometry(const QRect& rect) { m_geometry = rect; }
+ QRect geometry() const { return m_geometry; }
+
+ void setFont(const QFont& font) { m_font = font; }
+ QFont font() const { return m_font; }
+
private slots:
void activeChanged(int);
@@ -51,8 +62,13 @@ private:
friend class QtFallbackWebPopupCombo;
bool m_popupVisible;
QtFallbackWebPopupCombo* m_combo;
+ const ChromeClientQt* m_chromeClient;
+ QRect m_geometry;
+ QFont m_font;
+
+ QWebPageClient* pageClient() const;
- void populate();
+ void populate(const QWebSelectData&);
#if ENABLE(SYMBIAN_DIALOG_PROVIDERS)
void showS60BrowserDialog();
#endif
diff --git a/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.cpp b/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.cpp
index 29a16cb..90af0c6 100644
--- a/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.cpp
+++ b/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.cpp
@@ -41,11 +41,11 @@ void Maemo5Popup::populateList()
{
QListWidgetItem* listItem;
for (int i = 0; i < m_data.itemCount(); ++i) {
- if (m_data.itemType(i) == QtAbstractWebPopup::Option) {
+ if (m_data.itemType(i) == QWebSelectData::Option) {
listItem = new QListWidgetItem(m_data.itemText(i));
m_list->addItem(listItem);
listItem->setSelected(m_data.itemIsSelected(i));
- } else if (m_data.itemType(i) == QtAbstractWebPopup::Group) {
+ } else if (m_data.itemType(i) == QWebSelectData::Group) {
listItem = new QListWidgetItem(m_data.itemText(i));
m_list->addItem(listItem);
listItem->setSelected(false);
@@ -62,8 +62,7 @@ void Maemo5Popup::onItemSelected(QListWidgetItem* item)
}
QtMaemoWebPopup::QtMaemoWebPopup()
- : QtAbstractWebPopup()
- , m_popup(0)
+ : m_popup(0)
{
}
@@ -73,30 +72,30 @@ QtMaemoWebPopup::~QtMaemoWebPopup()
m_popup->deleteLater();
}
-Maemo5Popup* QtMaemoWebPopup::createSingleSelectionPopup()
+Maemo5Popup* QtMaemoWebPopup::createSingleSelectionPopup(const QWebSelectData& data)
{
- return new Maemo5SingleSelectionPopup(*this);
+ return new Maemo5SingleSelectionPopup(data);
}
-Maemo5Popup* QtMaemoWebPopup::createMultipleSelectionPopup()
+Maemo5Popup* QtMaemoWebPopup::createMultipleSelectionPopup(const QWebSelectData& data)
{
- return new Maemo5MultipleSelectionPopup(*this);
+ return new Maemo5MultipleSelectionPopup(data);
}
-Maemo5Popup* QtMaemoWebPopup::createPopup()
+Maemo5Popup* QtMaemoWebPopup::createPopup(const QWebSelectData& data)
{
- Maemo5Popup* result = multiple() ? createMultipleSelectionPopup() : createSingleSelectionPopup();
+ Maemo5Popup* result = data.multiple() ? createMultipleSelectionPopup(data) : createSingleSelectionPopup(data);
connect(result, SIGNAL(finished(int)), this, SLOT(popupClosed()));
connect(result, SIGNAL(itemClicked(int)), this, SLOT(itemClicked(int)));
return result;
}
-void QtMaemoWebPopup::show()
+void QtMaemoWebPopup::show(const QWebSelectData& data)
{
- if (!pageClient() || m_popup)
+ if (m_popup)
return;
- m_popup = createPopup();
+ m_popup = createPopup(data);
m_popup->show();
}
@@ -115,15 +114,15 @@ void QtMaemoWebPopup::popupClosed()
m_popup->deleteLater();
m_popup = 0;
- popupDidHide();
+ emit didHide();
}
void QtMaemoWebPopup::itemClicked(int idx)
{
- selectItem(idx, true, false);
+ emit selectItem(idx, true, false);
}
-Maemo5SingleSelectionPopup::Maemo5SingleSelectionPopup(QtAbstractWebPopup& data)
+Maemo5SingleSelectionPopup::Maemo5SingleSelectionPopup(const QWebSelectData& data)
: Maemo5Popup(data)
{
// we try to get the standard list title the web browser is using
@@ -170,7 +169,7 @@ private:
QPixmap tickMark;
};
-Maemo5MultipleSelectionPopup::Maemo5MultipleSelectionPopup(QtAbstractWebPopup& data)
+Maemo5MultipleSelectionPopup::Maemo5MultipleSelectionPopup(const QWebSelectData& data)
: Maemo5Popup(data)
{
// we try to get the standard list title the web browser is using
diff --git a/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.h b/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.h
index a163a20..5433b75 100644
--- a/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.h
+++ b/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.h
@@ -20,7 +20,7 @@
#ifndef QtMaemoWebPopup_h
#define QtMaemoWebPopup_h
-#include "QtAbstractWebPopup.h"
+#include "qwebkitplatformplugin.h"
#include <QDialog>
@@ -33,7 +33,7 @@ namespace WebCore {
class Maemo5Popup : public QDialog {
Q_OBJECT
public:
- Maemo5Popup(QtAbstractWebPopup& data) : m_data(data) {}
+ Maemo5Popup(const QWebSelectData& data) : m_data(data) {}
signals:
void itemClicked(int idx);
@@ -44,18 +44,18 @@ protected slots:
protected:
void populateList();
- QtAbstractWebPopup& m_data;
+ const QWebSelectData& m_data;
QListWidget* m_list;
};
-class QtMaemoWebPopup : public QObject, public QtAbstractWebPopup {
+class QtMaemoWebPopup : public QWebSelectMethod {
Q_OBJECT
public:
QtMaemoWebPopup();
~QtMaemoWebPopup();
- virtual void show();
+ virtual void show(const QWebSelectData& data);
virtual void hide();
private slots:
@@ -65,23 +65,23 @@ private slots:
private:
Maemo5Popup* m_popup;
- Maemo5Popup* createPopup();
- Maemo5Popup* createSingleSelectionPopup();
- Maemo5Popup* createMultipleSelectionPopup();
+ Maemo5Popup* createPopup(const QWebSelectData& data);
+ Maemo5Popup* createSingleSelectionPopup(const QWebSelectData& data);
+ Maemo5Popup* createMultipleSelectionPopup(const QWebSelectData& data);
};
class Maemo5SingleSelectionPopup : public Maemo5Popup {
Q_OBJECT
public:
- Maemo5SingleSelectionPopup(QtAbstractWebPopup& data);
+ Maemo5SingleSelectionPopup(const QWebSelectData& data);
};
class Maemo5MultipleSelectionPopup : public Maemo5Popup {
Q_OBJECT
public:
- Maemo5MultipleSelectionPopup(QtAbstractWebPopup& data);
+ Maemo5MultipleSelectionPopup(const QWebSelectData& data);
};
}
diff --git a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp
index cccb07c..fd86e91 100644
--- a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp
+++ b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp
@@ -29,70 +29,6 @@
namespace WebCore {
-class SelectData : public QWebSelectData {
-public:
- SelectData(QtAbstractWebPopup* data) : d(data) {}
-
- virtual ItemType itemType(int) const;
- virtual QString itemText(int index) const { return d->itemText(index); }
- virtual QString itemToolTip(int index) const { return d->itemToolTip(index); }
- virtual bool itemIsEnabled(int index) const { return d->itemIsEnabled(index); }
- virtual int itemCount() const { return d->itemCount(); }
- virtual bool itemIsSelected(int index) const { return d->itemIsSelected(index); }
- virtual bool multiple() const { return d->multiple(); }
-
-private:
- QtAbstractWebPopup* d;
-};
-
-QWebSelectData::ItemType SelectData::itemType(int index) const
-{
- switch (d->itemType(index)) {
- case QtAbstractWebPopup::Separator: return Separator;
- case QtAbstractWebPopup::Group: return Group;
- default: return Option;
- }
-}
-
-SelectInputMethodWrapper::SelectInputMethodWrapper(QWebSelectMethod* plugin)
- : m_plugin(plugin)
- , m_selectData(0)
-{
- m_plugin->setParent(this);
- connect(m_plugin, SIGNAL(didHide()), this, SLOT(didHide()));
- connect(m_plugin, SIGNAL(selectItem(int, bool, bool)), this, SLOT(selectItem(int, bool, bool)));
-}
-
-SelectInputMethodWrapper::~SelectInputMethodWrapper()
-{
- delete m_selectData;
-}
-
-void SelectInputMethodWrapper::show()
-{
- if (m_selectData)
- delete m_selectData;
- m_selectData = new SelectData(this);
- m_plugin->show(*m_selectData);
-}
-
-void SelectInputMethodWrapper::hide()
-{
- m_plugin->hide();
-}
-
-void SelectInputMethodWrapper::selectItem(int index, bool allowMultiplySelections, bool shift)
-{
- QtAbstractWebPopup::selectItem(index, allowMultiplySelections, shift);
-}
-
-void SelectInputMethodWrapper::didHide()
-{
- QtAbstractWebPopup::popupDidHide();
-}
-
-// QtPlatformPlugin
-
bool QtPlatformPlugin::load(const QString& file)
{
m_loader.setFileName(file);
@@ -152,17 +88,10 @@ QWebKitPlatformPlugin* QtPlatformPlugin::plugin()
return m_plugin;
}
-QtAbstractWebPopup* QtPlatformPlugin::createSelectInputMethod()
+QWebSelectMethod* QtPlatformPlugin::createSelectInputMethod()
{
QWebKitPlatformPlugin* p = plugin();
- if (!p)
- return 0;
-
- QWebSelectMethod* selector = p->createSelectInputMethod();
- if (!selector)
- return 0;
-
- return new SelectInputMethodWrapper(selector);
+ return p ? p->createSelectInputMethod() : 0;
}
diff --git a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h
index 2de4859..9bdab75 100644
--- a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h
+++ b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h
@@ -21,8 +21,6 @@
#ifndef QtPlatformPlugin_h
#define QtPlatformPlugin_h
-#include "QtAbstractWebPopup.h"
-#include <QObject>
#include <QPluginLoader>
class QWebSelectMethod;
@@ -32,30 +30,12 @@ class QWebSelectData;
namespace WebCore {
-class SelectInputMethodWrapper : public QObject, public QtAbstractWebPopup {
- Q_OBJECT
-public:
- SelectInputMethodWrapper(QWebSelectMethod* plugin);
- ~SelectInputMethodWrapper();
-
- virtual void show();
- virtual void hide();
-
-private Q_SLOTS:
- void selectItem(int index, bool allowMultiplySelections, bool shift);
- void didHide();
-
-private:
- QWebSelectMethod* m_plugin;
- QWebSelectData* m_selectData;
-};
-
class QtPlatformPlugin {
public:
QtPlatformPlugin() : m_loaded(false), m_plugin(0) {}
~QtPlatformPlugin();
- QtAbstractWebPopup* createSelectInputMethod();
+ QWebSelectMethod* createSelectInputMethod();
QWebNotificationPresenter* createNotificationPresenter();
QWebKitPlatformPlugin* plugin();
diff --git a/WebCore/platform/qt/SearchPopupMenuQt.cpp b/WebKit/qt/WebCoreSupport/SearchPopupMenuQt.cpp
index a05d08a..63437cf 100644
--- a/WebCore/platform/qt/SearchPopupMenuQt.cpp
+++ b/WebKit/qt/WebCoreSupport/SearchPopupMenuQt.cpp
@@ -23,8 +23,8 @@
namespace WebCore {
-SearchPopupMenuQt::SearchPopupMenuQt(PopupMenuClient* client)
- : m_popup(adoptRef(new PopupMenuQt(client)))
+SearchPopupMenuQt::SearchPopupMenuQt(PassRefPtr<PopupMenu> popup)
+ : m_popup(popup)
{
}
diff --git a/WebCore/platform/qt/SearchPopupMenuQt.h b/WebKit/qt/WebCoreSupport/SearchPopupMenuQt.h
index 0fbeafd..11a9641 100644
--- a/WebCore/platform/qt/SearchPopupMenuQt.h
+++ b/WebKit/qt/WebCoreSupport/SearchPopupMenuQt.h
@@ -21,14 +21,13 @@
#ifndef SearchPopupMenuQt_h
#define SearchPopupMenuQt_h
-#include "PopupMenuQt.h"
#include "SearchPopupMenu.h"
namespace WebCore {
class SearchPopupMenuQt : public SearchPopupMenu {
public:
- SearchPopupMenuQt(PopupMenuClient*);
+ SearchPopupMenuQt(PassRefPtr<PopupMenu> popup);
virtual PopupMenu* popupMenu();
virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
@@ -36,7 +35,7 @@ public:
virtual bool enabled();
private:
- RefPtr<PopupMenuQt> m_popup;
+ RefPtr<PopupMenu> m_popup;
};
}
diff --git a/WebKit/qt/docs/qtwebkit-bridge.qdoc b/WebKit/qt/docs/qtwebkit-bridge.qdoc
index c2a38fd..0947a0a 100644
--- a/WebKit/qt/docs/qtwebkit-bridge.qdoc
+++ b/WebKit/qt/docs/qtwebkit-bridge.qdoc
@@ -7,69 +7,66 @@
\section2 The technology
The QtWebKit bridge is a mechanism that extends WebKit's JavaScript environment to access native
- objects that are represented as \l{QObject}s. It takes advantage of the \l{QObject} introspection,
- a part of the \l{Object Model}, which makes it easy to integrate with the dynamic JavaScript environment,
- for example \l{QObject} properties map directly to JavaScript properties.
-
- For example, both JavaScript and QObjects have properties: a construct that represent a getter/setter
- pair under one name.
+ objects represented as \l{QObject}s. It takes advantage of the \l{QObject} introspection,
+ a part of the \l{Object Model}, which makes it easy to integrate with the dynamic JavaScript environment.
+ For example \l{QObject} properties map directly to JavaScript properties.
\section2 Use Cases
- There are two main use cases for the QtWebKit bridge. Web content in a native application, and Thin Clients.
+ There are two main use cases for the QtWebKit bridge: web content in native applications and thin clients.
- \section3 Web Content in a Native Application
+ \section3 Web Content in Native Applications
This is a common use case in classic Qt application, and a design pattern used by several modern
- applications. For example, an application that contains a media-player, playlist manager, and music store.
+ applications like an application that contains a media-player, playlist manager, and music store.
The playlist manager is usually best authored as a classic desktop application,
- with the native-looking robust \l{QWidget}s helping with producing that application.
- The media-player control, which usually looks custom, can be written using the \l{Graphics View framework}
- or with in a declarative way with \l{QtDeclarative}. The music store, which shows dynamic content
- from the internet and gets modified rapidly, is best authored in HTML and maintained on the server.
+ with the native-looking robust \l{QWidget}s as the application's backbone.
+ The media-player control usually has a custom look and feel and is best written using the \l{Graphics View framework}
+ or \l{QtDeclarative}. The music store, which shows dynamic content
+ from the Internet and gets modified rapidly, is best authored in HTML and maintained on the server.
- With the QtWebKit bridge, that music store component can interact with native parts of the application,
- for example, if a file needs to be saved to a specific location.
+ With the QtWebKit bridge, the music store component can interact with native parts of the application,
+ for example, when a file needs to be saved to a specific location.
- \section3 Thin Client
+ \section3 Thin Clients
- Another use case is using Qt as a native backend to a full web application,
- referred to here as a thin client. In this use-case, the entire UI is driven by
- HTML, JavaScript and CSS, and native Qt-based components are used to allow that application
- access to native features not usually exposed to the web, or to enable helper components that
- are best written with C++.
+ The use case uses Qt as a native backend of a full web application,
+ a so-called thin client. In this use case, the entire UI is driven by
+ HTML, JavaScript and CSS. Additionally, it uses Qt-based components to
+ access native features usually not exposed to the web, or to enable helper
+ components that are best written in C++.
An example for such a client is a UI for a video-on-demand service on a TV. The entire content and
- UI can be kept on the server, served dynamically through HTTP and rendered with WebKit, with additional
- native components for accessing hardware-specific features like extracting the list of images
- out of the video.
+ UI can be kept on the server, served dynamically through HTTP and rendered with WebKit. Additional
+ native components are used to access hardware-specific features like extracting a list of images
+ out of a video stream.
\section2 Difference from Other Bridge Technologies
- Of course QtWebKit is not the only bridge technology out there. NPAPI, for example,
- is a long-time standard or web-native bridging. Due to Qt's meta-object system, full applications
- built partially with web-technologies are much easier to develop. NPAPI, however, is more geared
- towards cross-browser plugins, due to it being an accepted standard.
+ Of course, QtWebKit is not the only bridge technology out there. NPAPI, for example,
+ is a long-time standard for web-native bridging. Due to Qt's meta-object system, full applications
+ leveraging web technologies are much easier to develop with the QtWebKit bridge than with NPAPI. NPAPI, however, is better
+ for cross-browser plugins, due to it being an accepted standard.
When developing a plugin for a browser, NPAPI is recommended. When developing a full application
- that utilizes HTML-rendering, the QtWebKit bridge is recommended.
+ utilizing HTML-rendering, the QtWebKit bridge is recommended.
\section2 Relationship with QtScript
- The QtWebKit bridge is similar to \l{QtScript}, especially to some of the features described in the
- \l{Making Applications Scriptable} page. However, as of Qt 4.7, full QtScript API is not supported for web applications.
- That is planned as an enhancement for future versions. You might notice that some of the features
+ The QtWebKit bridge is similar to \l{QtScript}, especially for some of the features described in the
+ \l{Making Applications Scriptable} page. However, Qt 4.7 does not provide the full QtScript API for web applications.
+ Full support is planned for future versions. You might notice that some of the features
described here are an exact copy of the ones described in the \l{Making Applications Scriptable} page. That is because
the QtWebKit bridge is a subset of that functionality, and this page tries to capture the full
capabilities available through the QtWebKit bridge specifically.
\section1 Accessing QObjects
- \section2 Creating the link via QWebFrame
+ \section2 Making QObjects known to JavaScript via QWebFrame
By default, no QObjects are accessible through the web environment, for security reasons.
- To enable web content access for a native QObject, the application must explicitly grant it access,
- using the following call:
+ When a web application wants to access a native QObject, it must explicitly grant access
+ to this QObject, using the following call:
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 0
@@ -83,13 +80,11 @@
\list
\i \bold{Hybrid C++/script}: C++ application code connects a
- signal to a script function. For example, the script function can be
- a function that the user has typed in, or one that you have read from a
- file. This approach is useful if you have a QObject but don't want
- to expose the object itself to the scripting environment; you just
- want a script to be able to define how a signal should be reacted
- to, and leave it up to the C++ side of your application to establish
- the connection.
+ signal to a script function. This approach is useful if you have
+ a QObject but don't want to expose the object itself to the scripting
+ environment. You just want to define how the script responds to a
+ signal and leave it up to the C++ side of your application to establish
+ the connection between the C++ signal and the JavaScript slot.
\i \bold{Hybrid script/C++}: A script can connect signals and slots
to establish connections between pre-defined objects that the
@@ -109,27 +104,24 @@
\section3 Signal to Function Connections
- \snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 6
-
- In this form of connection, the argument to \c{connect()} is the
- function to connect to the signal.
-
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 7
- The argument can be a JavaScript function, as in the above
- example, or it can be a QObject slot, as in
- the following example:
+ The call to \c{connect()} establishes a connection between the signal
+ \c{somethingChanged} and the slot \c{myInterestingScriptFunction}.
+ Whenever the object \c{myObject} emits the signal \c{somethingChanged},
+ the slot \c{myInterestingScriptFunction} gets called automatically.
+
+ The argument of \c{connect()} can be any JavaScript function as in the above
+ example or a slot of a QObject as in the following example:
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 8
- When the argument is a QObject slot, the argument types of the
- signal and slot do not necessarily have to be compatible;
- If necessary, the QtWebKit bridge will, perform conversion of the signal
- arguments to match the argument types of the slot.
+ When the argument is a slot of a QObject, the argument types of the
+ signal and the slot do not have to be compatible. If possible, the QtWebKit
+ bridge converts the signal arguments such that they match the slot argument.
- To disconnect from a signal, you invoke the signal's
- \c{disconnect()} function, passing the function to disconnect
- as argument:
+ To disconnect a slot from a signal, you call the signal's
+ \c{disconnect()} function with the slot as its argument:
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 9
@@ -140,18 +132,24 @@
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 10
- In this form of the \c{connect()} function, the first argument
- is the object that will be bound to the variable, \c this, when
- the function specified using the second argument is invoked.
+ The call to \c{connect() establishes a connection between the signal
+ \c{somethingChanged} and the slot \c{function}. Whenever the object
+ \c{myObject} emits the signal \c{somethingChanged}, the slot \c{function}
+ of the object \c{thisObject} gets called automatically. Let's illustrate
+ this with an example.
- If you have a push button in a form, you typically want to do
- something involving the form in response to the button's
- \c{clicked} signal; passing the form as the \c this object
- makes sense in such a case.
+ If you have a push button in a form, you typically want the form
+ to do something in response to the button's \c{clicked} signal. The
+ call to \c{connect()} makes sure that the function \c{onClicked()} is
+ called whenever you click on the push button, that is, whenever the
+ the signal \c{clicked()} is emitted by \c{myButton}. The slot \c{onClicked()}
+ prints the value of \c{x} as stored in the \c{form}.
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 11
- To disconnect from the signal, pass the same arguments to \c{disconnect()}:
+ To disconnect a slot from a signal, you pass the same arguments to
+ \c{disconnect()} as you passed to \c{connect()}. In general, this looks
+ as follows:
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 12
@@ -159,19 +157,19 @@
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 14
- This form of the \c{connect()} function requires that the first argument is
- the object that will be bound to the variable \c{this} when a function is
- invoked in response to the signal. The second argument specifies the
- name of a function that is connected to the signal, and this refers to a
- member function of the object passed as the first argument (thisObject
- in the above scheme).
+ This form of the \c{connect()} function requires that the first argument \c{thisObject} is
+ the object that will be bound to \c{this} when the function \c{functionName} is
+ invoked in response to the signal \c{somethingChanged}. The second argument \c{functionName} specifies the
+ name of a function that is connected to the signal. It refers to a
+ member function of the object \c{thisObject}.
Note that the function is resolved when the connection is made, not
when the signal is emitted.
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 15
- To disconnect from the signal, pass the same arguments to \c{disconnect()}:
+ To disconnect from the signal, pass the same arguments to \c{disconnect()}
+ as you passed to \c{connect}:
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 17
@@ -220,17 +218,17 @@
\section3 Invokable Methods
- Both slots and signals are invokable from script by default. In addition, it's also
- possible to define a method that's invokable from script without it being a signal or a slot.
+ Both slots and signals are invokable from scripts by default. In addition, it is also
+ possible to define a method that is invokable from scripts, although the method is neither a signal nor a slot.
This is especially useful for functions with return types, as slots normally do not return anything
- (it would be meaningless to return values from a slot, as the connected signals don't handle the returned data).
+ (it would be meaningless to return a value from a slot, as the connected signals cannot handle return values).
To make a non-slot method invokable, simply add the Q_INVOKABLE macro before its definition:
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 22
\section2 Accessing Properties
- The properties of the QObject are available as properties
+ The properties of a QObject are available as properties
of the corresponding JavaScript object. When you manipulate
a property in script code, the C++ get/set method for that
property will automatically be invoked. For example, if your
@@ -244,8 +242,8 @@
\section2 Accessing Child QObjects
- Every named child of the QObject (that is, for which
- QObject::objectName() is not an empty string) is by default available as
+ Every named child of a QObject (that is, every child for which
+ QObject::objectName() does not return the empty string) is by default available as
a property of the JavaScript wrapper object. For example,
if you have a QDialog with a child widget whose \c{objectName} property is
\c{"okButton"}, you can access this object in script code through
@@ -253,8 +251,8 @@
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 25
- Since \c{objectName} is itself a Q_PROPERTY, you can manipulate
- the name in script code to, for example, rename an object:
+ Because \c{objectName} is itself a Q_PROPERTY, you can manipulate
+ the name in script code to rename an object. For example:
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 26
@@ -270,16 +268,15 @@
\section3 Numbers
All Qt numeric data types are converted to or from a JavaScript number. These include int, short, float,
- double, and the porable Qt types (qreal, qint etc). A special case is \l{QChar};
- If a slot expects a QChar, the QtWebKit bridge would use the unicode value in case of a number,
- or the first character in a string.
+ double, and the portable Qt types (qreal, qint etc). A special case is \l{QChar}.
+ If a slot expects a QChar, the QtWebKit bridge uses the Unicode value in case of a number and the first character in case of a string.
- Note that non-standard (typedefed) number types are not automatically converted to
- or from a JavaScript number - it's advised to use standard number types for signal, slots
+ Note that non-standard (typedef'ed) number types are not automatically converted to
+ or from a JavaScript number - we suggest to use standard number types for signals, slots
and properties.
When a non-number is passed as an argument to a method or property that expects a number,
- the appropriate JavaScript conversion function (parseInt / parseFloat) would be used.
+ the appropriate JavaScript conversion function (parseInt / parseFloat) is used.
\section3 Strings
@@ -287,42 +284,41 @@
will automatically convert the value to a string (if it is not already a string), using the
built-in JavaScript toString method.
- When a QString is passed to JavaScript from a signal or a property, The QtWebKit bridge will
- convert it into a JavaScript string.
+ When a QString is passed to JavaScript from a signal or a property, the QtWebKit bridge
+ converts it into a JavaScript string.
\section3 Date & Time
Both \l{QDate}, \l{QTime} and \l{QDateTime} are automatically translated to or from the JavaScript
- Date object. If a number were passed as an argument to a method that expects one of the date/time
- types, the QtWebKit bridge would treat it as a timestamp. If a sting is passed, QtWebKit would
- try different Qt date parsing functions to find the right one.
+ Date object. If a number is passed as an argument to a method that expects one of the date/time
+ types, the QtWebKit bridge treats it as a timestamp. If a sting is passed, QtWebKit
+ tries the different Qt date parsing functions to perform the right translation.
\section3 Regular Expressions
- The QtWebKit bridge would automatically convert JavaScript RegEx object to a \l{QRegExp}.
- If a string is passed to a method expecting a \l{QRegExp}, the string would be converted
- to that \l{QRegExp}.
+ The QtWebKit bridge automatically converts a JavaScript RegEx object to a \l{QRegExp}.
+ If a string is passed to a method expecting a \l{QRegExp}, the string is converted
+ to a \l{QRegExp}.
\section3 Lists
The QtWebKit bridge treats several types of lists in a special way: \l{QVariantList}, \l{QStringList},
\l{QObjectList} and \l{QList}<int>. When a slot or property expects one of those list types,
- the QtWebKit bridge would try to convert a JavaScript array into that type, converting each of
+ the QtWebKit bridge tries to convert a JavaScript array into that type, converting each of
the array's elements to the single-element type of the list.
- The most useful type of list is perhaps \l{QVariantList}, which can be converted to from any
+ The most useful type of list is \l{QVariantList}, which can be converted to and from any
JavaScript array.
\section3 Compound (JSON) objects
JavaScript compound objects, also known as JSON objects, are variables that hold a list
of key-value pairs, where all the keys are strings and the values can have any type.
- This translates very well to \l{QVariantMap}, which is nothing more than a \l{QMap} of \l{QString}
+ This translates very well to \l{QVariantMap}, which is nothing more than a \l{QMap} from \l{QString}
to \l{QVariant}.
The seamless conversion between JSON objects and \l{QVariantMap} allows for a very convenient
- way of passing arbitrary structured data between C++ and the JavaScript environment. The native \l{QObject} has
- to make sure that compound values are converted to \l{QVariantMap}s and \l{QVariantList}s, and JavaScript is
+ way of passing arbitrary structured data between C++ and the JavaScript environment. If the native \l{QObject} makes sure that compound values are converted to \l{QVariantMap}s and \l{QVariantList}s, JavaScript is
guaranteed to receive them in a meaningful way.
Note that types that are not supported by JSON, such as JavaScript functions and getters/setters,
@@ -330,22 +326,22 @@
\section3 QVariants
- When a slot or property accepts a \l{QVariant}, the QtWebKit bridge would create a \l{QVariant} that best
- matches the argument passed by JavaScript. A string, for example, would become a \l{QVariant} holding a \l{QString},
- a normal JSON object would become a \l{QVariantMap}, and a JavaScript array would become a \l{QVariantList}.
+ When a slot or property accepts a \l{QVariant}, the QtWebKit bridge creates a \l{QVariant} that best
+ matches the argument passed by JavaScript. A string, for example, becomes a \l{QVariant} holding a \l{QString},
+ a normal JSON object becomes a \l{QVariantMap}, and a JavaScript array becomes a \l{QVariantList}.
Using \l{QVariant}s generously in C++ in that way makes C++ programming feel a bit more like JavaScript programming,
- as it adds another level of indirection. Passing \l{QVariant}s around like this q is very flexible, as the program can figure out
- the type of argument in runtime just like JavaScript would do, but it also takes away from the type-safety and robust
- nature of C++. It's recommended to use \l{QVariant}s only for convenience high-level functions, and to keep most of your
- \l{QObject}s somewhat type-safe.
+ as it adds another level of indirection. Passing \l{QVariant}s around like this is very flexible. The program can figure out
+ the type of argument at runtime just like JavaScript would do. But doing so also takes away the type safety and robustness of C++.
+ We recommended to use \l{QVariant}s only for high-level functions, and to keep most of your
+ \l{QObject}s type-safe.
\section3 QObjects
- A pointer to a \l{QObject} or a \l{QWidget} can be passed as payload in signals, slots and properties. That object
- can then be used like an object that's exposed directly; i.e. its slots can be invoked, its signals connected to etc.
+ Pointers to a \l{QObject} or a \l{QWidget} can be used in signals, slots and properties. This object
+ can then be used like an object that is exposed directly. Its slots can be invoked, its signals connected to, etc.
However, this functionality is fairly limited - the type used has to be \l{QObject}* or \l{QWidget}*. If the type
- specified is a pointer to a non-\l{QWidget} subclass of \l{QObject}, the QtWebKit bridge would not recognize it to be
+ specified is a pointer to a non-\l{QWidget} subclass of \l{QObject}, the QtWebKit bridge does not recognize it as
a \l{QObject}.
In general its advised to use care when passing \l{QObject}s as arguments, as those objects don't become owned by
@@ -358,14 +354,14 @@
The QtWebKit bridge handles \l{QPixmap}s and \l{QImage}s in a special way. Since QtWebKit stores \l{QPixmap}s to
represent HTML images, \l{QPixmap}s coming from the native environment can be used directly inside WebKit.
- A \l{QImage} or a \l{QPixmap} coming from the Qt environment would convert to an intermediate JavaScript object,
- that can be represented like this:
+ A \l{QImage} or a \l{QPixmap} coming from Qt is converted to an intermediate JavaScript object,
+ which can be represented like this:
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 1
- The JavaScript environment can then use the pixmap it gets from Qt and display it inside the HTML environment,
- by assigning it to an existing <img /> element using assignToHTMLImageElement. It can also use the toDataURL() function,
- which allows using the pixmap as the src attribute of an image or as a background-image url. Note that the toDataURL()
+ The JavaScript environment can then use the pixmap from Qt and display it inside the HTML environment,
+ by assigning it to an existing \c{<img>} element with \c{assignToHTMLImageElement()}. It can also use the \c{toDataURL()} function,
+ which allows using the pixmap as the \c{src} attribute of an image or as a \c{background-image} URL. Note that the \c{toDataURL()}
function is costly and should be used with caution.
Example code:
@@ -394,30 +390,30 @@
\snippet webkitsnippets/qtwebkit_bridge_snippets.cpp 5
This is specifically useful to create custom renderers or extensions to the web environment. Instead of forcing Qt
- to select the element, the web environment already selects the element and then send the selected element directly to Qt.
+ to select the element, the web environment selects the element and then sends the selected element directly to Qt.
Note that \l{QWebElement}s are not thread safe - an object handling them has to live in the UI thread.
- \section1 Architecture issues
+ \section1 Architecture Issues
\section2 Limiting the Scope of the Hybrid Layer
When using QtWebKit's hybrid features, it is a common pitfall to make the API exposed to JavaScript very rich and
- use all its features. This, however, leads to complexity and can create bugs that are hard to trace.
+ use all its features. This, however, leads to complexity and can create bugs that are hard to find.
Instead, it is advisable to keep the hybrid layer small and manageable: create a gate only when
there's an actual need for it, i.e. there's a new native enabler that requires a direct interface
to the application layer. Sometimes new functionality is better handled internally in the native layer
or in the web layer; simplicity is your friend.
This usually becomes more apparent when the hybrid layer can create or destroy objects, or uses
- signals slots or properties with a \l{QObject}* argument. It is advised to be very careful and to treat
+ signals, slots or properties with a \l{QObject}* argument. It is advised to be very careful and to treat
an exposed \l{QObject} as a system - with careful attention to memory management and object ownership.
\section2 Internet Security
- When exposing native object to an open web environment, it is importwhichant to understand the security
- implications. Think whether the exposed object enables the web environment access to things that
- shouldn't be open, and whether the web content loaded by that web page comes from a trusted. In general, when
+ When exposing native objects to an open web environment, it is important to understand the security
+ implications. Think whether the exposed object enables the web environment access things that
+ shouldn't be open, and whether the web content loaded by that web page comes from a trusted source. In general, when
exposing native QObjects that give the web environment access to private information or to functionality
that's potentially harmful to the client, such exposure should be balanced by limiting the web page's
access to trusted URLs only with HTTPS, and by utilizing other measures as part of a security strategy.
diff --git a/WebKit/qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp b/WebKit/qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp
index 6a517c2..75aa0a9 100644
--- a/WebKit/qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp
+++ b/WebKit/qt/docs/webkitsnippets/qtwebkit_bridge_snippets.cpp
@@ -95,21 +95,21 @@ class MyObject : QObject {
myQObject.somethingChanged.disconnect(myOtherQObject.doSomething);
//! [9]
//! [10]
- connect(thisObject, function)
+ myQObject.somethingChanged.connect(thisObject, function)
//! [10]
//! [11]
- var obj = { x: 123 };
- var fun = function() { print(this.x); };
- myQObject.somethingChanged.connect(obj, fun);
+ var form = { x: 123 };
+ var onClicked = function() { print(this.x); };
+ myButton.clicked.connect(form, onClicked);
//! [11]
//! [12]
- myQObject.somethingChanged.disconnect(obj, fun);
+ myQObject.somethingChanged.disconnect(thisObject, function);
//! [12]
//! [13]
connect(function);
//! [13]
//! [14]
- connect(thisObject, functionName)
+ myQObject.somethingChanged.connect(thisObject, "functionName")
//! [14]
//! [15]
var obj = { x: 123, fun: function() { print(this.x); } };
@@ -119,7 +119,7 @@ class MyObject : QObject {
connect(function);
//! [16]
//! [17]
- myQObject.somethingChanged.disconnect(obj, "fun");
+ myQObject.somethingChanged.disconnect(thisObject, "functionName");
//! [17]
//! [18]
try {
@@ -145,8 +145,8 @@ class MyObject : QObject {
Q_OBJECT
public:
- Q_INVOKABLE void thisMethodIsInvokableInQtScript();
- void thisMethodIsNotInvokableInQtScript();
+ Q_INVOKABLE void thisMethodIsInvokableInJavaScript();
+ void thisMethodIsNotInvokableInJavaScript();
...
};
diff --git a/WebKit/qt/examples/platformplugin/WebPlugin.h b/WebKit/qt/examples/platformplugin/WebPlugin.h
index 9a99d0b..4af19f9 100644
--- a/WebKit/qt/examples/platformplugin/WebPlugin.h
+++ b/WebKit/qt/examples/platformplugin/WebPlugin.h
@@ -92,6 +92,9 @@ public:
virtual QWebNotificationPresenter* createNotificationPresenter() const {
return new WebNotificationPresenter();
}
+ virtual QWebHapticFeedbackPlayer* createHapticFeedbackPlayer() const {
+ return 0;
+ }
};
#endif // WEBPLUGIN_H
diff --git a/WebKit/qt/examples/platformplugin/qwebkitplatformplugin.h b/WebKit/qt/examples/platformplugin/qwebkitplatformplugin.h
index 32d22d4..3c56c98 100644
--- a/WebKit/qt/examples/platformplugin/qwebkitplatformplugin.h
+++ b/WebKit/qt/examples/platformplugin/qwebkitplatformplugin.h
@@ -81,6 +81,20 @@ Q_SIGNALS:
void notificationClosed();
};
+class QWebHapticFeedbackPlayer
+{
+public:
+ enum HapticStrength {
+ None, Weak, Medium, Strong
+ };
+
+ enum HapticEvent {
+ Press, Release
+ };
+
+ virtual void playHapticFeedback(const HapticEvent, const QString& hapticType, const HapticStrength) = 0;
+};
+
class QWebKitPlatformPlugin
{
public:
@@ -88,15 +102,17 @@ public:
enum Extension {
MultipleSelections,
- Notifications
+ Notifications,
+ Haptics
};
virtual bool supportsExtension(Extension extension) const = 0;
virtual QWebSelectMethod* createSelectInputMethod() const = 0;
virtual QWebNotificationPresenter* createNotificationPresenter() const = 0;
+ virtual QWebHapticFeedbackPlayer* createHapticFeedbackPlayer() const = 0;
};
-Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.2");
+Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.3");
#endif // QWEBKITPLATFORMPLUGIN_H
diff --git a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
index b208447..83b8600 100644
--- a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
+++ b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
@@ -33,6 +33,7 @@
#include <QRegExp>
#include <QNetworkRequest>
#include <QNetworkReply>
+#include <QTextCodec>
#ifndef QT_NO_OPENSSL
#include <qsslerror.h>
#endif
@@ -625,6 +626,8 @@ private slots:
void qObjectWrapperWithSameIdentity();
void introspectQtMethods_data();
void introspectQtMethods();
+ void setContent_data();
+ void setContent();
private:
QString evalJS(const QString&s) {
@@ -3101,5 +3104,34 @@ void tst_QWebFrame::introspectQtMethods()
QVERIFY(evalJSV("var props=[]; for (var p in myObject.deleteLater) {props.push(p);}; props.sort()").toStringList().isEmpty());
}
+void tst_QWebFrame::setContent_data()
+{
+ QTest::addColumn<QString>("mimeType");
+ QTest::addColumn<QByteArray>("testContents");
+ QTest::addColumn<QString>("expected");
+
+ QString str = QString::fromUtf8("ὕαλον ϕαγεῖν δύναμαι· τοῦτο οὔ με βλάπτει");
+ QTest::newRow("UTF-8 plain text") << "text/plain; charset=utf-8" << str.toUtf8() << str;
+
+ QTextCodec *utf16 = QTextCodec::codecForName("UTF-16");
+ if (utf16)
+ QTest::newRow("UTF-16 plain text") << "text/plain; charset=utf-16" << utf16->fromUnicode(str) << str;
+
+ str = QString::fromUtf8("Une chaîne de caractères à sa façon.");
+ QTest::newRow("latin-1 plain text") << "text/plain; charset=iso-8859-1" << str.toLatin1() << str;
+
+
+}
+
+void tst_QWebFrame::setContent()
+{
+ QFETCH(QString, mimeType);
+ QFETCH(QByteArray, testContents);
+ QFETCH(QString, expected);
+ m_view->setContent(testContents, mimeType);
+ QWebFrame* mainFrame = m_view->page()->mainFrame();
+ QCOMPARE(expected , mainFrame->toPlainText());
+}
+
QTEST_MAIN(tst_QWebFrame)
#include "tst_qwebframe.moc"
diff --git a/WebKit/qt/tests/qwebview/resources/input_types.html b/WebKit/qt/tests/qwebview/resources/input_types.html
index 18ab314..2e893af 100644
--- a/WebKit/qt/tests/qwebview/resources/input_types.html
+++ b/WebKit/qt/tests/qwebview/resources/input_types.html
@@ -4,5 +4,6 @@
<input type='tel' style='position: absolute; left: 10px; top: 100px; height: 50px; width: 100px;'/><br>
<input type='number' style='position: absolute; left: 10px; top: 150px; height: 50px; width: 100px;'/><br>
<input type='email' style='position: absolute; left: 10px; top: 200px; height: 50px; width: 100px;'/><br>
-<input type='url' style='position: absolute; left: 10px; top: 250px; height: 50px; width: 100px;'/><br>"
-</body></html> \ No newline at end of file
+<input type='url' style='position: absolute; left: 10px; top: 250px; height: 50px; width: 100px;'/><br>
+<textarea style='position: absolute; left: 10px; top: 310px; height: 50px; width: 100px;' rows="2" cols="20">blah blah blah blah</textarea><br>
+</body></html>
diff --git a/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/WebKit/qt/tests/qwebview/tst_qwebview.cpp
index 5dc5e41..57f726d 100644
--- a/WebKit/qt/tests/qwebview/tst_qwebview.cpp
+++ b/WebKit/qt/tests/qwebview/tst_qwebview.cpp
@@ -264,30 +264,37 @@ void tst_QWebView::focusInputTypes()
#else
QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
#endif
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
webView->fireMouseClick(QPoint(20, 60));
QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'tel' field
webView->fireMouseClick(QPoint(20, 110));
QVERIFY(webView->inputMethodHints() == Qt::ImhDialableCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'number' field
webView->fireMouseClick(QPoint(20, 160));
QVERIFY(webView->inputMethodHints() == Qt::ImhDigitsOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'email' field
webView->fireMouseClick(QPoint(20, 210));
QVERIFY(webView->inputMethodHints() == Qt::ImhEmailCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'url' field
webView->fireMouseClick(QPoint(20, 260));
QVERIFY(webView->inputMethodHints() == Qt::ImhUrlCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
webView->fireMouseClick(QPoint(20, 60));
QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'text' type
webView->fireMouseClick(QPoint(20, 10));
@@ -297,6 +304,17 @@ void tst_QWebView::focusInputTypes()
#else
QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
#endif
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+ // 'password' field
+ webView->fireMouseClick(QPoint(20, 60));
+ QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+ // 'text area' field
+ webView->fireMouseClick(QPoint(20, 320));
+ QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
delete webView;
diff --git a/WebKit/win/AccessibleBase.h b/WebKit/win/AccessibleBase.h
index ca1703f..df2d927 100644
--- a/WebKit/win/AccessibleBase.h
+++ b/WebKit/win/AccessibleBase.h
@@ -100,8 +100,8 @@ protected:
AccessibleBase(WebCore::AccessibilityObject*);
virtual ~AccessibleBase();
- virtual WebCore::String name() const;
- virtual WebCore::String value() const;
+ virtual WTF::String name() const;
+ virtual WTF::String value() const;
virtual long role() const;
HRESULT getAccessibilityObjectForChild(VARIANT vChild, WebCore::AccessibilityObject*&) const;
diff --git a/WebKit/win/AccessibleImage.h b/WebKit/win/AccessibleImage.h
index 0c111e2..e987795 100644
--- a/WebKit/win/AccessibleImage.h
+++ b/WebKit/win/AccessibleImage.h
@@ -35,7 +35,7 @@ public:
virtual ~AccessibleImage() { }
private:
- virtual WebCore::String name() const;
+ virtual WTF::String name() const;
};
#endif // AccessibleImage_h
diff --git a/WebKit/win/COMPropertyBag.h b/WebKit/win/COMPropertyBag.h
index ae4a7b7..610c367 100644
--- a/WebKit/win/COMPropertyBag.h
+++ b/WebKit/win/COMPropertyBag.h
@@ -34,7 +34,7 @@
#include "COMVariantSetter.h"
-template<typename ValueType, typename KeyType = typename WebCore::String, typename HashType = typename WebCore::StringHash>
+template<typename ValueType, typename KeyType = typename WTF::String, typename HashType = typename WTF::StringHash>
class COMPropertyBag : public IPropertyBag, public IPropertyBag2, Noncopyable {
public:
typedef HashMap<KeyType, ValueType, HashType> HashMapType;
diff --git a/WebKit/win/COMVariantSetter.h b/WebKit/win/COMVariantSetter.h
index 22c20e4..feb233c 100644
--- a/WebKit/win/COMVariantSetter.h
+++ b/WebKit/win/COMVariantSetter.h
@@ -29,10 +29,7 @@
#include <WebCore/BString.h>
#include <WebCore/COMPtr.h>
#include <wtf/Assertions.h>
-
-namespace WebCore {
- class String;
-}
+#include <wtf/Forward.h>
template<typename T> struct COMVariantSetter {};
@@ -44,11 +41,11 @@ template<typename T> struct COMVariantSetterBase
}
};
-template<> struct COMVariantSetter<WebCore::String> : COMVariantSetterBase<WebCore::String>
+template<> struct COMVariantSetter<WTF::String> : COMVariantSetterBase<WTF::String>
{
static const VARENUM VariantType = VT_BSTR;
- static void setVariant(VARIANT* variant, const WebCore::String& value)
+ static void setVariant(VARIANT* variant, const WTF::String& value)
{
ASSERT(V_VT(variant) == VT_EMPTY);
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index d4a850e..acfeab7 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,184 @@
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * COMVariantSetter.h:
+ * MarshallingHelpers.h:
+ * WebCoreSupport/WebContextMenuClient.h:
+ * WebCoreSupport/WebPluginHalterClient.h:
+ * WebHistory.h:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * COMVariantSetter.h:
+ * MarshallingHelpers.h:
+ * WebCoreSupport/WebContextMenuClient.h:
+ * WebCoreSupport/WebPluginHalterClient.h:
+ * WebHistory.h:
+
+2010-08-05 Jessie Berlin <jberlin@apple.com>
+
+ Reviewed by Jon Honeycutt.
+
+ Bug 43593 - WebView::backingStore should check if m_backingStoreBitmap is NULL.
+ https://bugs.webkit.org/show_bug.cgi?id=43593
+
+ * WebView.cpp:
+ (WebView::backingStore):
+ If m_backingStoreBitmap is NULL, return E_FAIL.
+
+2010-08-05 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * COMVariantSetter.h:
+ * MarshallingHelpers.h:
+ * WebCoreSupport/WebContextMenuClient.h:
+ * WebCoreSupport/WebPluginHalterClient.h:
+ * WebHistory.h:
+
+2010-08-03 Adam Roben <aroben@apple.com>
+
+ Turn on PLATFORM_STRATEGIES on Windows
+
+ Fixes <http://webkit.org/b/43431>.
+
+ Reviewed by Anders Carlsson.
+
+ * WebCoreLocalizedStrings.cpp: Removed.
+ * WebCoreSupport/WebPlatformStrategies.cpp: Added. Based on the Mac
+ equivalent.
+ (WebPlatformStrategies::initialize): Creates the singleton instance.
+ (WebPlatformStrategies::WebPlatformStrategies): Registers the
+ singleton instance as the PlatformStrategies instance for WebCore.
+
+ (WebPlatformStrategies::createPluginStrategy):
+ (WebPlatformStrategies::createLocalizationStrategy):
+ (WebPlatformStrategies::createVisitedLinkStrategy):
+ Return ourselves as the strategy.
+
+ (WebPlatformStrategies::refreshPlugins):
+ (WebPlatformStrategies::getPluginInfo):
+ Moved code here from WebCore's PluginDataWin.cpp file.
+
+ (WebPlatformStrategies::searchableIndexIntroduction):
+ (WebPlatformStrategies::submitButtonDefaultLabel):
+ (WebPlatformStrategies::inputElementAltText):
+ (WebPlatformStrategies::resetButtonDefaultLabel):
+ (WebPlatformStrategies::fileButtonChooseFileLabel):
+ (WebPlatformStrategies::fileButtonNoFileSelectedLabel):
+ (WebPlatformStrategies::contextMenuItemTagOpenLinkInNewWindow):
+ (WebPlatformStrategies::contextMenuItemTagDownloadLinkToDisk):
+ (WebPlatformStrategies::contextMenuItemTagCopyLinkToClipboard):
+ (WebPlatformStrategies::contextMenuItemTagOpenImageInNewWindow):
+ (WebPlatformStrategies::contextMenuItemTagDownloadImageToDisk):
+ (WebPlatformStrategies::contextMenuItemTagCopyImageToClipboard):
+ (WebPlatformStrategies::contextMenuItemTagOpenFrameInNewWindow):
+ (WebPlatformStrategies::contextMenuItemTagCopy):
+ (WebPlatformStrategies::contextMenuItemTagGoBack):
+ (WebPlatformStrategies::contextMenuItemTagGoForward):
+ (WebPlatformStrategies::contextMenuItemTagStop):
+ (WebPlatformStrategies::contextMenuItemTagReload):
+ (WebPlatformStrategies::contextMenuItemTagCut):
+ (WebPlatformStrategies::contextMenuItemTagPaste):
+ (WebPlatformStrategies::contextMenuItemTagNoGuessesFound):
+ (WebPlatformStrategies::contextMenuItemTagIgnoreSpelling):
+ (WebPlatformStrategies::contextMenuItemTagLearnSpelling):
+ (WebPlatformStrategies::contextMenuItemTagSearchWeb):
+ (WebPlatformStrategies::contextMenuItemTagLookUpInDictionary):
+ (WebPlatformStrategies::contextMenuItemTagOpenLink):
+ (WebPlatformStrategies::contextMenuItemTagIgnoreGrammar):
+ (WebPlatformStrategies::contextMenuItemTagSpellingMenu):
+ (WebPlatformStrategies::contextMenuItemTagCheckSpelling):
+ (WebPlatformStrategies::contextMenuItemTagCheckSpellingWhileTyping):
+ (WebPlatformStrategies::contextMenuItemTagCheckGrammarWithSpelling):
+ (WebPlatformStrategies::contextMenuItemTagFontMenu):
+ (WebPlatformStrategies::contextMenuItemTagBold):
+ (WebPlatformStrategies::contextMenuItemTagItalic):
+ (WebPlatformStrategies::contextMenuItemTagUnderline):
+ (WebPlatformStrategies::contextMenuItemTagOutline):
+ (WebPlatformStrategies::contextMenuItemTagWritingDirectionMenu):
+ (WebPlatformStrategies::contextMenuItemTagTextDirectionMenu):
+ (WebPlatformStrategies::contextMenuItemTagDefaultDirection):
+ (WebPlatformStrategies::contextMenuItemTagLeftToRight):
+ (WebPlatformStrategies::contextMenuItemTagRightToLeft):
+ (WebPlatformStrategies::contextMenuItemTagShowSpellingPanel):
+ (WebPlatformStrategies::contextMenuItemTagInspectElement):
+ (WebPlatformStrategies::searchMenuNoRecentSearchesText):
+ (WebPlatformStrategies::searchMenuRecentSearchesText):
+ (WebPlatformStrategies::searchMenuClearRecentSearchesText):
+ (WebPlatformStrategies::AXWebAreaText):
+ (WebPlatformStrategies::AXLinkText):
+ (WebPlatformStrategies::AXListMarkerText):
+ (WebPlatformStrategies::AXImageMapText):
+ (WebPlatformStrategies::AXHeadingText):
+ (WebPlatformStrategies::AXDefinitionListTermText):
+ (WebPlatformStrategies::AXDefinitionListDefinitionText):
+ (WebPlatformStrategies::AXButtonActionVerb):
+ (WebPlatformStrategies::AXRadioButtonActionVerb):
+ (WebPlatformStrategies::AXTextFieldActionVerb):
+ (WebPlatformStrategies::AXCheckedCheckBoxActionVerb):
+ (WebPlatformStrategies::AXUncheckedCheckBoxActionVerb):
+ (WebPlatformStrategies::AXLinkActionVerb):
+ (WebPlatformStrategies::AXMenuListActionVerb):
+ (WebPlatformStrategies::AXMenuListPopupActionVerb):
+ (WebPlatformStrategies::unknownFileSizeText):
+ (WebPlatformStrategies::uploadFileText):
+ (WebPlatformStrategies::allFilesText):
+ (WebPlatformStrategies::missingPluginText):
+ (WebPlatformStrategies::crashedPluginText):
+ (WebPlatformStrategies::imageTitle):
+ (WebPlatformStrategies::multipleFileUploadText):
+ (WebPlatformStrategies::mediaElementLoadingStateText):
+ (WebPlatformStrategies::mediaElementLiveBroadcastStateText):
+ (WebPlatformStrategies::localizedMediaControlElementString):
+ (WebPlatformStrategies::localizedMediaControlElementHelpText):
+ (WebPlatformStrategies::localizedMediaTimeDescription):
+ (WebPlatformStrategies::validationMessageValueMissingText):
+ (WebPlatformStrategies::validationMessageTypeMismatchText):
+ (WebPlatformStrategies::validationMessagePatternMismatchText):
+ (WebPlatformStrategies::validationMessageTooLongText):
+ (WebPlatformStrategies::validationMessageRangeUnderflowText):
+ (WebPlatformStrategies::validationMessageRangeOverflowText):
+ (WebPlatformStrategies::validationMessageStepMismatchText):
+ Moved code here from WebCoreLocalizedStrings.cpp (and slightly cleaned
+ it up).
+
+ (WebPlatformStrategies::isLinkVisited):
+ (WebPlatformStrategies::addVisitedLink):
+ Copied code from WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm.
+
+ * WebCoreSupport/WebPlatformStrategies.h: Added.
+
+ * WebKit.vcproj/WebKit.vcproj: Removed WebCoreLocalizedStrings, added
+ WebPlatformStrategies.
+
+ * WebView.cpp:
+ (WebView::initWithFrame): Initialize WebPlatformStrategies.
+
+2010-08-03 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=42939
+ WebEditorClient::didBeginEditing is never called in WebKit2
+
+ * WebView.cpp: (WebView::WebViewWndProc): Removed a call to setFocusedFrame. WebCore will
+ now set it to main frame, and besides, this call should have been before setFocused(), not
+ after it. My understanding is that we weren't getting all the same editing delegates on Windows,
+ so this change may make WebKit1 on Windows behave more like Mac - but I haven't tested it.
+
2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Darin Fisher.
diff --git a/WebKit/win/DOMCSSClasses.cpp b/WebKit/win/DOMCSSClasses.cpp
index c6190ec..b89053b 100644
--- a/WebKit/win/DOMCSSClasses.cpp
+++ b/WebKit/win/DOMCSSClasses.cpp
@@ -91,7 +91,7 @@ HRESULT STDMETHODCALLTYPE DOMCSSStyleDeclaration::cssText(
HRESULT STDMETHODCALLTYPE DOMCSSStyleDeclaration::setCssText(
/* [in] */ BSTR cssText)
{
- WebCore::String cssTextString(cssText);
+ WTF::String cssTextString(cssText);
// FIXME: <rdar://5148045> return DOM exception info
WebCore::ExceptionCode ec;
m_style->setCssText(cssTextString, ec);
@@ -102,8 +102,8 @@ HRESULT STDMETHODCALLTYPE DOMCSSStyleDeclaration::getPropertyValue(
/* [in] */ BSTR propertyName,
/* [retval][out] */ BSTR* result)
{
- WebCore::String propertyNameString(propertyName);
- WebCore::String value = m_style->getPropertyValue(propertyNameString);
+ WTF::String propertyNameString(propertyName);
+ WTF::String value = m_style->getPropertyValue(propertyNameString);
*result = SysAllocStringLen(value.characters(), value.length());
if (value.length() && !*result)
return E_OUTOFMEMORY;
@@ -139,9 +139,9 @@ HRESULT STDMETHODCALLTYPE DOMCSSStyleDeclaration::setProperty(
/* [in] */ BSTR value,
/* [in] */ BSTR priority)
{
- WebCore::String propertyNameString(propertyName);
- WebCore::String valueString(value);
- WebCore::String priorityString(priority);
+ WTF::String propertyNameString(propertyName);
+ WTF::String valueString(value);
+ WTF::String priorityString(priority);
// FIXME: <rdar://5148045> return DOM exception info
WebCore::ExceptionCode code;
m_style->setProperty(propertyNameString, valueString, priorityString, code);
diff --git a/WebKit/win/DOMCoreClasses.cpp b/WebKit/win/DOMCoreClasses.cpp
index 42e8e63..c6b8823 100644
--- a/WebKit/win/DOMCoreClasses.cpp
+++ b/WebKit/win/DOMCoreClasses.cpp
@@ -60,14 +60,14 @@ DEFINE_GUID(IID_DOMElement, 0x3b0c0eff, 0x478b, 0x4b0b, 0x82, 0x90, 0xd2, 0x32,
// "DOMObject" exists both in the WebCore namespace and unnamespaced in this
// file, which leads to ambiguities if we say "using namespace WebCore".
using namespace WebCore::HTMLNames;
-using WebCore::AtomicString;
+using WTF::AtomicString;
using WebCore::BString;
using WebCore::Element;
using WebCore::ExceptionCode;
using WebCore::FontDescription;
using WebCore::Frame;
using WebCore::IntRect;
-using WebCore::String;
+using WTF::String;
// DOMObject - IUnknown -------------------------------------------------------
@@ -119,7 +119,7 @@ HRESULT STDMETHODCALLTYPE DOMNode::nodeValue(
{
if (!m_node)
return E_FAIL;
- WebCore::String nodeValueStr = m_node->nodeValue();
+ WTF::String nodeValueStr = m_node->nodeValue();
*result = SysAllocStringLen(nodeValueStr.characters(), nodeValueStr.length());
if (nodeValueStr.length() && !*result)
return E_OUTOFMEMORY;
@@ -894,8 +894,8 @@ HRESULT STDMETHODCALLTYPE DOMElement::getAttribute(
{
if (!m_element)
return E_FAIL;
- WebCore::String nameString(name, SysStringLen(name));
- WebCore::String& attrValueString = (WebCore::String&) m_element->getAttribute(nameString);
+ WTF::String nameString(name, SysStringLen(name));
+ WTF::String& attrValueString = (WTF::String&) m_element->getAttribute(nameString);
*result = SysAllocStringLen(attrValueString.characters(), attrValueString.length());
if (attrValueString.length() && !*result)
return E_OUTOFMEMORY;
@@ -909,8 +909,8 @@ HRESULT STDMETHODCALLTYPE DOMElement::setAttribute(
if (!m_element)
return E_FAIL;
- WebCore::String nameString(name, SysStringLen(name));
- WebCore::String valueString(value, SysStringLen(value));
+ WTF::String nameString(name, SysStringLen(name));
+ WTF::String valueString(value, SysStringLen(value));
WebCore::ExceptionCode ec = 0;
m_element->setAttribute(nameString, valueString, ec);
return ec ? E_FAIL : S_OK;
diff --git a/WebKit/win/DOMHTMLClasses.cpp b/WebKit/win/DOMHTMLClasses.cpp
index f9634ff..2dd6deb 100644
--- a/WebKit/win/DOMHTMLClasses.cpp
+++ b/WebKit/win/DOMHTMLClasses.cpp
@@ -483,7 +483,7 @@ HRESULT STDMETHODCALLTYPE DOMHTMLElement::innerText(
/* [retval][out] */ BSTR* result)
{
ASSERT(m_element && m_element->isHTMLElement());
- WebCore::String innerTextString = static_cast<HTMLElement*>(m_element)->innerText();
+ WTF::String innerTextString = static_cast<HTMLElement*>(m_element)->innerText();
*result = BString(innerTextString.characters(), innerTextString.length()).release();
return S_OK;
}
@@ -493,7 +493,7 @@ HRESULT STDMETHODCALLTYPE DOMHTMLElement::setInnerText(
{
ASSERT(m_element && m_element->isHTMLElement());
HTMLElement* htmlEle = static_cast<HTMLElement*>(m_element);
- WebCore::String textString(text, SysStringLen(text));
+ WTF::String textString(text, SysStringLen(text));
WebCore::ExceptionCode ec = 0;
htmlEle->setInnerText(textString, ec);
return S_OK;
@@ -561,7 +561,7 @@ HRESULT STDMETHODCALLTYPE DOMHTMLFormElement::action(
/* [retval][out] */ BSTR* result)
{
ASSERT(m_element && m_element->hasTagName(formTag));
- WebCore::String actionString = static_cast<HTMLFormElement*>(m_element)->action();
+ WTF::String actionString = static_cast<HTMLFormElement*>(m_element)->action();
*result = BString(actionString.characters(), actionString.length()).release();
return S_OK;
}
@@ -591,7 +591,7 @@ HRESULT STDMETHODCALLTYPE DOMHTMLFormElement::method(
/* [retval][out] */ BSTR* result)
{
ASSERT(m_element && m_element->hasTagName(formTag));
- WebCore::String methodString = static_cast<HTMLFormElement*>(m_element)->method();
+ WTF::String methodString = static_cast<HTMLFormElement*>(m_element)->method();
*result = BString(methodString.characters(), methodString.length()).release();
return S_OK;
}
@@ -1188,7 +1188,7 @@ HRESULT STDMETHODCALLTYPE DOMHTMLInputElement::setType(
{
ASSERT(m_element && m_element->hasTagName(inputTag));
HTMLInputElement* inputElement = static_cast<HTMLInputElement*>(m_element);
- WebCore::String typeString(type, SysStringLen(type));
+ WTF::String typeString(type, SysStringLen(type));
inputElement->setType(typeString);
return S_OK;
}
@@ -1212,7 +1212,7 @@ HRESULT STDMETHODCALLTYPE DOMHTMLInputElement::value(
{
ASSERT(m_element && m_element->hasTagName(inputTag));
HTMLInputElement* inputElement = static_cast<HTMLInputElement*>(m_element);
- WebCore::String valueString = inputElement->value();
+ WTF::String valueString = inputElement->value();
*result = BString(valueString.characters(), valueString.length()).release();
if (valueString.length() && !*result)
return E_OUTOFMEMORY;
@@ -1550,7 +1550,7 @@ HRESULT STDMETHODCALLTYPE DOMHTMLTextAreaElement::value(
{
ASSERT(m_element && m_element->hasTagName(textareaTag));
HTMLTextAreaElement* textareaElement = static_cast<HTMLTextAreaElement*>(m_element);
- WebCore::String valueString = textareaElement->value();
+ WTF::String valueString = textareaElement->value();
*result = BString(valueString.characters(), valueString.length()).release();
if (valueString.length() && !*result)
return E_OUTOFMEMORY;
diff --git a/WebKit/win/MarshallingHelpers.h b/WebKit/win/MarshallingHelpers.h
index bbde61f..b213fb9 100644
--- a/WebKit/win/MarshallingHelpers.h
+++ b/WebKit/win/MarshallingHelpers.h
@@ -26,12 +26,12 @@
#ifndef MarshallingHelpers_H
#define MarshallingHelpers_H
+#include <wtf/Forward.h>
#include <CoreFoundation/CoreFoundation.h>
namespace WebCore {
class IntRect;
class KURL;
- class String;
}
class MarshallingHelpers
@@ -39,8 +39,8 @@ class MarshallingHelpers
public:
static WebCore::KURL BSTRToKURL(BSTR);
static BSTR KURLToBSTR(const WebCore::KURL&);
- static CFURLRef PathStringToFileCFURLRef(const WebCore::String&);
- static WebCore::String FileCFURLRefToPathString(CFURLRef fileURL);
+ static CFURLRef PathStringToFileCFURLRef(const WTF::String&);
+ static WTF::String FileCFURLRefToPathString(CFURLRef fileURL);
static CFURLRef BSTRToCFURLRef(BSTR);
static CFStringRef BSTRToCFStringRef(BSTR);
static CFStringRef LPCOLESTRToCFStringRef(LPCOLESTR);
diff --git a/WebKit/win/WebCoreLocalizedStrings.cpp b/WebKit/win/WebCoreLocalizedStrings.cpp
deleted file mode 100644
index 2d2f17f..0000000
--- a/WebKit/win/WebCoreLocalizedStrings.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "WebLocalizableStrings.h"
-#include <WebCore/IntSize.h>
-#include <WebCore/LocalizedStrings.h>
-#include <WebCore/PlatformString.h>
-#include <wtf/MathExtras.h>
-#include <wtf/RetainPtr.h>
-
-using namespace WebCore;
-
-String WebCore::searchableIndexIntroduction() { return String(LPCTSTR_UI_STRING("This is a searchable index. Enter search keywords: ", "text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'")); }
-String WebCore::submitButtonDefaultLabel() { return String(LPCTSTR_UI_STRING("Submit", "default label for Submit buttons in forms on web pages")); }
-String WebCore::inputElementAltText() { return String(LPCTSTR_UI_STRING_KEY("Submit", "Submit (input element)", "alt text for <input> elements with no alt, title, or value")); }
-String WebCore::resetButtonDefaultLabel() { return String(LPCTSTR_UI_STRING("Reset", "default label for Reset buttons in forms on web pages")); }
-String WebCore::fileButtonChooseFileLabel() { return String(LPCTSTR_UI_STRING("Choose File", "title for file button used in HTML forms")); }
-String WebCore::fileButtonNoFileSelectedLabel() { return String(LPCTSTR_UI_STRING("no file selected", "text to display in file button used in HTML forms when no file is selected")); }
-String WebCore::contextMenuItemTagOpenLinkInNewWindow() { return String(LPCTSTR_UI_STRING("Open Link in New Window", "Open in New Window context menu item")); }
-String WebCore::contextMenuItemTagDownloadLinkToDisk() { return String(LPCTSTR_UI_STRING("Download Linked File", "Download Linked File context menu item")); }
-String WebCore::contextMenuItemTagCopyLinkToClipboard() { return String(LPCTSTR_UI_STRING("Copy Link", "Copy Link context menu item")); }
-String WebCore::contextMenuItemTagOpenImageInNewWindow() { return String(LPCTSTR_UI_STRING("Open Image in New Window", "Open Image in New Window context menu item")); }
-String WebCore::contextMenuItemTagDownloadImageToDisk() { return String(LPCTSTR_UI_STRING("Download Image", "Download Image context menu item")); }
-String WebCore::contextMenuItemTagCopyImageToClipboard() { return String(LPCTSTR_UI_STRING("Copy Image", "Copy Image context menu item")); }
-String WebCore::contextMenuItemTagOpenFrameInNewWindow() { return String(LPCTSTR_UI_STRING("Open Frame in New Window", "Open Frame in New Window context menu item")); }
-String WebCore::contextMenuItemTagCopy() { return String(LPCTSTR_UI_STRING("Copy", "Copy context menu item")); }
-String WebCore::contextMenuItemTagGoBack() { return String(LPCTSTR_UI_STRING("Back", "Back context menu item")); }
-String WebCore::contextMenuItemTagGoForward() { return String(LPCTSTR_UI_STRING("Forward", "Forward context menu item")); }
-String WebCore::contextMenuItemTagStop() { return String(LPCTSTR_UI_STRING("Stop", "Stop context menu item")); }
-String WebCore::contextMenuItemTagReload() { return String(LPCTSTR_UI_STRING("Reload", "Reload context menu item")); }
-String WebCore::contextMenuItemTagCut() { return String(LPCTSTR_UI_STRING("Cut", "Cut context menu item")); }
-String WebCore::contextMenuItemTagPaste() { return String(LPCTSTR_UI_STRING("Paste", "Paste context menu item")); }
-String WebCore::contextMenuItemTagNoGuessesFound() { return String(LPCTSTR_UI_STRING("No Guesses Found", "No Guesses Found context menu item")); }
-String WebCore::contextMenuItemTagIgnoreSpelling() { return String(LPCTSTR_UI_STRING("Ignore Spelling", "Ignore Spelling context menu item")); }
-String WebCore::contextMenuItemTagLearnSpelling() { return String(LPCTSTR_UI_STRING("Learn Spelling", "Learn Spelling context menu item")); }
-String WebCore::contextMenuItemTagSearchWeb() { return String(LPCTSTR_UI_STRING("Search with Google", "Search in Google context menu item")); }
-String WebCore::contextMenuItemTagLookUpInDictionary() { return String(LPCTSTR_UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item")); }
-String WebCore::contextMenuItemTagOpenLink() { return String(LPCTSTR_UI_STRING("Open Link", "Open Link context menu item")); }
-String WebCore::contextMenuItemTagIgnoreGrammar() { return String(LPCTSTR_UI_STRING("Ignore Grammar", "Ignore Grammar context menu item")); }
-String WebCore::contextMenuItemTagSpellingMenu() { return String(LPCTSTR_UI_STRING("Spelling and Grammar", "Spelling and Grammar context sub-menu item")); }
-String WebCore::contextMenuItemTagCheckSpelling() { return String(LPCTSTR_UI_STRING("Check Document Now", "Check spelling context menu item")); }
-String WebCore::contextMenuItemTagCheckSpellingWhileTyping() { return String(LPCTSTR_UI_STRING("Check Spelling While Typing", "Check spelling while typing context menu item")); }
-String WebCore::contextMenuItemTagCheckGrammarWithSpelling() { return String(LPCTSTR_UI_STRING("Check Grammar With Spelling", "Check grammar with spelling context menu item")); }
-String WebCore::contextMenuItemTagFontMenu() { return String(LPCTSTR_UI_STRING("Font", "Font context sub-menu item")); }
-String WebCore::contextMenuItemTagBold() { return String(LPCTSTR_UI_STRING("Bold", "Bold context menu item")); }
-String WebCore::contextMenuItemTagItalic() { return String(LPCTSTR_UI_STRING("Italic", "Italic context menu item")); }
-String WebCore::contextMenuItemTagUnderline() { return String(LPCTSTR_UI_STRING("Underline", "Underline context menu item")); }
-String WebCore::contextMenuItemTagOutline() { return String(LPCTSTR_UI_STRING("Outline", "Outline context menu item")); }
-String WebCore::contextMenuItemTagWritingDirectionMenu() { return String(LPCTSTR_UI_STRING("Paragraph Direction", "Paragraph direction context sub-menu item")); }
-String WebCore::contextMenuItemTagTextDirectionMenu() { return String(LPCTSTR_UI_STRING("Selection Direction", "Selection direction context sub-menu item")); }
-String WebCore::contextMenuItemTagDefaultDirection() { return String(LPCTSTR_UI_STRING("Default", "Default writing direction context menu item")); }
-String WebCore::contextMenuItemTagLeftToRight() { return String(LPCTSTR_UI_STRING("Left to Right", "Left to Right context menu item")); }
-String WebCore::contextMenuItemTagRightToLeft() { return String(LPCTSTR_UI_STRING("Right to Left", "Right to Left context menu item")); }
-String WebCore::contextMenuItemTagShowSpellingPanel(bool show) { return String(show ? LPCTSTR_UI_STRING("Show Spelling and Grammar", "menu item title") : LPCTSTR_UI_STRING("Hide Spelling and Grammar", "menu item title")); }
-String WebCore::contextMenuItemTagInspectElement() { return String(LPCTSTR_UI_STRING("Inspect Element", "Inspect Element context menu item")); }
-String WebCore::searchMenuNoRecentSearchesText() { return String(LPCTSTR_UI_STRING("No recent searches", "Label for only item in menu that appears when clicking on the search field image, when no searches have been performed")); }
-String WebCore::searchMenuRecentSearchesText() { return String(LPCTSTR_UI_STRING("Recent Searches", "label for first item in the menu that appears when clicking on the search field image, used as embedded menu title")); }
-String WebCore::searchMenuClearRecentSearchesText() { return String(LPCTSTR_UI_STRING("Clear Recent Searches", "menu item in Recent Searches menu that empties menu's contents")); }
-String WebCore::AXWebAreaText() { return String(LPCTSTR_UI_STRING("web area", "accessibility role description for web area")); }
-String WebCore::AXLinkText() { return String(LPCTSTR_UI_STRING("link", "accessibility role description for link")); }
-String WebCore::AXListMarkerText() { return String(LPCTSTR_UI_STRING("list marker", "accessibility role description for list marker")); }
-String WebCore::AXImageMapText() { return String(LPCTSTR_UI_STRING("image map", "accessibility role description for image map")); }
-String WebCore::AXHeadingText() { return String(LPCTSTR_UI_STRING("heading", "accessibility role description for headings")); }
-String WebCore::AXDefinitionListTermText() { return String(LPCTSTR_UI_STRING("term", "term word of a definition")); }
-String WebCore::AXDefinitionListDefinitionText() { return String(LPCTSTR_UI_STRING("definition", "definition phrase")); }
-String WebCore::AXButtonActionVerb() { return String(LPCTSTR_UI_STRING("press", "Verb stating the action that will occur when a button is pressed, as used by accessibility")); }
-String WebCore::AXRadioButtonActionVerb() { return String(LPCTSTR_UI_STRING("select", "Verb stating the action that will occur when a radio button is clicked, as used by accessibility")); }
-String WebCore::AXTextFieldActionVerb() { return String(LPCTSTR_UI_STRING("activate", "Verb stating the action that will occur when a text field is selected, as used by accessibility")); }
-String WebCore::AXCheckedCheckBoxActionVerb() { return String(LPCTSTR_UI_STRING("uncheck", "Verb stating the action that will occur when a checked checkbox is clicked, as used by accessibility")); }
-String WebCore::AXUncheckedCheckBoxActionVerb() { return String(LPCTSTR_UI_STRING("check", "Verb stating the action that will occur when an unchecked checkbox is clicked, as used by accessibility")); }
-String WebCore::AXLinkActionVerb() { return String(LPCTSTR_UI_STRING("jump", "Verb stating the action that will occur when a link is clicked, as used by accessibility")); }
-String WebCore::AXMenuListActionVerb() { return String(LPCTSTR_UI_STRING("open", "Verb stating the action that will occur when a select element is clicked, as used by accessibility")); }
-String WebCore::AXMenuListPopupActionVerb() { return String(LPCTSTR_UI_STRING_KEY("press", "press (select element)", "Verb stating the action that will occur when a select element's popup list is clicked, as used by accessibility")); }
-String WebCore::unknownFileSizeText() { return String(LPCTSTR_UI_STRING("Unknown", "Unknown filesize FTP directory listing item")); }
-String WebCore::uploadFileText() { return String(LPCTSTR_UI_STRING("Upload file", "(Windows) Form submit file upload dialog title")); }
-String WebCore::allFilesText() { return String(LPCTSTR_UI_STRING("All Files", "(Windows) Form submit file upload all files pop-up")); }
-String WebCore::missingPluginText() { return String(LPCTSTR_UI_STRING("Missing Plug-in", "Label text to be used when a plugin is missing")); }
-String WebCore::crashedPluginText() { return String(LPCTSTR_UI_STRING("Plug-in Failure", "Label text to be used if plugin host process has crashed")); }
-String WebCore::imageTitle(const String& filename, const IntSize& size)
-{
- static RetainPtr<CFStringRef> format(AdoptCF, UI_STRING("%@ %d\xC3\x97%d pixels", "window title for a standalone image (uses multiplication symbol, not x)"));
-
- RetainPtr<CFStringRef> filenameCF(AdoptCF, filename.createCFString());
- RetainPtr<CFStringRef> result(AdoptCF, CFStringCreateWithFormat(0, 0, format.get(), filenameCF.get(), size.width(), size.height()));
-
- return result.get();
-}
-
-String multipleFileUploadText(unsigned numberOfFiles)
-{
- static RetainPtr<CFStringRef> format(AdoptCF, UI_STRING("%d files", "Label to describe the number of files selected in a file upload control that allows multiple files"));
- RetainPtr<CFStringRef> result(AdoptCF, CFStringCreateWithFormat(0, 0, format.get(), numberOfFiles));
-
- return result.get();
-}
-
-#if ENABLE(VIDEO)
-String WebCore::mediaElementLoadingStateText() { return String(LPCTSTR_UI_STRING("Loading...", "Media controller status message when the media is loading")); }
-String WebCore::mediaElementLiveBroadcastStateText() { return String(LPCTSTR_UI_STRING("Live Broadcast", "Media controller status message when watching a live broadcast")); }
-
-String WebCore::localizedMediaControlElementString(const String& name)
-{
- if (name == "AudioElement")
- return String(LPCTSTR_UI_STRING("audio element controller", "accessibility role description for audio element controller"));
- if (name == "VideoElement")
- return String(LPCTSTR_UI_STRING("video element controller", "accessibility role description for video element controller"));
- if (name == "MuteButton")
- return String(LPCTSTR_UI_STRING("mute", "accessibility role description for mute button"));
- if (name == "UnMuteButton")
- return String(LPCTSTR_UI_STRING("unmute", "accessibility role description for turn mute off button"));
- if (name == "PlayButton")
- return String(LPCTSTR_UI_STRING("play", "accessibility role description for play button"));
- if (name == "PauseButton")
- return String(LPCTSTR_UI_STRING("pause", "accessibility role description for pause button"));
- if (name == "Slider")
- return String(LPCTSTR_UI_STRING("movie time", "accessibility role description for timeline slider"));
- if (name == "SliderThumb")
- return String(LPCTSTR_UI_STRING("timeline slider thumb", "accessibility role description for timeline thumb"));
- if (name == "RewindButton")
- return String(LPCTSTR_UI_STRING("back 30 seconds", "accessibility role description for seek back 30 seconds button"));
- if (name == "ReturnToRealtimeButton")
- return String(LPCTSTR_UI_STRING("return to realtime", "accessibility role description for return to real time button"));
- if (name == "CurrentTimeDisplay")
- return String(LPCTSTR_UI_STRING("elapsed time", "accessibility role description for elapsed time display"));
- if (name == "TimeRemainingDisplay")
- return String(LPCTSTR_UI_STRING("remaining time", "accessibility role description for time remaining display"));
- if (name == "StatusDisplay")
- return String(LPCTSTR_UI_STRING("status", "accessibility role description for movie status"));
- if (name == "FullscreenButton")
- return String(LPCTSTR_UI_STRING("fullscreen", "accessibility role description for enter fullscreen button"));
- if (name == "SeekForwardButton")
- return String(LPCTSTR_UI_STRING("fast forward", "accessibility role description for fast forward button"));
- if (name == "SeekBackButton")
- return String(LPCTSTR_UI_STRING("fast reverse", "accessibility role description for fast reverse button"));
- if (name == "ShowClosedCaptionsButton")
- return String(LPCTSTR_UI_STRING("show closed captions", "accessibility role description for show closed captions button"));
- if (name == "HideClosedCaptionsButton")
- return String(LPCTSTR_UI_STRING("hide closed captions", "accessibility role description for hide closed captions button"));
-
- ASSERT_NOT_REACHED();
- return String();
-}
-
-String WebCore::localizedMediaControlElementHelpText(const String& name)
-{
- if (name == "AudioElement")
- return String(LPCTSTR_UI_STRING("audio element playback controls and status display", "accessibility role description for audio element controller"));
- if (name == "VideoElement")
- return String(LPCTSTR_UI_STRING("video element playback controls and status display", "accessibility role description for video element controller"));
- if (name == "MuteButton")
- return String(LPCTSTR_UI_STRING("mute audio tracks", "accessibility help text for mute button"));
- if (name == "UnMuteButton")
- return String(LPCTSTR_UI_STRING("unmute audio tracks", "accessibility help text for un mute button"));
- if (name == "PlayButton")
- return String(LPCTSTR_UI_STRING("begin playback", "accessibility help text for play button"));
- if (name == "PauseButton")
- return String(LPCTSTR_UI_STRING("pause playback", "accessibility help text for pause button"));
- if (name == "Slider")
- return String(LPCTSTR_UI_STRING("movie time scrubber", "accessibility help text for timeline slider"));
- if (name == "SliderThumb")
- return String(LPCTSTR_UI_STRING("movie time scrubber thumb", "accessibility help text for timeline slider thumb"));
- if (name == "RewindButton")
- return String(LPCTSTR_UI_STRING("seek movie back 30 seconds", "accessibility help text for jump back 30 seconds button"));
- if (name == "ReturnToRealtimeButton")
- return String(LPCTSTR_UI_STRING("return streaming movie to real time", "accessibility help text for return streaming movie to real time button"));
- if (name == "CurrentTimeDisplay")
- return String(LPCTSTR_UI_STRING("current movie time in seconds", "accessibility help text for elapsed time display"));
- if (name == "TimeRemainingDisplay")
- return String(LPCTSTR_UI_STRING("number of seconds of movie remaining", "accessibility help text for remaining time display"));
- if (name == "StatusDisplay")
- return String(LPCTSTR_UI_STRING("current movie status", "accessibility help text for movie status display"));
- if (name == "SeekBackButton")
- return String(LPCTSTR_UI_STRING("seek quickly back", "accessibility help text for fast rewind button"));
- if (name == "SeekForwardButton")
- return String(LPCTSTR_UI_STRING("seek quickly forward", "accessibility help text for fast forward button"));
- if (name == "FullscreenButton")
- return String(LPCTSTR_UI_STRING("Play movie in fullscreen mode", "accessibility help text for enter fullscreen button"));
- if (name == "ShowClosedCaptionsButton")
- return String(LPCTSTR_UI_STRING("start displaying closed captions", "accessibility help text for show closed captions button"));
- if (name == "HideClosedCaptionsButton")
- return String(LPCTSTR_UI_STRING("stop displaying closed captions", "accessibility help text for hide closed captions button"));
-
- ASSERT_NOT_REACHED();
- return String();
-}
-
-String WebCore::localizedMediaTimeDescription(float time)
-{
- if (!isfinite(time))
- return String(LPCTSTR_UI_STRING("indefinite time", "accessibility help text for an indefinite media controller time value"));
-
- int seconds = (int)fabsf(time);
- int days = seconds / (60 * 60 * 24);
- int hours = seconds / (60 * 60);
- int minutes = (seconds / 60) % 60;
- seconds %= 60;
-
- if (days) {
- static RetainPtr<CFStringRef> format(AdoptCF, UI_STRING("%1$d days %2$d hours %3$d minutes %4$d seconds", "accessibility help text for media controller time value >= 1 day"));
- RetainPtr<CFStringRef> result(AdoptCF, CFStringCreateWithFormat(0, 0, format.get(), days, hours, minutes, seconds));
- return result.get();
- }
-
- if (hours) {
- static RetainPtr<CFStringRef> format(AdoptCF, UI_STRING("%1$d hours %2$d minutes %3$d seconds", "accessibility help text for media controller time value >= 60 minutes"));
- RetainPtr<CFStringRef> result(AdoptCF, CFStringCreateWithFormat(0, 0, format.get(), hours, minutes, seconds));
- return result.get();
- }
-
- if (minutes) {
- static RetainPtr<CFStringRef> format(AdoptCF, UI_STRING("%1$d minutes %2$d seconds", "accessibility help text for media controller time value >= 60 seconds"));
- RetainPtr<CFStringRef> result(AdoptCF, CFStringCreateWithFormat(0, 0, format.get(), minutes, seconds));
- return result.get();
- }
-
- static RetainPtr<CFStringRef> format(AdoptCF, UI_STRING("%1$d seconds", "accessibility help text for media controller time value < 60 seconds"));
- RetainPtr<CFStringRef> result(AdoptCF, CFStringCreateWithFormat(0, 0, format.get(), seconds));
- return result.get();
-}
-
-#endif // ENABLE(VIDEO)
-
-String WebCore::validationMessageValueMissingText() { return String(LPCTSTR_UI_STRING("value missing", "Validation message for required form control elements that have no value")); }
-String WebCore::validationMessageTypeMismatchText() { return String(LPCTSTR_UI_STRING("type mismatch", "Validation message for input form controls with a value not matching type")); }
-String WebCore::validationMessagePatternMismatchText() { return String(LPCTSTR_UI_STRING("pattern mismatch", "Validation message for input form controls requiring a constrained value according to pattern")); }
-String WebCore::validationMessageTooLongText() { return String(LPCTSTR_UI_STRING("too long", "Validation message for form control elements with a value longer than maximum allowed length")); }
-String WebCore::validationMessageRangeUnderflowText() { return String(LPCTSTR_UI_STRING("range underflow", "Validation message for input form controls with value lower than allowed minimum")); }
-String WebCore::validationMessageRangeOverflowText() { return String(LPCTSTR_UI_STRING("range overflow", "Validation message for input form controls with value higher than allowed maximum")); }
-String WebCore::validationMessageStepMismatchText() { return String(LPCTSTR_UI_STRING("step mismatch", "Validation message for input form controls with value not respecting the step attribute")); }
diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.cpp b/WebKit/win/WebCoreSupport/WebChromeClient.cpp
index 08d4ee9..d5aea25 100644
--- a/WebKit/win/WebCoreSupport/WebChromeClient.cpp
+++ b/WebKit/win/WebCoreSupport/WebChromeClient.cpp
@@ -786,7 +786,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose
// FIXME: Show some sort of error if too many files are selected and the buffer is too small. For now, this will fail silently.
}
-void WebChromeClient::chooseIconForFiles(const Vector<WebCore::String>& filenames, WebCore::FileChooser* chooser)
+void WebChromeClient::chooseIconForFiles(const Vector<WTF::String>& filenames, WebCore::FileChooser* chooser)
{
chooser->iconLoaded(Icon::createIconForFiles(filenames));
}
diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.h b/WebKit/win/WebCoreSupport/WebChromeClient.h
index cea11c7..5a796eb 100644
--- a/WebKit/win/WebCoreSupport/WebChromeClient.h
+++ b/WebKit/win/WebCoreSupport/WebChromeClient.h
@@ -78,17 +78,17 @@ public:
virtual void setResizable(bool);
- virtual void addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type, WebCore::MessageLevel level, const WebCore::String& message, unsigned line, const WebCore::String& url);
+ virtual void addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type, WebCore::MessageLevel level, const WTF::String& message, unsigned line, const WTF::String& url);
virtual bool canRunBeforeUnloadConfirmPanel();
- virtual bool runBeforeUnloadConfirmPanel(const WebCore::String& message, WebCore::Frame* frame);
+ virtual bool runBeforeUnloadConfirmPanel(const WTF::String& message, WebCore::Frame* frame);
virtual void closeWindowSoon();
- virtual void runJavaScriptAlert(WebCore::Frame*, const WebCore::String&);
- virtual bool runJavaScriptConfirm(WebCore::Frame*, const WebCore::String&);
- virtual bool runJavaScriptPrompt(WebCore::Frame*, const WebCore::String& message, const WebCore::String& defaultValue, WebCore::String& result);
- virtual void setStatusbarText(const WebCore::String&);
+ virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&);
+ virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&);
+ virtual bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String& message, const WTF::String& defaultValue, WTF::String& result);
+ virtual void setStatusbarText(const WTF::String&);
virtual bool shouldInterruptJavaScript();
virtual bool tabsToLinks() const;
@@ -109,12 +109,12 @@ public:
virtual bool shouldMissingPluginMessageBeButton() const;
virtual void missingPluginButtonClicked(WebCore::Element*) const;
- virtual void setToolTip(const WebCore::String&, WebCore::TextDirection);
+ virtual void setToolTip(const WTF::String&, WebCore::TextDirection);
virtual void print(WebCore::Frame*);
#if ENABLE(DATABASE)
- virtual void exceededDatabaseQuota(WebCore::Frame*, const WebCore::String&);
+ virtual void exceededDatabaseQuota(WebCore::Frame*, const WTF::String&);
#endif
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
@@ -130,7 +130,7 @@ public:
virtual bool paintCustomScrollCorner(WebCore::GraphicsContext*, const WebCore::FloatRect&);
virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
- virtual void chooseIconForFiles(const Vector<WebCore::String>&, WebCore::FileChooser*);
+ virtual void chooseIconForFiles(const Vector<WTF::String>&, WebCore::FileChooser*);
virtual void setCursor(const WebCore::Cursor&);
virtual void setLastSetCursorToCurrentCursor();
diff --git a/WebKit/win/WebCoreSupport/WebContextMenuClient.h b/WebKit/win/WebCoreSupport/WebContextMenuClient.h
index 153e30e..6bcb072 100644
--- a/WebKit/win/WebCoreSupport/WebContextMenuClient.h
+++ b/WebKit/win/WebCoreSupport/WebContextMenuClient.h
@@ -26,9 +26,6 @@
#include <WebCore/ContextMenuClient.h>
#include <wtf/Forward.h>
-namespace WebCore {
- class String;
-}
class WebView;
class WebContextMenuClient : public WebCore::ContextMenuClient {
@@ -43,7 +40,7 @@ public:
virtual void downloadURL(const WebCore::KURL&);
virtual void searchWithGoogle(const WebCore::Frame*);
virtual void lookUpInDictionary(WebCore::Frame*);
- virtual void speak(const WebCore::String&);
+ virtual void speak(const WTF::String&);
virtual void stopSpeaking();
virtual bool isSpeaking();
diff --git a/WebKit/win/WebCoreSupport/WebDragClient.h b/WebKit/win/WebCoreSupport/WebDragClient.h
index f7ca139..da2d208 100644
--- a/WebKit/win/WebCoreSupport/WebDragClient.h
+++ b/WebKit/win/WebCoreSupport/WebDragClient.h
@@ -39,7 +39,7 @@ public:
virtual WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint&);
virtual void willPerformDragSourceAction(WebCore::DragSourceAction, const WebCore::IntPoint&, WebCore::Clipboard*);
virtual void startDrag(WebCore::DragImageRef, const WebCore::IntPoint&, const WebCore::IntPoint&, WebCore::Clipboard*, WebCore::Frame*, bool);
- virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL&, const WebCore::String&, WebCore::Frame*);
+ virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL&, const WTF::String&, WebCore::Frame*);
private:
WebView* m_webView;
};
diff --git a/WebKit/win/WebCoreSupport/WebEditorClient.h b/WebKit/win/WebCoreSupport/WebEditorClient.h
index ac2e25e..8be6de9 100644
--- a/WebKit/win/WebCoreSupport/WebEditorClient.h
+++ b/WebKit/win/WebCoreSupport/WebEditorClient.h
@@ -53,7 +53,7 @@ public:
virtual bool shouldBeginEditing(WebCore::Range*);
virtual bool shouldEndEditing(WebCore::Range*);
- virtual bool shouldInsertText(const WebCore::String&, WebCore::Range*, WebCore::EditorInsertAction);
+ virtual bool shouldInsertText(const WTF::String&, WebCore::Range*, WebCore::EditorInsertAction);
virtual void didBeginEditing();
virtual void didEndEditing();
@@ -98,16 +98,16 @@ public:
void handleKeyboardEvent(WebCore::KeyboardEvent*);
void handleInputMethodKeydown(WebCore::KeyboardEvent*);
- virtual void ignoreWordInSpellDocument(const WebCore::String&);
- virtual void learnWord(const WebCore::String&);
+ virtual void ignoreWordInSpellDocument(const WTF::String&);
+ virtual void learnWord(const WTF::String&);
virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength);
- virtual WebCore::String getAutoCorrectSuggestionForMisspelledWord(const WebCore::String&);
+ virtual WTF::String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&);
virtual void checkGrammarOfString(const UChar*, int length, Vector<WebCore::GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength);
- virtual void updateSpellingUIWithGrammarString(const WebCore::String&, const WebCore::GrammarDetail& detail);
- virtual void updateSpellingUIWithMisspelledWord(const WebCore::String&);
+ virtual void updateSpellingUIWithGrammarString(const WTF::String&, const WebCore::GrammarDetail& detail);
+ virtual void updateSpellingUIWithMisspelledWord(const WTF::String&);
virtual void showSpellingUI(bool show);
virtual bool spellingUIIsShowing();
- virtual void getGuessesForWord(const WebCore::String&, Vector<WebCore::String>& guesses);
+ virtual void getGuessesForWord(const WTF::String&, Vector<WTF::String>& guesses);
virtual void willSetInputMethodState();
virtual void setInputMethodState(bool);
diff --git a/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h b/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h
index 97d9a34..648b5bf 100644
--- a/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h
+++ b/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h
@@ -70,7 +70,7 @@ public:
virtual void dispatchWillClose();
virtual void dispatchDidReceiveIcon();
virtual void dispatchDidStartProvisionalLoad();
- virtual void dispatchDidReceiveTitle(const WebCore::String&);
+ virtual void dispatchDidReceiveTitle(const WTF::String&);
virtual void dispatchDidChangeIcons();
virtual void dispatchDidCommitLoad();
virtual void dispatchDidFinishDocumentLoad();
@@ -102,7 +102,7 @@ public:
virtual void didRunInsecureContent(WebCore::SecurityOrigin*);
virtual PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
- virtual void setTitle(const WebCore::String& title, const WebCore::KURL&);
+ virtual void setTitle(const WTF::String& title, const WebCore::KURL&);
virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*);
virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*);
@@ -110,13 +110,13 @@ public:
virtual bool canCachePage() const;
- virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WebCore::String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
- const WebCore::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
+ virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WTF::String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
+ const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
virtual void didTransferChildFrameToNewDocument();
- virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WebCore::String>&, const Vector<WebCore::String>&, const WebCore::String&, bool loadManually);
+ virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WTF::String>&, const Vector<WTF::String>&, const WTF::String&, bool loadManually);
virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
- virtual bool shouldUsePluginDocument(const WebCore::String& mimeType) const;
+ virtual bool shouldUsePluginDocument(const WTF::String& mimeType) const;
virtual void dispatchDidFailToStartPlugin(const WebCore::PluginView*) const;
@@ -125,8 +125,8 @@ protected:
~WebFrameLoaderClient();
private:
- PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL&, const WebCore::String& name, WebCore::HTMLFrameOwnerElement*, const WebCore::String& referrer);
- void receivedData(const char*, int, const WebCore::String&);
+ PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL&, const WTF::String& name, WebCore::HTMLFrameOwnerElement*, const WTF::String& referrer);
+ void receivedData(const char*, int, const WTF::String&);
WebHistory* webHistory() const;
WebFrame* m_webFrame;
diff --git a/WebKit/win/WebCoreSupport/WebInspectorClient.h b/WebKit/win/WebCoreSupport/WebInspectorClient.h
index 17a8d99..4da3984 100644
--- a/WebKit/win/WebCoreSupport/WebInspectorClient.h
+++ b/WebKit/win/WebCoreSupport/WebInspectorClient.h
@@ -58,10 +58,10 @@ public:
virtual void highlight(WebCore::Node*);
virtual void hideHighlight();
- virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
- virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
+ virtual void populateSetting(const WTF::String& key, WTF::String* value);
+ virtual void storeSetting(const WTF::String& key, const WTF::String& value);
- virtual bool sendMessageToFrontend(const WebCore::String&);
+ virtual bool sendMessageToFrontend(const WTF::String&);
void updateHighlight();
void frontendClosing()
@@ -88,8 +88,8 @@ public:
virtual void frontendLoaded();
- virtual WebCore::String localizedStringsURL();
- virtual WebCore::String hiddenPanels();
+ virtual WTF::String localizedStringsURL();
+ virtual WTF::String hiddenPanels();
virtual void bringToFront();
virtual void closeWindow();
@@ -98,7 +98,7 @@ public:
virtual void detachWindow();
virtual void setAttachedWindowHeight(unsigned height);
- virtual void inspectedURLChanged(const WebCore::String& newURL);
+ virtual void inspectedURLChanged(const WTF::String& newURL);
private:
~WebInspectorFrontendClient();
@@ -128,7 +128,7 @@ private:
bool m_attached;
- WebCore::String m_inspectedURL;
+ WTF::String m_inspectedURL;
bool m_destroyingInspectorView;
static friend LRESULT CALLBACK WebInspectorWndProc(HWND, UINT, WPARAM, LPARAM);
diff --git a/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp b/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp
new file mode 100644
index 0000000..00a2eab
--- /dev/null
+++ b/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp
@@ -0,0 +1,611 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebPlatformStrategies.h"
+
+#include "WebLocalizableStrings.h"
+#include <WebCore/IntSize.h>
+#include <WebCore/Page.h>
+#include <WebCore/PageGroup.h>
+#include <WebCore/PluginDatabase.h>
+#include <wtf/MathExtras.h>
+#include <wtf/RetainPtr.h>
+
+using namespace WebCore;
+
+void WebPlatformStrategies::initialize()
+{
+ DEFINE_STATIC_LOCAL(WebPlatformStrategies, platformStrategies, ());
+}
+
+WebPlatformStrategies::WebPlatformStrategies()
+{
+ setPlatformStrategies(this);
+}
+
+// PluginStrategy
+
+PluginStrategy* WebPlatformStrategies::createPluginStrategy()
+{
+ return this;
+}
+
+LocalizationStrategy* WebPlatformStrategies::createLocalizationStrategy()
+{
+ return this;
+}
+
+VisitedLinkStrategy* WebPlatformStrategies::createVisitedLinkStrategy()
+{
+ return this;
+}
+
+void WebPlatformStrategies::refreshPlugins()
+{
+ PluginDatabase::installedPlugins()->refresh();
+}
+
+void WebPlatformStrategies::getPluginInfo(Vector<WebCore::PluginInfo>& outPlugins)
+{
+ const Vector<PluginPackage*>& plugins = PluginDatabase::installedPlugins()->plugins();
+
+ outPlugins.resize(plugins.size());
+
+ for (size_t i = 0; i < plugins.size(); ++i) {
+ PluginPackage* package = plugins[i];
+
+ PluginInfo info;
+ info.name = package->name();
+ info.file = package->fileName();
+ info.desc = package->description();
+
+ const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions();
+
+ info.mimes.reserveCapacity(mimeToDescriptions.size());
+
+ MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
+ for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
+ MimeClassInfo mime;
+
+ mime.type = it->first;
+ mime.desc = it->second;
+ mime.extensions = package->mimeToExtensions().get(mime.type);
+
+ info.mimes.append(mime);
+ }
+
+ outPlugins[i] = info;
+ }
+}
+
+// LocalizationStrategy
+
+String WebPlatformStrategies::searchableIndexIntroduction()
+{
+ return UI_STRING("This is a searchable index. Enter search keywords: ", "text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'");
+}
+
+String WebPlatformStrategies::submitButtonDefaultLabel()
+{
+ return UI_STRING("Submit", "default label for Submit buttons in forms on web pages");
+}
+
+String WebPlatformStrategies::inputElementAltText()
+{
+ return UI_STRING_KEY("Submit", "Submit (input element)", "alt text for <input> elements with no alt, title, or value");
+}
+
+String WebPlatformStrategies::resetButtonDefaultLabel()
+{
+ return UI_STRING("Reset", "default label for Reset buttons in forms on web pages");
+}
+
+String WebPlatformStrategies::fileButtonChooseFileLabel()
+{
+ return UI_STRING("Choose File", "title for file button used in HTML forms");
+}
+
+String WebPlatformStrategies::fileButtonNoFileSelectedLabel()
+{
+ return UI_STRING("no file selected", "text to display in file button used in HTML forms when no file is selected");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOpenLinkInNewWindow()
+{
+ return UI_STRING("Open Link in New Window", "Open in New Window context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagDownloadLinkToDisk()
+{
+ return UI_STRING("Download Linked File", "Download Linked File context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCopyLinkToClipboard()
+{
+ return UI_STRING("Copy Link", "Copy Link context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOpenImageInNewWindow()
+{
+ return UI_STRING("Open Image in New Window", "Open Image in New Window context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagDownloadImageToDisk()
+{
+ return UI_STRING("Download Image", "Download Image context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCopyImageToClipboard()
+{
+ return UI_STRING("Copy Image", "Copy Image context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOpenFrameInNewWindow()
+{
+ return UI_STRING("Open Frame in New Window", "Open Frame in New Window context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCopy()
+{
+ return UI_STRING("Copy", "Copy context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagGoBack()
+{
+ return UI_STRING("Back", "Back context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagGoForward()
+{
+ return UI_STRING("Forward", "Forward context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagStop()
+{
+ return UI_STRING("Stop", "Stop context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagReload()
+{
+ return UI_STRING("Reload", "Reload context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCut()
+{
+ return UI_STRING("Cut", "Cut context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagPaste()
+{
+ return UI_STRING("Paste", "Paste context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagNoGuessesFound()
+{
+ return UI_STRING("No Guesses Found", "No Guesses Found context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagIgnoreSpelling()
+{
+ return UI_STRING("Ignore Spelling", "Ignore Spelling context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagLearnSpelling()
+{
+ return UI_STRING("Learn Spelling", "Learn Spelling context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagSearchWeb()
+{
+ return UI_STRING("Search with Google", "Search in Google context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary()
+{
+ return UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOpenLink()
+{
+ return UI_STRING("Open Link", "Open Link context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagIgnoreGrammar()
+{
+ return UI_STRING("Ignore Grammar", "Ignore Grammar context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagSpellingMenu()
+{
+ return UI_STRING("Spelling and Grammar", "Spelling and Grammar context sub-menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCheckSpelling()
+{
+ return UI_STRING("Check Document Now", "Check spelling context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCheckSpellingWhileTyping()
+{
+ return UI_STRING("Check Spelling While Typing", "Check spelling while typing context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCheckGrammarWithSpelling()
+{
+ return UI_STRING("Check Grammar With Spelling", "Check grammar with spelling context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagFontMenu()
+{
+ return UI_STRING("Font", "Font context sub-menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagBold()
+{
+ return UI_STRING("Bold", "Bold context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagItalic()
+{
+ return UI_STRING("Italic", "Italic context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagUnderline()
+{
+ return UI_STRING("Underline", "Underline context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOutline()
+{
+ return UI_STRING("Outline", "Outline context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagWritingDirectionMenu()
+{
+ return UI_STRING("Paragraph Direction", "Paragraph direction context sub-menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagTextDirectionMenu()
+{
+ return UI_STRING("Selection Direction", "Selection direction context sub-menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagDefaultDirection()
+{
+ return UI_STRING("Default", "Default writing direction context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagLeftToRight()
+{
+ return UI_STRING("Left to Right", "Left to Right context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagRightToLeft()
+{
+ return UI_STRING("Right to Left", "Right to Left context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagShowSpellingPanel(bool show)
+{
+ if (show)
+ return UI_STRING("Show Spelling and Grammar", "menu item title");
+ return UI_STRING("Hide Spelling and Grammar", "menu item title");
+}
+
+String WebPlatformStrategies::contextMenuItemTagInspectElement()
+{
+ return UI_STRING("Inspect Element", "Inspect Element context menu item");
+}
+
+String WebPlatformStrategies::searchMenuNoRecentSearchesText()
+{
+ return UI_STRING("No recent searches", "Label for only item in menu that appears when clicking on the search field image, when no searches have been performed");
+}
+
+String WebPlatformStrategies::searchMenuRecentSearchesText()
+{
+ return UI_STRING("Recent Searches", "label for first item in the menu that appears when clicking on the search field image, used as embedded menu title");
+}
+
+String WebPlatformStrategies::searchMenuClearRecentSearchesText()
+{
+ return UI_STRING("Clear Recent Searches", "menu item in Recent Searches menu that empties menu's contents");
+}
+
+String WebPlatformStrategies::AXWebAreaText()
+{
+ return UI_STRING("web area", "accessibility role description for web area");
+}
+
+String WebPlatformStrategies::AXLinkText()
+{
+ return UI_STRING("link", "accessibility role description for link");
+}
+
+String WebPlatformStrategies::AXListMarkerText()
+{
+ return UI_STRING("list marker", "accessibility role description for list marker");
+}
+
+String WebPlatformStrategies::AXImageMapText()
+{
+ return UI_STRING("image map", "accessibility role description for image map");
+}
+
+String WebPlatformStrategies::AXHeadingText()
+{
+ return UI_STRING("heading", "accessibility role description for headings");
+}
+
+String WebPlatformStrategies::AXDefinitionListTermText()
+{
+ return UI_STRING("term", "term word of a definition");
+}
+
+String WebPlatformStrategies::AXDefinitionListDefinitionText()
+{
+ return UI_STRING("definition", "definition phrase");
+}
+
+String WebPlatformStrategies::AXButtonActionVerb()
+{
+ return UI_STRING("press", "Verb stating the action that will occur when a button is pressed, as used by accessibility");
+}
+
+String WebPlatformStrategies::AXRadioButtonActionVerb()
+{
+ return UI_STRING("select", "Verb stating the action that will occur when a radio button is clicked, as used by accessibility");
+}
+
+String WebPlatformStrategies::AXTextFieldActionVerb()
+{
+ return UI_STRING("activate", "Verb stating the action that will occur when a text field is selected, as used by accessibility");
+}
+
+String WebPlatformStrategies::AXCheckedCheckBoxActionVerb()
+{
+ return UI_STRING("uncheck", "Verb stating the action that will occur when a checked checkbox is clicked, as used by accessibility");
+}
+
+String WebPlatformStrategies::AXUncheckedCheckBoxActionVerb()
+{
+ return UI_STRING("check", "Verb stating the action that will occur when an unchecked checkbox is clicked, as used by accessibility");
+}
+
+String WebPlatformStrategies::AXLinkActionVerb()
+{
+ return UI_STRING("jump", "Verb stating the action that will occur when a link is clicked, as used by accessibility");
+}
+
+String WebPlatformStrategies::AXMenuListActionVerb()
+{
+ return UI_STRING("open", "Verb stating the action that will occur when a select element is clicked, as used by accessibility");
+}
+
+String WebPlatformStrategies::AXMenuListPopupActionVerb()
+{
+ return UI_STRING_KEY("press", "press (select element)", "Verb stating the action that will occur when a select element's popup list is clicked, as used by accessibility");
+}
+
+String WebPlatformStrategies::unknownFileSizeText()
+{
+ return UI_STRING("Unknown", "Unknown filesize FTP directory listing item");
+}
+
+String WebPlatformStrategies::uploadFileText()
+{
+ return UI_STRING("Upload file", "(Windows) Form submit file upload dialog title");
+}
+
+String WebPlatformStrategies::allFilesText()
+{
+ return UI_STRING("All Files", "(Windows) Form submit file upload all files pop-up");
+}
+
+String WebPlatformStrategies::missingPluginText()
+{
+ return UI_STRING("Missing Plug-in", "Label text to be used when a plugin is missing");
+}
+
+String WebPlatformStrategies::crashedPluginText()
+{
+ return UI_STRING("Plug-in Failure", "Label text to be used if plugin host process has crashed");
+}
+
+String WebPlatformStrategies::imageTitle(const String& filename, const IntSize& size)
+{
+ RetainPtr<CFStringRef> filenameCF(AdoptCF, filename.createCFString());
+ return RetainPtr<CFStringRef>(AdoptCF, CFStringCreateWithFormat(0, 0, UI_STRING("%@ %d\xC3\x97%d pixels", "window title for a standalone image (uses multiplication symbol, not x)"), filenameCF.get(), size.width(), size.height())).get();
+}
+
+String WebPlatformStrategies::multipleFileUploadText(unsigned numberOfFiles)
+{
+ return RetainPtr<CFStringRef>(AdoptCF, CFStringCreateWithFormat(0, 0, UI_STRING("%d files", "Label to describe the number of files selected in a file upload control that allows multiple files"), numberOfFiles)).get();
+}
+
+String WebPlatformStrategies::mediaElementLoadingStateText()
+{
+ return UI_STRING("Loading...", "Media controller status message when the media is loading");
+}
+
+String WebPlatformStrategies::mediaElementLiveBroadcastStateText()
+{
+ return UI_STRING("Live Broadcast", "Media controller status message when watching a live broadcast");
+}
+
+String WebPlatformStrategies::localizedMediaControlElementString(const String& name)
+{
+ if (name == "AudioElement")
+ return UI_STRING("audio element controller", "accessibility role description for audio element controller");
+ if (name == "VideoElement")
+ return UI_STRING("video element controller", "accessibility role description for video element controller");
+ if (name == "MuteButton")
+ return UI_STRING("mute", "accessibility role description for mute button");
+ if (name == "UnMuteButton")
+ return UI_STRING("unmute", "accessibility role description for turn mute off button");
+ if (name == "PlayButton")
+ return UI_STRING("play", "accessibility role description for play button");
+ if (name == "PauseButton")
+ return UI_STRING("pause", "accessibility role description for pause button");
+ if (name == "Slider")
+ return UI_STRING("movie time", "accessibility role description for timeline slider");
+ if (name == "SliderThumb")
+ return UI_STRING("timeline slider thumb", "accessibility role description for timeline thumb");
+ if (name == "RewindButton")
+ return UI_STRING("back 30 seconds", "accessibility role description for seek back 30 seconds button");
+ if (name == "ReturnToRealtimeButton")
+ return UI_STRING("return to realtime", "accessibility role description for return to real time button");
+ if (name == "CurrentTimeDisplay")
+ return UI_STRING("elapsed time", "accessibility role description for elapsed time display");
+ if (name == "TimeRemainingDisplay")
+ return UI_STRING("remaining time", "accessibility role description for time remaining display");
+ if (name == "StatusDisplay")
+ return UI_STRING("status", "accessibility role description for movie status");
+ if (name == "FullscreenButton")
+ return UI_STRING("fullscreen", "accessibility role description for enter fullscreen button");
+ if (name == "SeekForwardButton")
+ return UI_STRING("fast forward", "accessibility role description for fast forward button");
+ if (name == "SeekBackButton")
+ return UI_STRING("fast reverse", "accessibility role description for fast reverse button");
+ if (name == "ShowClosedCaptionsButton")
+ return UI_STRING("show closed captions", "accessibility role description for show closed captions button");
+ if (name == "HideClosedCaptionsButton")
+ return UI_STRING("hide closed captions", "accessibility role description for hide closed captions button");
+
+ ASSERT_NOT_REACHED();
+ return String();
+}
+
+String WebPlatformStrategies::localizedMediaControlElementHelpText(const String& name)
+{
+ if (name == "AudioElement")
+ return UI_STRING("audio element playback controls and status display", "accessibility role description for audio element controller");
+ if (name == "VideoElement")
+ return UI_STRING("video element playback controls and status display", "accessibility role description for video element controller");
+ if (name == "MuteButton")
+ return UI_STRING("mute audio tracks", "accessibility help text for mute button");
+ if (name == "UnMuteButton")
+ return UI_STRING("unmute audio tracks", "accessibility help text for un mute button");
+ if (name == "PlayButton")
+ return UI_STRING("begin playback", "accessibility help text for play button");
+ if (name == "PauseButton")
+ return UI_STRING("pause playback", "accessibility help text for pause button");
+ if (name == "Slider")
+ return UI_STRING("movie time scrubber", "accessibility help text for timeline slider");
+ if (name == "SliderThumb")
+ return UI_STRING("movie time scrubber thumb", "accessibility help text for timeline slider thumb");
+ if (name == "RewindButton")
+ return UI_STRING("seek movie back 30 seconds", "accessibility help text for jump back 30 seconds button");
+ if (name == "ReturnToRealtimeButton")
+ return UI_STRING("return streaming movie to real time", "accessibility help text for return streaming movie to real time button");
+ if (name == "CurrentTimeDisplay")
+ return UI_STRING("current movie time in seconds", "accessibility help text for elapsed time display");
+ if (name == "TimeRemainingDisplay")
+ return UI_STRING("number of seconds of movie remaining", "accessibility help text for remaining time display");
+ if (name == "StatusDisplay")
+ return UI_STRING("current movie status", "accessibility help text for movie status display");
+ if (name == "SeekBackButton")
+ return UI_STRING("seek quickly back", "accessibility help text for fast rewind button");
+ if (name == "SeekForwardButton")
+ return UI_STRING("seek quickly forward", "accessibility help text for fast forward button");
+ if (name == "FullscreenButton")
+ return UI_STRING("Play movie in fullscreen mode", "accessibility help text for enter fullscreen button");
+ if (name == "ShowClosedCaptionsButton")
+ return UI_STRING("start displaying closed captions", "accessibility help text for show closed captions button");
+ if (name == "HideClosedCaptionsButton")
+ return UI_STRING("stop displaying closed captions", "accessibility help text for hide closed captions button");
+
+ ASSERT_NOT_REACHED();
+ return String();
+}
+
+String WebPlatformStrategies::localizedMediaTimeDescription(float time)
+{
+ if (!isfinite(time))
+ return UI_STRING("indefinite time", "accessibility help text for an indefinite media controller time value");
+
+ int seconds = (int)fabsf(time);
+ int days = seconds / (60 * 60 * 24);
+ int hours = seconds / (60 * 60);
+ int minutes = (seconds / 60) % 60;
+ seconds %= 60;
+
+ if (days)
+ return RetainPtr<CFStringRef>(AdoptCF, CFStringCreateWithFormat(0, 0, UI_STRING("%1$d days %2$d hours %3$d minutes %4$d seconds", "accessibility help text for media controller time value >= 1 day"), days, hours, minutes, seconds)).get();
+
+ if (hours)
+ return RetainPtr<CFStringRef>(AdoptCF, CFStringCreateWithFormat(0, 0, UI_STRING("%1$d hours %2$d minutes %3$d seconds", "accessibility help text for media controller time value >= 60 minutes"), hours, minutes, seconds)).get();
+
+ if (minutes)
+ return RetainPtr<CFStringRef>(AdoptCF, CFStringCreateWithFormat(0, 0, UI_STRING("%1$d minutes %2$d seconds", "accessibility help text for media controller time value >= 60 seconds"), minutes, seconds)).get();
+
+ return RetainPtr<CFStringRef>(AdoptCF, CFStringCreateWithFormat(0, 0, UI_STRING("%1$d seconds", "accessibility help text for media controller time value < 60 seconds"), seconds)).get();
+}
+
+String WebPlatformStrategies::validationMessageValueMissingText()
+{
+ return UI_STRING("value missing", "Validation message for required form control elements that have no value");
+}
+
+String WebPlatformStrategies::validationMessageTypeMismatchText()
+{
+ return UI_STRING("type mismatch", "Validation message for input form controls with a value not matching type");
+}
+
+String WebPlatformStrategies::validationMessagePatternMismatchText()
+{
+ return UI_STRING("pattern mismatch", "Validation message for input form controls requiring a constrained value according to pattern");
+}
+
+String WebPlatformStrategies::validationMessageTooLongText()
+{
+ return UI_STRING("too long", "Validation message for form control elements with a value longer than maximum allowed length");
+}
+
+String WebPlatformStrategies::validationMessageRangeUnderflowText()
+{
+ return UI_STRING("range underflow", "Validation message for input form controls with value lower than allowed minimum");
+}
+
+String WebPlatformStrategies::validationMessageRangeOverflowText()
+{
+ return UI_STRING("range overflow", "Validation message for input form controls with value higher than allowed maximum");
+}
+
+String WebPlatformStrategies::validationMessageStepMismatchText()
+{
+ return UI_STRING("step mismatch", "Validation message for input form controls with value not respecting the step attribute");
+}
+
+bool WebPlatformStrategies::isLinkVisited(Page* page, LinkHash hash)
+{
+ return page->group().isLinkVisited(hash);
+}
+
+void WebPlatformStrategies::addVisitedLink(Page* page, LinkHash hash)
+{
+ page->group().addVisitedLinkHash(hash);
+}
diff --git a/WebKit/win/WebCoreSupport/WebPlatformStrategies.h b/WebKit/win/WebCoreSupport/WebPlatformStrategies.h
new file mode 100644
index 0000000..c3cfbb4
--- /dev/null
+++ b/WebKit/win/WebCoreSupport/WebPlatformStrategies.h
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebPlatformStrategies_h
+#define WebPlatformStrategies_h
+
+#include <WebCore/LocalizationStrategy.h>
+#include <WebCore/PlatformStrategies.h>
+#include <WebCore/PluginStrategy.h>
+#include <WebCore/VisitedLinkStrategy.h>
+
+class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy, private WebCore::VisitedLinkStrategy {
+public:
+ static void initialize();
+
+private:
+ WebPlatformStrategies();
+
+ // WebCore::PlatformStrategies
+ virtual WebCore::PluginStrategy* createPluginStrategy();
+ virtual WebCore::LocalizationStrategy* createLocalizationStrategy();
+ virtual WebCore::VisitedLinkStrategy* createVisitedLinkStrategy();
+
+ // WebCore::PluginStrategy
+ virtual void refreshPlugins();
+ virtual void getPluginInfo(Vector<WebCore::PluginInfo>&);
+
+ // WebCore::LocalizationStrategy
+ virtual WTF::String inputElementAltText();
+ virtual WTF::String resetButtonDefaultLabel();
+ virtual WTF::String searchableIndexIntroduction();
+ virtual WTF::String submitButtonDefaultLabel();
+ virtual WTF::String fileButtonChooseFileLabel();
+ virtual WTF::String fileButtonNoFileSelectedLabel();
+#if ENABLE(CONTEXT_MENUS)
+ virtual WTF::String contextMenuItemTagOpenLinkInNewWindow();
+ virtual WTF::String contextMenuItemTagDownloadLinkToDisk();
+ virtual WTF::String contextMenuItemTagCopyLinkToClipboard();
+ virtual WTF::String contextMenuItemTagOpenImageInNewWindow();
+ virtual WTF::String contextMenuItemTagDownloadImageToDisk();
+ virtual WTF::String contextMenuItemTagCopyImageToClipboard();
+ virtual WTF::String contextMenuItemTagOpenFrameInNewWindow();
+ virtual WTF::String contextMenuItemTagCopy();
+ virtual WTF::String contextMenuItemTagGoBack();
+ virtual WTF::String contextMenuItemTagGoForward();
+ virtual WTF::String contextMenuItemTagStop();
+ virtual WTF::String contextMenuItemTagReload();
+ virtual WTF::String contextMenuItemTagCut();
+ virtual WTF::String contextMenuItemTagPaste();
+ virtual WTF::String contextMenuItemTagNoGuessesFound();
+ virtual WTF::String contextMenuItemTagIgnoreSpelling();
+ virtual WTF::String contextMenuItemTagLearnSpelling();
+ virtual WTF::String contextMenuItemTagSearchWeb();
+ virtual WTF::String contextMenuItemTagLookUpInDictionary();
+ virtual WTF::String contextMenuItemTagOpenLink();
+ virtual WTF::String contextMenuItemTagIgnoreGrammar();
+ virtual WTF::String contextMenuItemTagSpellingMenu();
+ virtual WTF::String contextMenuItemTagShowSpellingPanel(bool show);
+ virtual WTF::String contextMenuItemTagCheckSpelling();
+ virtual WTF::String contextMenuItemTagCheckSpellingWhileTyping();
+ virtual WTF::String contextMenuItemTagCheckGrammarWithSpelling();
+ virtual WTF::String contextMenuItemTagFontMenu();
+ virtual WTF::String contextMenuItemTagBold();
+ virtual WTF::String contextMenuItemTagItalic();
+ virtual WTF::String contextMenuItemTagUnderline();
+ virtual WTF::String contextMenuItemTagOutline();
+ virtual WTF::String contextMenuItemTagWritingDirectionMenu();
+ virtual WTF::String contextMenuItemTagTextDirectionMenu();
+ virtual WTF::String contextMenuItemTagDefaultDirection();
+ virtual WTF::String contextMenuItemTagLeftToRight();
+ virtual WTF::String contextMenuItemTagRightToLeft();
+ virtual WTF::String contextMenuItemTagInspectElement();
+#endif // ENABLE(CONTEXT_MENUS)
+ virtual WTF::String searchMenuNoRecentSearchesText();
+ virtual WTF::String searchMenuRecentSearchesText();
+ virtual WTF::String searchMenuClearRecentSearchesText();
+ virtual WTF::String AXWebAreaText();
+ virtual WTF::String AXLinkText();
+ virtual WTF::String AXListMarkerText();
+ virtual WTF::String AXImageMapText();
+ virtual WTF::String AXHeadingText();
+ virtual WTF::String AXDefinitionListTermText();
+ virtual WTF::String AXDefinitionListDefinitionText();
+ virtual WTF::String AXButtonActionVerb();
+ virtual WTF::String AXRadioButtonActionVerb();
+ virtual WTF::String AXTextFieldActionVerb();
+ virtual WTF::String AXCheckedCheckBoxActionVerb();
+ virtual WTF::String AXUncheckedCheckBoxActionVerb();
+ virtual WTF::String AXMenuListActionVerb();
+ virtual WTF::String AXMenuListPopupActionVerb();
+ virtual WTF::String AXLinkActionVerb();
+ virtual WTF::String missingPluginText();
+ virtual WTF::String crashedPluginText();
+ virtual WTF::String multipleFileUploadText(unsigned numberOfFiles);
+ virtual WTF::String unknownFileSizeText();
+ virtual WTF::String uploadFileText();
+ virtual WTF::String allFilesText();
+ virtual WTF::String imageTitle(const WTF::String& filename, const WebCore::IntSize&);
+ virtual WTF::String mediaElementLoadingStateText();
+ virtual WTF::String mediaElementLiveBroadcastStateText();
+ virtual WTF::String localizedMediaControlElementString(const WTF::String&);
+ virtual WTF::String localizedMediaControlElementHelpText(const WTF::String&);
+ virtual WTF::String localizedMediaTimeDescription(float);
+ virtual WTF::String validationMessageValueMissingText();
+ virtual WTF::String validationMessageTypeMismatchText();
+ virtual WTF::String validationMessagePatternMismatchText();
+ virtual WTF::String validationMessageTooLongText();
+ virtual WTF::String validationMessageRangeUnderflowText();
+ virtual WTF::String validationMessageRangeOverflowText();
+ virtual WTF::String validationMessageStepMismatchText();
+
+ // WebCore::VisitedLinkStrategy
+ virtual bool isLinkVisited(WebCore::Page*, WebCore::LinkHash);
+ virtual void addVisitedLink(WebCore::Page*, WebCore::LinkHash);
+};
+
+#endif // WebPlatformStrategies_h
diff --git a/WebKit/win/WebCoreSupport/WebPluginHalterClient.h b/WebKit/win/WebCoreSupport/WebPluginHalterClient.h
index da3d28a..9a4ca01 100644
--- a/WebKit/win/WebCoreSupport/WebPluginHalterClient.h
+++ b/WebKit/win/WebCoreSupport/WebPluginHalterClient.h
@@ -27,10 +27,10 @@
#define WebPluginHalterClient_h
#include <WebCore/PluginHalterClient.h>
+#include <wtf/Forward.h>
namespace WebCore {
class Node;
- class String;
}
class WebView;
@@ -39,7 +39,7 @@ class WebPluginHalterClient : public WebCore::PluginHalterClient {
public:
WebPluginHalterClient(WebView* webView);
- virtual bool shouldHaltPlugin(WebCore::Node* n, bool isWindowed, const WebCore::String& pluginName) const;
+ virtual bool shouldHaltPlugin(WebCore::Node* n, bool isWindowed, const WTF::String& pluginName) const;
virtual bool enabled() const;
private:
diff --git a/WebKit/win/WebDatabaseManager.cpp b/WebKit/win/WebDatabaseManager.cpp
index 238aa61..4c23d6c 100644
--- a/WebKit/win/WebDatabaseManager.cpp
+++ b/WebKit/win/WebDatabaseManager.cpp
@@ -376,7 +376,7 @@ void WebKitInitializeWebDatabasesIfNecessary()
if (initialized)
return;
- WebCore::String databasesDirectory = WebCore::pathByAppendingComponent(WebCore::localUserSpecificStorageDirectory(), "Databases");
+ WTF::String databasesDirectory = WebCore::pathByAppendingComponent(WebCore::localUserSpecificStorageDirectory(), "Databases");
WebCore::DatabaseTracker::initializeTracker(databasesDirectory);
initialized = true;
diff --git a/WebKit/win/WebDatabaseManager.h b/WebKit/win/WebDatabaseManager.h
index 405c916..a8ca523 100644
--- a/WebKit/win/WebDatabaseManager.h
+++ b/WebKit/win/WebDatabaseManager.h
@@ -79,7 +79,7 @@ public:
// DatabaseTrackerClient
virtual void dispatchDidModifyOrigin(WebCore::SecurityOrigin*);
- virtual void dispatchDidModifyDatabase(WebCore::SecurityOrigin*, const WebCore::String& databaseName);
+ virtual void dispatchDidModifyDatabase(WebCore::SecurityOrigin*, const WTF::String& databaseName);
private:
WebDatabaseManager();
diff --git a/WebKit/win/WebDownload.h b/WebKit/win/WebDownload.h
index 71aebfe..bbb645e 100644
--- a/WebKit/win/WebDownload.h
+++ b/WebKit/win/WebDownload.h
@@ -122,15 +122,15 @@ public:
#endif
protected:
- static CFDataRef extractResumeDataFromBundle(const WebCore::String&);
- static HRESULT appendResumeDataToBundle(CFDataRef, const WebCore::String&);
- static const WebCore::String& bundleExtension();
+ static CFDataRef extractResumeDataFromBundle(const WTF::String&);
+ static HRESULT appendResumeDataToBundle(CFDataRef, const WTF::String&);
+ static const WTF::String& bundleExtension();
static UInt32 bundleMagicNumber();
ULONG m_refCount;
- WebCore::String m_destination;
- WebCore::String m_bundlePath;
+ WTF::String m_destination;
+ WTF::String m_bundlePath;
#if USE(CFNETWORK)
RetainPtr<CFURLDownloadRef> m_download;
#endif
diff --git a/WebKit/win/WebFrame.h b/WebKit/win/WebFrame.h
index c14ddc9..6f8b56a 100644
--- a/WebKit/win/WebFrame.h
+++ b/WebKit/win/WebFrame.h
@@ -299,9 +299,9 @@ public:
virtual void didChangeTitle(WebCore::DocumentLoader*);
virtual void didChangeIcons(WebCore::DocumentLoader*);
virtual bool canHandleRequest(const WebCore::ResourceRequest&) const;
- virtual bool canShowMIMEType(const WebCore::String& MIMEType) const;
- virtual bool representationExistsForURLScheme(const WebCore::String& URLScheme) const;
- virtual WebCore::String generatedMIMETypeForURLScheme(const WebCore::String& URLScheme) const;
+ virtual bool canShowMIMEType(const WTF::String& MIMEType) const;
+ virtual bool representationExistsForURLScheme(const WTF::String& URLScheme) const;
+ virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String& URLScheme) const;
virtual void frameLoadCompleted();
virtual void restoreViewState();
virtual void provisionalLoadStarted();
@@ -309,7 +309,7 @@ public:
virtual void addHistoryItemForFragmentScroll();
virtual void didFinishLoad();
virtual void prepareForDataSourceReplacement();
- virtual WebCore::String userAgent(const WebCore::KURL&);
+ virtual WTF::String userAgent(const WebCore::KURL&);
virtual void saveViewStateToItem(WebCore::HistoryItem *);
virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&);
virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&);
@@ -319,8 +319,8 @@ public:
virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&);
virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&);
virtual bool shouldFallBack(const WebCore::ResourceError&);
- virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction, const WebCore::String& MIMEType, const WebCore::ResourceRequest&);
- virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const WebCore::String& frameName);
+ virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction, const WTF::String& MIMEType, const WebCore::ResourceRequest&);
+ virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const WTF::String& frameName);
virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>);
virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&);
virtual void download(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
@@ -330,10 +330,10 @@ public:
virtual void dispatchDidFailLoad(const WebCore::ResourceError&);
virtual void startDownload(const WebCore::ResourceRequest&);
- virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<WebCore::String>& paramNames, const Vector<WebCore::String>& paramValues);
+ virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<WTF::String>& paramNames, const Vector<WTF::String>& paramValues);
- virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WebCore::String& mimeType);
- virtual WebCore::String overrideMediaType() const;
+ virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType);
+ virtual WTF::String overrideMediaType() const;
virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
virtual void documentElementAvailable();
diff --git a/WebKit/win/WebHistory.h b/WebKit/win/WebHistory.h
index 9d8acb3..17cd3a7 100644
--- a/WebKit/win/WebHistory.h
+++ b/WebKit/win/WebHistory.h
@@ -30,13 +30,13 @@
#include "COMPtr.h"
#include <CoreFoundation/CoreFoundation.h>
+#include <wtf/Forward.h>
#include <wtf/OwnArrayPtr.h>
#include <wtf/RetainPtr.h>
namespace WebCore {
class KURL;
class PageGroup;
- class String;
}
//-----------------------------------------------------------------------------
@@ -121,10 +121,10 @@ public:
// WebHistory
static WebHistory* sharedHistory();
- void visitedURL(const WebCore::KURL&, const WebCore::String& title, const WebCore::String& httpMethod, bool wasFailure, bool increaseVisitCount);
+ void visitedURL(const WebCore::KURL&, const WTF::String& title, const WTF::String& httpMethod, bool wasFailure, bool increaseVisitCount);
void addVisitedLinksToPageGroup(WebCore::PageGroup&);
- COMPtr<IWebHistoryItem> itemForURLString(const WebCore::String&) const;
+ COMPtr<IWebHistoryItem> itemForURLString(const WTF::String&) const;
typedef int64_t DateKey;
typedef HashMap<DateKey, RetainPtr<CFMutableArrayRef> > DateToEntriesMap;
diff --git a/WebKit/win/WebHistoryItem.h b/WebKit/win/WebHistoryItem.h
index 40ec16d..7e42039 100644
--- a/WebKit/win/WebHistoryItem.h
+++ b/WebKit/win/WebHistoryItem.h
@@ -113,7 +113,7 @@ protected:
ULONG m_refCount;
RefPtr<WebCore::HistoryItem> m_historyItem;
- WebCore::String m_alternateTitle;
+ WTF::String m_alternateTitle;
};
#endif
diff --git a/WebKit/win/WebIconDatabase.h b/WebKit/win/WebIconDatabase.h
index ac42d4a..c6351a7 100644
--- a/WebKit/win/WebIconDatabase.h
+++ b/WebKit/win/WebIconDatabase.h
@@ -104,7 +104,7 @@ public:
// IconDatabaseClient
virtual void dispatchDidRemoveAllIcons();
- virtual void dispatchDidAddIconForPageURL(const WebCore::String&);
+ virtual void dispatchDidAddIconForPageURL(const WTF::String&);
static BSTR iconDatabaseDidAddIconNotification();
static BSTR iconDatabaseDidRemoveAllIconsNotification();
diff --git a/WebKit/win/WebKit.vcproj/WebKit.vcproj b/WebKit/win/WebKit.vcproj/WebKit.vcproj
index 50f5921..85e8ee1 100644
--- a/WebKit/win/WebKit.vcproj/WebKit.vcproj
+++ b/WebKit/win/WebKit.vcproj/WebKit.vcproj
@@ -418,10 +418,6 @@
>
</File>
<File
- RelativePath="..\WebCoreLocalizedStrings.cpp"
- >
- </File>
- <File
RelativePath="..\WebKitClassFactory.cpp"
>
</File>
@@ -1328,6 +1324,14 @@
>
</File>
<File
+ RelativePath="..\WebCoreSupport\WebPlatformStrategies.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebPlatformStrategies.h"
+ >
+ </File>
+ <File
RelativePath="..\WebCoreSupport\WebPluginHalterClient.cpp"
>
</File>
diff --git a/WebKit/win/WebKitDLL.h b/WebKit/win/WebKitDLL.h
index d944b07..c31bc2d 100644
--- a/WebKit/win/WebKitDLL.h
+++ b/WebKit/win/WebKitDLL.h
@@ -48,7 +48,7 @@ extern "C" {
extern ULONG gLockCount;
extern ULONG gClassCount;
-extern HashCountedSet<WebCore::String> gClassNameCount;
+extern HashCountedSet<WTF::String> gClassNameCount;
extern HINSTANCE gInstance;
extern CLSID gRegCLSIDs[];
diff --git a/WebKit/win/WebKitSystemBits.cpp b/WebKit/win/WebKitSystemBits.cpp
index e8ee0e9..eec6361 100644
--- a/WebKit/win/WebKitSystemBits.cpp
+++ b/WebKit/win/WebKitSystemBits.cpp
@@ -46,7 +46,7 @@ unsigned long long WebMemorySize()
unsigned long long WebVolumeFreeSize(CFStringRef cfstringPath)
{
- WebCore::String path(cfstringPath);
+ WTF::String path(cfstringPath);
ULARGE_INTEGER freeBytesToCaller;
BOOL result = GetDiskFreeSpaceExW((LPCWSTR)path.charactersWithNullTermination(), &freeBytesToCaller, 0, 0);
if (!result)
diff --git a/WebKit/win/WebNavigationData.h b/WebKit/win/WebNavigationData.h
index d00912c..f4793dc 100644
--- a/WebKit/win/WebNavigationData.h
+++ b/WebKit/win/WebNavigationData.h
@@ -33,9 +33,9 @@
class WebNavigationData : public IWebNavigationData {
public:
- static WebNavigationData* createInstance(const WebCore::String& url, const WebCore::String& title, IWebURLRequest*, IWebURLResponse*, bool hasSubstituteData, const WebCore::String& clientRedirectSource);
+ static WebNavigationData* createInstance(const WTF::String& url, const WTF::String& title, IWebURLRequest*, IWebURLResponse*, bool hasSubstituteData, const WTF::String& clientRedirectSource);
private:
- WebNavigationData(const WebCore::String& url, const WebCore::String& title, IWebURLRequest*, IWebURLResponse*, bool hasSubstituteData, const WebCore::String& clientRedirectSource);
+ WebNavigationData(const WTF::String& url, const WTF::String& title, IWebURLRequest*, IWebURLResponse*, bool hasSubstituteData, const WTF::String& clientRedirectSource);
~WebNavigationData();
public:
diff --git a/WebKit/win/WebPreferences.cpp b/WebKit/win/WebPreferences.cpp
index a1055cb..25cfbda 100644
--- a/WebKit/win/WebPreferences.cpp
+++ b/WebKit/win/WebPreferences.cpp
@@ -102,7 +102,7 @@ static bool booleanValueForPreferencesValue(CFPropertyListRef value)
static CFDictionaryRef defaultSettings;
-static HashMap<WebCore::String, COMPtr<WebPreferences> > webPreferencesInstances;
+static HashMap<WTF::String, COMPtr<WebPreferences> > webPreferencesInstances;
WebPreferences* WebPreferences::sharedStandardPreferences()
{
@@ -154,7 +154,7 @@ WebPreferences* WebPreferences::getInstanceForIdentifier(BSTR identifier)
if (!identifier)
return sharedStandardPreferences();
- WebCore::String identifierString(identifier, SysStringLen(identifier));
+ WTF::String identifierString(identifier, SysStringLen(identifier));
return webPreferencesInstances.get(identifierString).get();
}
@@ -162,7 +162,7 @@ void WebPreferences::setInstance(WebPreferences* instance, BSTR identifier)
{
if (!identifier || !instance)
return;
- WebCore::String identifierString(identifier, SysStringLen(identifier));
+ WTF::String identifierString(identifier, SysStringLen(identifier));
webPreferencesInstances.add(identifierString, instance);
}
@@ -171,7 +171,7 @@ void WebPreferences::removeReferenceForIdentifier(BSTR identifier)
if (!identifier || webPreferencesInstances.isEmpty())
return;
- WebCore::String identifierString(identifier, SysStringLen(identifier));
+ WTF::String identifierString(identifier, SysStringLen(identifier));
WebPreferences* webPreference = webPreferencesInstances.get(identifierString).get();
if (webPreference && webPreference->m_refCount == 1)
webPreferencesInstances.remove(identifierString);
@@ -194,7 +194,7 @@ void WebPreferences::initializeDefaultSettings()
CFDictionaryAddValue(defaults, CFSTR(WebKitMinimumLogicalFontSizePreferenceKey), CFSTR("9"));
CFDictionaryAddValue(defaults, CFSTR(WebKitDefaultFontSizePreferenceKey), CFSTR("16"));
CFDictionaryAddValue(defaults, CFSTR(WebKitDefaultFixedFontSizePreferenceKey), CFSTR("13"));
- WebCore::String defaultDefaultEncoding(LPCTSTR_UI_STRING("ISO-8859-1", "The default, default character encoding"));
+ WTF::String defaultDefaultEncoding(LPCTSTR_UI_STRING("ISO-8859-1", "The default, default character encoding"));
CFDictionaryAddValue(defaults, CFSTR(WebKitDefaultTextEncodingNamePreferenceKey), defaultDefaultEncoding.createCFString());
CFDictionaryAddValue(defaults, CFSTR(WebKitUserStyleSheetEnabledPreferenceKey), kCFBooleanFalse);
diff --git a/WebKit/win/WebResource.cpp b/WebKit/win/WebResource.cpp
index d02bcc5..506e55d 100644
--- a/WebKit/win/WebResource.cpp
+++ b/WebKit/win/WebResource.cpp
@@ -38,7 +38,7 @@ using namespace WebCore;
// WebResource ---------------------------------------------------------------------
-WebResource::WebResource(IStream* data, const WebCore::KURL& url, const WebCore::String& mimeType, const WebCore::String& textEncodingName, const WebCore::String& frameName)
+WebResource::WebResource(IStream* data, const WebCore::KURL& url, const WTF::String& mimeType, const WTF::String& textEncodingName, const WTF::String& frameName)
: m_refCount(0)
, m_data(data)
, m_url(url)
diff --git a/WebKit/win/WebResource.h b/WebKit/win/WebResource.h
index d67cb56..7c6759a 100644
--- a/WebKit/win/WebResource.h
+++ b/WebKit/win/WebResource.h
@@ -41,7 +41,7 @@ class WebResource : public IWebResource {
public:
static WebResource* createInstance(PassRefPtr<WebCore::SharedBuffer> data, const WebCore::ResourceResponse& response);
protected:
- WebResource(IStream* data, const WebCore::KURL& url, const WebCore::String& mimeType, const WebCore::String& textEncodingName, const WebCore::String& frameName);
+ WebResource(IStream* data, const WebCore::KURL& url, const WTF::String& mimeType, const WTF::String& textEncodingName, const WTF::String& frameName);
~WebResource();
public:
@@ -77,9 +77,9 @@ private:
ULONG m_refCount;
COMPtr<IStream> m_data;
WebCore::KURL m_url;
- WebCore::String m_mimeType;
- WebCore::String m_textEncodingName;
- WebCore::String m_frameName;
+ WTF::String m_mimeType;
+ WTF::String m_textEncodingName;
+ WTF::String m_frameName;
};
#endif
diff --git a/WebKit/win/WebView.cpp b/WebKit/win/WebView.cpp
index 8dfb7e7..c307c02 100644
--- a/WebKit/win/WebView.cpp
+++ b/WebKit/win/WebView.cpp
@@ -54,6 +54,7 @@
#include "WebKitSystemBits.h"
#include "WebMutableURLRequest.h"
#include "WebNotificationCenter.h"
+#include "WebPlatformStrategies.h"
#include "WebPluginHalterClient.h"
#include "WebPreferences.h"
#include "WebScriptWorld.h"
@@ -2111,10 +2112,8 @@ LRESULT CALLBACK WebView::WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam,
// child of ours (for example a plugin).
if (!IsChild(hWnd, reinterpret_cast<HWND>(wParam)))
focusController->setFocused(true);
- } else {
+ } else
focusController->setFocused(true);
- focusController->setFocusedFrame(webView->page()->mainFrame());
- }
break;
}
case WM_KILLFOCUS: {
@@ -2557,6 +2556,7 @@ HRESULT STDMETHODCALLTYPE WebView::initWithFrame(
WebKitInitializeWebDatabasesIfNecessary();
#endif
WebKitSetApplicationCachePathIfNecessary();
+ WebPlatformStrategies::initialize();
#if USE(SAFARI_THEME)
BOOL shouldPaintNativeControls;
@@ -3089,7 +3089,7 @@ HRESULT STDMETHODCALLTYPE WebView::stringByEvaluatingJavaScriptFromString(
if (!coreFrame)
return E_FAIL;
- JSC::JSValue scriptExecutionResult = coreFrame->script()->executeScript(WebCore::String(script), true).jsValue();
+ JSC::JSValue scriptExecutionResult = coreFrame->script()->executeScript(WTF::String(script), true).jsValue();
if (!scriptExecutionResult)
return E_FAIL;
else if (scriptExecutionResult.isString()) {
@@ -5725,6 +5725,8 @@ HRESULT STDMETHODCALLTYPE WebView::backingStore(
{
if (!hBitmap)
return E_POINTER;
+ if (!m_backingStoreBitmap)
+ return E_FAIL;
*hBitmap = reinterpret_cast<OLE_HANDLE>(m_backingStoreBitmap->handle());
return S_OK;
}
@@ -5856,7 +5858,7 @@ HRESULT STDMETHODCALLTYPE WebView::registerEmbeddedViewMIMEType(BSTR mimeType)
return S_OK;
}
-bool WebView::shouldUseEmbeddedView(const WebCore::String& mimeType) const
+bool WebView::shouldUseEmbeddedView(const WTF::String& mimeType) const
{
if (!m_embeddedViewMIMETypes)
return false;
diff --git a/WebKit/win/WebView.h b/WebKit/win/WebView.h
index c7e7605..eec24fd 100644
--- a/WebKit/win/WebView.h
+++ b/WebKit/win/WebView.h
@@ -806,7 +806,7 @@ public:
virtual HRESULT STDMETHODCALLTYPE nextDisplayIsSynchronous();
// WebView
- bool shouldUseEmbeddedView(const WebCore::String& mimeType) const;
+ bool shouldUseEmbeddedView(const WTF::String& mimeType) const;
WebCore::Page* page();
bool handleMouseEvent(UINT, WPARAM, LPARAM);
@@ -859,11 +859,11 @@ public:
// Convenient to be able to violate the rules of COM here for easy movement to the frame.
WebFrame* topLevelFrame() const { return m_mainFrame; }
- const WebCore::String& userAgentForKURL(const WebCore::KURL& url);
+ const WTF::String& userAgentForKURL(const WebCore::KURL& url);
static bool canHandleRequest(const WebCore::ResourceRequest&);
- static WebCore::String standardUserAgentWithApplicationName(const WebCore::String&);
+ static WTF::String standardUserAgentWithApplicationName(const WTF::String&);
void setIsBeingDestroyed() { m_isBeingDestroyed = true; }
bool isBeingDestroyed() const { return m_isBeingDestroyed; }
@@ -873,7 +873,7 @@ public:
bool isPainting() const { return m_paintCount > 0; }
- void setToolTip(const WebCore::String&);
+ void setToolTip(const WTF::String&);
void registerForIconNotification(bool listen);
void dispatchDidReceiveIconFromWebFrame(WebFrame*);
@@ -992,11 +992,11 @@ protected:
bool m_userAgentOverridden;
bool m_useBackForwardList;
- WebCore::String m_userAgentCustom;
- WebCore::String m_userAgentStandard;
+ WTF::String m_userAgentCustom;
+ WTF::String m_userAgentStandard;
float m_zoomMultiplier;
- WebCore::String m_overrideEncoding;
- WebCore::String m_applicationName;
+ WTF::String m_overrideEncoding;
+ WTF::String m_applicationName;
bool m_mouseActivated;
// WebCore dragging logic needs to be able to inspect the drag data
// this is updated in DragEnter/Leave/Drop
@@ -1012,7 +1012,7 @@ protected:
bool m_hasCustomDropTarget;
unsigned m_inIMEComposition;
HWND m_toolTipHwnd;
- WebCore::String m_toolTip;
+ WTF::String m_toolTip;
bool m_deleteBackingStoreTimerActive;
bool m_transparent;
@@ -1024,7 +1024,7 @@ protected:
HWND m_topLevelParent;
- OwnPtr<HashSet<WebCore::String> > m_embeddedViewMIMETypes;
+ OwnPtr<HashSet<WTF::String> > m_embeddedViewMIMETypes;
//Variables needed to store gesture information
RefPtr<WebCore::Node> m_gestureTargetNode;
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index 362f6e5..b66bf69 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,41 @@
+2010-08-06 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig
+
+ Bug 43594 - Add string forwards to Forward.h
+ This allows us to remove forward declarations for these classes from
+ WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+ * WebKitSupport/FrameLoaderClientWx.h:
+ * WebKitSupport/InspectorClientWx.h:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * WebKitSupport/FrameLoaderClientWx.h:
+ * WebKitSupport/InspectorClientWx.h:
+
+2010-08-04 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix for gcc not importing all symbols from convenience libraries.
+ Works on 10.6 only for Mac until the build system is reworked.
+
+ * bindings/python/webview.i:
+
+2010-08-03 Malcolm MacLeod <mmacleod@webmail.co.za>
+
+ Reviewed by Kevin Ollivier.
+
+ Fix crash during HitTest call.
+ https://bugs.webkit.org/show_bug.cgi?id=43372
+
+ * WebFrame.cpp:
+ (wxWebFrame::HitTest):
+ * WebView.cpp:
+ (wxWebViewDOMElementInfo::wxWebViewDOMElementInfo):
+
2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Darin Fisher.
diff --git a/WebKit/wx/WebEdit.cpp b/WebKit/wx/WebEdit.cpp
index ed2d0d4..22ad193 100644
--- a/WebKit/wx/WebEdit.cpp
+++ b/WebKit/wx/WebEdit.cpp
@@ -55,7 +55,7 @@ wxWebEditCommand::~wxWebEditCommand()
void wxWebEditCommand::SetNodeAttribute(WebDOMElement* element, const wxString& name, const wxString& value)
{
if (m_impl)
- m_impl->setElementAttribute(element->impl(), WebCore::QualifiedName(WebCore::nullAtom, WebCore::String(name), WebCore::nullAtom), WebCore::String(value));
+ m_impl->setElementAttribute(element->impl(), WebCore::QualifiedName(WebCore::nullAtom, WTF::String(name), WebCore::nullAtom), WTF::String(value));
}
void wxWebEditCommand::Apply()
diff --git a/WebKit/wx/WebFrame.cpp b/WebKit/wx/WebFrame.cpp
index b8d2ac2..182004b 100644
--- a/WebKit/wx/WebFrame.cpp
+++ b/WebKit/wx/WebFrame.cpp
@@ -164,7 +164,7 @@ void wxWebFrame::SetPageSource(const wxString& source, const wxString& baseUrl)
const char* contents = charBuffer;
WTF::PassRefPtr<WebCore::SharedBuffer> sharedBuffer = WebCore::SharedBuffer::create(contents, strlen(contents));
- WebCore::SubstituteData substituteData(sharedBuffer, WebCore::String("text/html"), WebCore::String("UTF-8"), WebCore::blankURL(), url);
+ WebCore::SubstituteData substituteData(sharedBuffer, WTF::String("text/html"), WTF::String("UTF-8"), WebCore::blankURL(), url);
m_impl->frame->loader()->stop();
m_impl->frame->loader()->load(WebCore::ResourceRequest(url), substituteData, false);
@@ -458,7 +458,6 @@ wxWebViewDOMElementInfo wxWebFrame::HitTest(const wxPoint& pos) const
if (m_impl->frame->view()) {
WebCore::HitTestResult result = m_impl->frame->eventHandler()->hitTestResultAtPoint(m_impl->frame->view()->windowToContents(pos), false);
if (result.innerNode()) {
- domInfo.SetInnerNode(new WebDOMNode(result.innerNode()));
domInfo.SetLink(result.absoluteLinkURL().string());
domInfo.SetText(result.textContent());
domInfo.SetImageSrc(result.absoluteImageURL().string());
diff --git a/WebKit/wx/WebFramePrivate.h b/WebKit/wx/WebFramePrivate.h
index 58bc40a..bee461d 100644
--- a/WebKit/wx/WebFramePrivate.h
+++ b/WebKit/wx/WebFramePrivate.h
@@ -48,10 +48,10 @@ class WebViewFrameData
{
public:
WebCore::KURL url;
- WebCore::String name;
+ WTF::String name;
WebCore::HTMLFrameOwnerElement* ownerElement;
- WebCore::String referrer;
+ WTF::String referrer;
bool allowsScrolling;
int marginWidth;
int marginHeight;
diff --git a/WebKit/wx/WebKitSupport/DragClientWx.h b/WebKit/wx/WebKitSupport/DragClientWx.h
index 0e93e66..afb54fb 100644
--- a/WebKit/wx/WebKitSupport/DragClientWx.h
+++ b/WebKit/wx/WebKitSupport/DragClientWx.h
@@ -39,7 +39,7 @@ public:
virtual WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint&);
virtual void startDrag(WebCore::DragImageRef dragImage, const WebCore::IntPoint& dragImageOrigin, const WebCore::IntPoint& eventPos, WebCore::Clipboard*, WebCore::Frame*, bool linkDrag = false);
- virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL&, const WebCore::String& label, WebCore::Frame*);
+ virtual WebCore::DragImageRef createDragImageForLink(WebCore::KURL&, const WTF::String& label, WebCore::Frame*);
};
}
diff --git a/WebKit/wx/WebKitSupport/EditorClientWx.cpp b/WebKit/wx/WebKitSupport/EditorClientWx.cpp
index 64bfd06..99afec8 100644
--- a/WebKit/wx/WebKitSupport/EditorClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/EditorClientWx.cpp
@@ -532,7 +532,7 @@ void EditorClientWx::getGuessesForWord(const String&, Vector<String>& guesses)
notImplemented();
}
-String EditorClientWx::getAutoCorrectSuggestionForMisspelledWord(const WebCore::String&)
+String EditorClientWx::getAutoCorrectSuggestionForMisspelledWord(const WTF::String&)
{
notImplemented();
return String();
diff --git a/WebKit/wx/WebKitSupport/EditorClientWx.h b/WebKit/wx/WebKitSupport/EditorClientWx.h
index 8d69e36..be5c98a 100644
--- a/WebKit/wx/WebKitSupport/EditorClientWx.h
+++ b/WebKit/wx/WebKitSupport/EditorClientWx.h
@@ -108,7 +108,7 @@ public:
virtual void showSpellingUI(bool show);
virtual bool spellingUIIsShowing();
virtual void getGuessesForWord(const String&, Vector<String>& guesses);
- virtual String getAutoCorrectSuggestionForMisspelledWord(const WebCore::String&);
+ virtual String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&);
virtual void willSetInputMethodState();
virtual void setInputMethodState(bool enabled);
diff --git a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
index 95ef2e6..0dee4bf 100644
--- a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
+++ b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
@@ -34,6 +34,7 @@
#include "PluginView.h"
#include "ResourceResponse.h"
#include "HTMLPlugInElement.h"
+#include <wtf/Forward.h>
class wxWebFrame;
class wxWebView;
@@ -45,7 +46,6 @@ namespace WebCore {
class Element;
class FormState;
class NavigationAction;
- class String;
class ResourceLoader;
struct LoadErrorResetToken;
diff --git a/WebKit/wx/WebKitSupport/InspectorClientWx.h b/WebKit/wx/WebKitSupport/InspectorClientWx.h
index 698a0f5..799e954 100644
--- a/WebKit/wx/WebKitSupport/InspectorClientWx.h
+++ b/WebKit/wx/WebKitSupport/InspectorClientWx.h
@@ -27,12 +27,12 @@
#define InspectorClientWx_h
#include "InspectorClient.h"
+#include <wtf/Forward.h>
namespace WebCore {
class Node;
class Page;
-class String;
class InspectorClientWx : public InspectorClient {
public:
diff --git a/WebKit/wx/WebView.cpp b/WebKit/wx/WebView.cpp
index 88d0ad9..3b0bcb0 100644
--- a/WebKit/wx/WebView.cpp
+++ b/WebKit/wx/WebView.cpp
@@ -235,7 +235,9 @@ wxWebViewDOMElementInfo::wxWebViewDOMElementInfo() :
m_isSelected(false),
m_text(wxEmptyString),
m_imageSrc(wxEmptyString),
- m_link(wxEmptyString)
+ m_link(wxEmptyString),
+ m_urlElement(NULL),
+ m_innerNode(NULL)
{
}
diff --git a/WebKit/wx/bindings/python/webview.i b/WebKit/wx/bindings/python/webview.i
index 15b1d93..58961c0 100644
--- a/WebKit/wx/bindings/python/webview.i
+++ b/WebKit/wx/bindings/python/webview.i
@@ -26,6 +26,8 @@
%module webview
%{
+#include "config.h"
+
#include "wx/wxPython/wxPython.h"
#include "wx/wxPython/pyclasses.h"
#include "WebBrowserShell.h"
diff --git a/WebKitLibraries/ChangeLog b/WebKitLibraries/ChangeLog
index 5f626fd..3d603d9 100644
--- a/WebKitLibraries/ChangeLog
+++ b/WebKitLibraries/ChangeLog
@@ -1,3 +1,33 @@
+2010-08-05 Jian Li <jianli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Unify blob related feature defines to ENABLE(BLOB).
+ https://bugs.webkit.org/show_bug.cgi?id=43081
+
+ * win/tools/vsprops/FeatureDefines.vsprops:
+ * win/tools/vsprops/FeatureDefinesCairo.vsprops:
+
+2010-08-04 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ WebKitSystemInterface part of: Allow the language for hyphenation to be specified
+ https://bugs.webkit.org/show_bug.cgi?id=43467
+
+ * WebKitSystemInterface.h:
+ * libWebKitSystemInterfaceLeopard.a:
+ * libWebKitSystemInterfaceSnowLeopard.a:
+ * libWebKitSystemInterfaceTiger.a:
+
+2010-08-03 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Alice Liu.
+
+ Enable MathML on Windows.
+
+ * win/tools/vsprops/FeatureDefines.vsprops:
+
2010-07-30 Adam Roben <aroben@apple.com>
Roll our r64361 and r64363
diff --git a/WebKitLibraries/WebKitSystemInterface.h b/WebKitLibraries/WebKitSystemInterface.h
index 4f46719..8732d81 100644
--- a/WebKitLibraries/WebKitSystemInterface.h
+++ b/WebKitLibraries/WebKitSystemInterface.h
@@ -1,6 +1,6 @@
/*
WebKitSystemInterface.h
- Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
Public header file.
*/
@@ -210,8 +210,8 @@ typedef enum {
WKMediaUIPartPlayButton,
WKMediaUIPartSeekBackButton,
WKMediaUIPartSeekForwardButton,
- WKMediaUIPartSlider,
- WKMediaUIPartSliderThumb,
+ WKMediaUIPartTimelineSlider,
+ WKMediaUIPartTimelineSliderThumb,
WKMediaUIPartRewindButton,
WKMediaUIPartSeekToRealtimeButton,
WKMediaUIPartShowClosedCaptionsButton,
@@ -220,7 +220,12 @@ typedef enum {
WKMediaUIPartPauseButton,
WKMediaUIPartBackground,
WKMediaUIPartCurrentTimeDisplay,
- WKMediaUIPartTimeRemainingDisplay
+ WKMediaUIPartTimeRemainingDisplay,
+ WKMediaUIPartStatusDisplay,
+ WKMediaUIPartControlsPanel,
+ WKMediaUIPartVolumeSliderContainer,
+ WKMediaUIPartVolumeSlider,
+ WKMediaUIPartVolumeSliderThumb
} WKMediaUIPart;
typedef enum {
@@ -251,7 +256,6 @@ typedef enum {
WKMediaUIControlFastForwardButton,
WKMediaUIControlVolumeUpButton,
WKMediaUIControlVolumeDownButton
-
} WKMediaUIControlType;
NSControl *WKCreateMediaUIControl(int controlType);
diff --git a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a
index 76c174a..fc5b8a0 100644
--- a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a
+++ b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a
Binary files differ
diff --git a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
index 6423601..dd6e22e 100644
--- a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
+++ b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
Binary files differ
diff --git a/WebKitLibraries/libWebKitSystemInterfaceTiger.a b/WebKitLibraries/libWebKitSystemInterfaceTiger.a
index abf266d..103eed6 100644
--- a/WebKitLibraries/libWebKitSystemInterfaceTiger.a
+++ b/WebKitLibraries/libWebKitSystemInterfaceTiger.a
Binary files differ
diff --git a/WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops b/WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops
index 104b479..73622e1 100644
--- a/WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops
+++ b/WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops
@@ -9,7 +9,7 @@
>
<Tool
Name="VCCLCompilerTool"
- PreprocessorDefinitions="$(ENABLE_3D_CANVAS);$(ENABLE_3D_RENDERING);$(ENABLE_BLOB_SLICE);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CLIENT_BASED_GEOLOCATION);$(ENABLE_DATABASE);$(ENABLE_DATAGRID);$(ENABLE_DATALIST);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DIRECTORY_UPLOAD);$(ENABLE_DOM_STORAGE);$(ENABLE_EVENTSOURCE);$(ENABLE_FILTERS);$(ENABLE_FILE_READER);$(ENABLE_FILE_WRITER);$(ENABLE_FILE_SYSTEM);$(ENABLE_GEOLOCATION);$(ENABLE_ICONDATABASE);$(ENABLE_IMAGE_RESIZER);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_SPEECH);$(ENABLE_JAVASCRIPT_DEBUGGER);$(ENABLE_MATHML);$(ENABLE_NOTIFICATIONS);$(ENABLE_OFFLINE_WEB_APPLICATIONS);$(ENABLE_RUBY);$(ENABLE_SANDBOX);$(ENABLE_SHARED_WORKERS);$(ENABLE_SVG);$(ENABLE_SVG_ANIMATION);$(ENABLE_SVG_AS_IMAGE);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_SVG_FOREIGN_OBJECT);$(ENABLE_SVG_USE);$(ENABLE_VIDEO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WML);$(ENABLE_WORKERS);$(ENABLE_XHTMLMP);$(ENABLE_XPATH);$(ENABLE_XSLT)"
+ PreprocessorDefinitions="$(ENABLE_3D_CANVAS);$(ENABLE_3D_RENDERING);$(ENABLE_BLOB);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CLIENT_BASED_GEOLOCATION);$(ENABLE_DATABASE);$(ENABLE_DATAGRID);$(ENABLE_DATALIST);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DIRECTORY_UPLOAD);$(ENABLE_DOM_STORAGE);$(ENABLE_EVENTSOURCE);$(ENABLE_FILTERS);$(ENABLE_FILE_WRITER);$(ENABLE_FILE_SYSTEM);$(ENABLE_GEOLOCATION);$(ENABLE_ICONDATABASE);$(ENABLE_IMAGE_RESIZER);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_SPEECH);$(ENABLE_JAVASCRIPT_DEBUGGER);$(ENABLE_MATHML);$(ENABLE_NOTIFICATIONS);$(ENABLE_OFFLINE_WEB_APPLICATIONS);$(ENABLE_RUBY);$(ENABLE_SANDBOX);$(ENABLE_SHARED_WORKERS);$(ENABLE_SVG);$(ENABLE_SVG_ANIMATION);$(ENABLE_SVG_AS_IMAGE);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_SVG_FOREIGN_OBJECT);$(ENABLE_SVG_USE);$(ENABLE_VIDEO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WML);$(ENABLE_WORKERS);$(ENABLE_XHTMLMP);$(ENABLE_XPATH);$(ENABLE_XSLT)"
/>
<UserMacro
Name="ENABLE_3D_CANVAS"
@@ -22,7 +22,7 @@
PerformEnvironmentSet="true"
/>
<UserMacro
- Name="ENABLE_BLOB_SLICE"
+ Name="ENABLE_BLOB"
Value=""
PerformEnvironmentSet="true"
/>
@@ -77,11 +77,6 @@
PerformEnvironmentSet="true"
/>
<UserMacro
- Name="ENABLE_FILE_READER"
- Value=""
- PerformEnvironmentSet="true"
- />
- <UserMacro
Name="ENABLE_FILE_WRITER"
Value=""
PerformEnvironmentSet="true"
@@ -123,7 +118,7 @@
/>
<UserMacro
Name="ENABLE_MATHML"
- Value=""
+ Value="ENABLE_MATHML"
PerformEnvironmentSet="true"
/>
<UserMacro
diff --git a/WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops b/WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops
index 4fda17c..f3c5b94 100644
--- a/WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops
+++ b/WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops
@@ -9,7 +9,7 @@
>
<Tool
Name="VCCLCompilerTool"
- PreprocessorDefinitions="$(ENABLE_3D_CANVAS);$(ENABLE_3D_RENDERING);$(ENABLE_BLOB_SLICE);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CLIENT_BASED_GEOLOCATION);$(ENABLE_DATABASE);$(ENABLE_DATAGRID);$(ENABLE_DATALIST);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DIRECTORY_UPLOAD);$(ENABLE_DOM_STORAGE);$(ENABLE_EVENTSOURCE);$(ENABLE_FILTERS);$(ENABLE_FILE_READER);$(ENABLE_FILE_WRITER);$(ENABLE_FILE_SYSTEM);$(ENABLE_GEOLOCATION);$(ENABLE_ICONDATABASE);$(ENABLE_IMAGE_RESIZER);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_SPEECH);$(ENABLE_JAVASCRIPT_DEBUGGER);$(ENABLE_MATHML);$(ENABLE_NOTIFICATIONS);$(ENABLE_OFFLINE_WEB_APPLICATIONS);$(ENABLE_SHARED_WORKERS);$(ENABLE_SVG);$(ENABLE_SVG_ANIMATION);$(ENABLE_SVG_AS_IMAGE);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_SVG_FOREIGN_OBJECT);$(ENABLE_SVG_USE);$(ENABLE_VIDEO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WML);$(ENABLE_WORKERS);$(ENABLE_XHTMLMP);$(ENABLE_XPATH);$(ENABLE_XSLT)"
+ PreprocessorDefinitions="$(ENABLE_3D_CANVAS);$(ENABLE_3D_RENDERING);$(ENABLE_BLOB);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CLIENT_BASED_GEOLOCATION);$(ENABLE_DATABASE);$(ENABLE_DATAGRID);$(ENABLE_DATALIST);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DIRECTORY_UPLOAD);$(ENABLE_DOM_STORAGE);$(ENABLE_EVENTSOURCE);$(ENABLE_FILTERS);$(ENABLE_FILE_WRITER);$(ENABLE_FILE_SYSTEM);$(ENABLE_GEOLOCATION);$(ENABLE_ICONDATABASE);$(ENABLE_IMAGE_RESIZER);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_SPEECH);$(ENABLE_JAVASCRIPT_DEBUGGER);$(ENABLE_MATHML);$(ENABLE_NOTIFICATIONS);$(ENABLE_OFFLINE_WEB_APPLICATIONS);$(ENABLE_SHARED_WORKERS);$(ENABLE_SVG);$(ENABLE_SVG_ANIMATION);$(ENABLE_SVG_AS_IMAGE);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_SVG_FOREIGN_OBJECT);$(ENABLE_SVG_USE);$(ENABLE_VIDEO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WML);$(ENABLE_WORKERS);$(ENABLE_XHTMLMP);$(ENABLE_XPATH);$(ENABLE_XSLT)"
/>
<UserMacro
Name="ENABLE_3D_CANVAS"
@@ -22,7 +22,7 @@
PerformEnvironmentSet="true"
/>
<UserMacro
- Name="ENABLE_BLOB_SLICE"
+ Name="ENABLE_BLOB"
Value=""
PerformEnvironmentSet="true"
/>
@@ -77,11 +77,6 @@
PerformEnvironmentSet="true"
/>
<UserMacro
- Name="ENABLE_FILE_READER"
- Value=""
- PerformEnvironmentSet="true"
- />
- <UserMacro
Name="ENABLE_FILE_WRITER"
Value=""
PerformEnvironmentSet="true"
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json
index f4b0822..eda05f1 100644
--- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json
+++ b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json
@@ -14,6 +14,7 @@
{ "name": "apple-macpro-1", "platform": "mac-snowleopard" },
{ "name": "apple-macpro-2", "platform": "mac-snowleopard" },
{ "name": "apple-macpro-3", "platform": "mac-snowleopard" },
+ { "name": "apple-macpro-4", "platform": "mac-leopard" },
{ "name": "apple-windows-1", "platform": "win"},
{ "name": "apple-windows-2", "platform": "win"},
@@ -51,7 +52,7 @@
},
{ "name": "Leopard Intel Release (Tests)", "type": "Test", "builddir": "leopard-intel-release-tests",
"platform": "mac-leopard", "configuration": "release", "architectures": ["i386"],
- "slavenames": ["apple-pixel-1", "test-slave"]
+ "slavenames": ["apple-macpro-4", "apple-pixel-1", "test-slave"]
},
{ "name": "Leopard Intel Debug (Build)", "type": "Build", "builddir": "leopard-intel-debug",
diff --git a/WebKitTools/BuildSlaveSupport/test-result-archive b/WebKitTools/BuildSlaveSupport/test-result-archive
index df02dbd..af66bf0 100644
--- a/WebKitTools/BuildSlaveSupport/test-result-archive
+++ b/WebKitTools/BuildSlaveSupport/test-result-archive
@@ -23,10 +23,9 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import optparse, os, shutil, subprocess, sys
+import optparse, os, shutil, subprocess, sys, zipfile
sourceRootDirectory = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
-layoutTestResultsDir = os.path.abspath(os.path.join(sourceRootDirectory, "layout-test-results"))
archiveFile = os.path.join(sourceRootDirectory, "layout-test-results.zip")
def main():
@@ -43,9 +42,16 @@ def main():
if action not in ('archive'):
parser.error("Action is required")
- return archiveTestResults(options.configuration, options.platform)
+ layoutTestResultsDir = os.path.abspath(os.path.join(sourceRootDirectory, "layout-test-results"))
+ if options.platform == 'chromium':
+ # See results_directory() in webkitpy/layout_tests/port/chromium.py.
+ layoutTestResultsDir = os.path.abspath(os.path.join(sourceRootDirectory,
+ "WebKit", "chromium", "webkit", options.configuration.capitalize(),
+ "layout-test-results"))
-def archiveTestResults(configuration, platform):
+ return archiveTestResults(options.configuration, options.platform, layoutTestResultsDir)
+
+def archiveTestResults(configuration, platform, layoutTestResultsDir):
assert platform in ('mac', 'win', 'gtk', 'qt', 'chromium')
try:
@@ -66,9 +72,14 @@ def archiveTestResults(configuration, platform):
if platform == 'mac':
if subprocess.call(["ditto", "-c", "-k", "--sequesterRsrc", layoutTestResultsDir, archiveFile]):
return 1
- elif platform in ('win', 'gtk', 'qt', 'chromium'):
+ elif platform in ('win', 'gtk', 'qt'):
if subprocess.call(["zip", "-r", archiveFile, "."], cwd=layoutTestResultsDir):
return 1
+ elif platform == 'chromium':
+ cwd = os.getcwd()
+ os.chdir(layoutTestResultsDir)
+ zipFilesRecursively(archiveFile, ["."])
+ os.chdir(cwd)
try:
shutil.rmtree(layoutTestResultsDir)
@@ -82,5 +93,26 @@ def archiveTestResults(configuration, platform):
if e.errno != 90:
raise
+def zipFilesRecursively(archiveFile, files):
+ """Make a zip archive.
+
+ Args:
+ archiveFile: The resultant zip archive file name.
+ files: A list of files to be archived. If a list item is a directory,
+ files in the directory are archived recursively."""
+ zipper = zipfile.ZipFile(archiveFile, 'w', zipfile.ZIP_DEFLATED)
+ for file in files:
+ if os.path.isdir(file):
+ for dirPath, dirNames, fileNames in os.walk(file):
+ for fileName in fileNames:
+ relativePath = os.path.join(dirPath, fileName)
+ print "Adding", relativePath
+ zipper.write(relativePath)
+ else:
+ print "Adding", file
+ zipper.write(file)
+ zipper.close()
+ print "Created zip archive: ", archiveFile
+
if __name__ == '__main__':
sys.exit(main())
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 987fe7c..e911169 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,997 @@
+2010-08-09 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Ariya Hidayat.
+
+ [Qt] QtTestBrowser: proper set scene rect
+
+ When resizesToContents is ON scene's rect is set to the boundary of
+ the mainFrame. However, navigating to other web page should keep resizing
+ scene's rect according to the new document loaded. Patch addresses this issue.
+
+ Now resizesToContents and scrolling properly work on QtTestBrowser.
+
+ * QtTestBrowser/webview.cpp:
+ (WebViewGraphicsBased::setPage):
+ (WebViewGraphicsBased::contentsSizeChanged):
+ (WebViewGraphicsBased::setResizesToContents):
+ (WebViewGraphicsBased::resizeEvent):
+ * QtTestBrowser/webview.h:
+
+2010-08-09 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Ariya Hidayat.
+
+ [Qt] QtTestBrowser: Clean up LauncherWindow code.
+
+ * QtTestBrowser/launcherwindow.cpp:
+ (LauncherWindow::LauncherWindow): Moves applyPrefs methods call from the constructor to init().
+ (LauncherWindow::init): Fixed comments.
+ (LauncherWindow::applyPrefs): Move the method around.
+ (LauncherWindow::createChrome): Move more code of this method around, for grouping, and fixing up comments.
+
+2010-08-09 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Ariya Hidayat.
+
+ [Qt] QtTestBrowser: make reset-zooming to animate when tiled backing store is on.
+
+ It gets control+0 the same visual effect as control++ or control-.
+
+ * QtTestBrowser/launcherwindow.cpp:
+ (LauncherWindow::toggleZoomTextOnly):
+
+2010-08-09 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Ariya Hidayat.
+
+ [Qt] QtTestBrowser:: make m_zoomLevels a static member.
+
+ Not all instances of LauncherWindow need its own m_zoomLevel.
+
+ * QtTestBrowser/launcherwindow.cpp:
+ * QtTestBrowser/launcherwindow.h:
+
+2010-08-09 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ Add zoom support for injected bundle
+ https://bugs.webkit.org/show_bug.cgi?id=43759
+
+ Use zoom factor SPI to implement zoom related eventSender functions.
+
+ * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
+ * WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
+ (WTR::EventSendingController::textZoomIn):
+ (WTR::EventSendingController::textZoomOut):
+ (WTR::EventSendingController::zoomPageIn):
+ (WTR::EventSendingController::zoomPageOut):
+ * WebKitTestRunner/InjectedBundle/EventSendingController.h:
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::InjectedBundlePage::reset): Reset zoom mode and level for each test.
+
+2010-08-09 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative chromium build fix III.
+
+ * DumpRenderTree/chromium/MockSpellCheck.h:
+ * DumpRenderTree/chromium/NotificationPresenter.h:
+ * DumpRenderTree/chromium/WebViewHost.h:
+ (WebViewHost::addClearHeader):
+ (WebViewHost::clearHeaders):
+
+2010-08-09 Ojan Vafai <ojan@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ increase the number of test results that we save
+ https://bugs.webkit.org/show_bug.cgi?id=43763
+
+ Now that we do incremental uploads, we can increase the number of
+ results that we save for http://test-results.appspot.com/dashboards/flakiness_dashboard.html.
+
+ * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
+
+2010-08-09 Evan Martin <evan@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium] DRT error print statement incorrectly tries to print a FILE*
+ https://bugs.webkit.org/show_bug.cgi?id=43747
+
+ * DumpRenderTree/chromium/ImageDiff.cpp:
+ (writeFile): pass the correct pointer.
+
+2010-08-09 Victor Wang <victorw@chromium.org>
+
+ Reviewed by Ojan Vafai.
+
+ Upload incremental test results json to server by default.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43743
+
+ * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
+
+2010-08-09 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Adam Barth.
+
+ EWS bots wait 2 minutes between patches
+ https://bugs.webkit.org/show_bug.cgi?id=43731
+
+ * Scripts/webkitpy/tool/bot/queueengine.py:
+ - Don't sleep after failures. This was a hold-over from
+ an earlier design.
+ * Scripts/webkitpy/tool/commands/earlywarningsystem.py:
+ - EWS bots were not properly reporting true/false from process_work_item.
+ They were always returning None, thus false, thus always logging
+ as a failure and sleeping 2 minutes after each patch.
+
+2010-08-09 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ Stub out EventSender for WebKitTestRunner
+ https://bugs.webkit.org/show_bug.cgi?id=43703
+
+ * WebKitTestRunner/DerivedSources.make:
+ * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm:
+ Add ability to pass javascript arguments to the wrapped object.
+
+ * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: Added.
+ * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: Added.
+ (WTR::EventSendingController::create):
+ (WTR::EventSendingController::EventSendingController):
+ (WTR::EventSendingController::~EventSendingController):
+ (WTR::EventSendingController::wrapperClass):
+ (WTR::setExceptionForString):
+ (WTR::EventSendingController::mouseDown):
+ (WTR::EventSendingController::mouseUp):
+ (WTR::EventSendingController::mouseMoveTo):
+ (WTR::EventSendingController::keyDown):
+ (WTR::EventSendingController::contextClick):
+ (WTR::EventSendingController::leapForward):
+ (WTR::EventSendingController::textZoomIn):
+ (WTR::EventSendingController::textZoomOut):
+ (WTR::EventSendingController::zoomPageIn):
+ (WTR::EventSendingController::zoomPageOut):
+ (WTR::EventSendingController::makeWindowObject):
+ * WebKitTestRunner/InjectedBundle/EventSendingController.h: Added.
+ * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
+ (WTR::InjectedBundle::reset):
+ * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
+ (WTR::InjectedBundle::eventSendingController):
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::InjectedBundlePage::didClearWindowForFrame):
+ Add stubbed out EventSenderController.
+
+ * WebKitTestRunner/InjectedBundle/GCController.h:
+ Remove incorrect comment.
+
+ * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
+ * WebKitTestRunner/win/InjectedBundle.vcproj:
+ Add new files.
+
+2010-08-08 Kent Tamura <tkent@chromium.org>
+
+ Unreviewed, trivial fix.
+
+ Fix "WindowsError: [Error 32] The process cannot access the file
+ because it is being used by another process" introduced by r64959.
+
+ * BuildSlaveSupport/test-result-archive:
+
+2010-08-08 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ Chromium buildbot: Avoid "zip" command dependency
+ https://bugs.webkit.org/show_bug.cgi?id=43470
+
+ * BuildSlaveSupport/test-result-archive:
+ For Chromium port, creates a zip archive with zipfile package of Python
+ instead of external "zip" command. We'd like to avoid additional
+ command installation.
+
+2010-08-08 Jon Honeycutt <jhoneycutt@apple.com>
+
+ WebKitTestRunner should add the QuickTime dir to the PATH environment
+ variable
+ https://bugs.webkit.org/show_bug.cgi?id=43686
+
+ Reviewed by Dan Bernstein.
+
+ * WebKitTestRunner/win/TestControllerWin.cpp:
+ (WTR::addQTDirToPATH):
+ Copied from DRT.
+ (WTR::TestController::platformInitialize):
+ Call addQTDirToPath().
+ * WebKitTestRunner/win/WebKitTestRunner.vcproj:
+ Link to shlwapi.lib for SHGetValue.
+
+2010-08-07 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Maciej Stachowiak.
+
+ WebKitTestRunner needs layoutTestController.dumpTitleChanges
+ <rdar://problem/8213861>
+ https://bugs.webkit.org/show_bug.cgi?id=42683
+
+ * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl:
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::InjectedBundlePage::didReceiveTitleForFrame):
+ (WTR::InjectedBundlePage::didFinishDocumentLoadForFrame):
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
+ (WTR::LayoutTestController::LayoutTestController):
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.h:
+ (WTR::LayoutTestController::dumpTitleChanges):
+ (WTR::LayoutTestController::shouldDumpTitleChanges):
+
+2010-08-07 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ WebKitTestRunner needs to print onunload handler information
+ <rdar://problem/8213831>
+ https://bugs.webkit.org/show_bug.cgi?id=42703
+
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::operator<<):
+ (WTR::InjectedBundlePage::didFinishDocumentLoadForFrame):
+
+2010-08-07 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ Add additional loader client functions need to complete WebKitTestRunner
+ https://bugs.webkit.org/show_bug.cgi?id=43684
+
+ Remove unnecessary and jarring underscores as well.
+
+ * MiniBrowser/mac/WebBundle/WebBundleMain.m:
+ (didClearWindowObjectForFrame):
+ (didCreatePage):
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::InjectedBundlePage::InjectedBundlePage):
+ (WTR::InjectedBundlePage::didStartProvisionalLoadForFrame):
+ (WTR::InjectedBundlePage::didReceiveServerRedirectForProvisionalLoadForFrame):
+ (WTR::InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame):
+ (WTR::InjectedBundlePage::didCommitLoadForFrame):
+ (WTR::InjectedBundlePage::didFinishLoadForFrame):
+ (WTR::InjectedBundlePage::didFailLoadWithErrorForFrame):
+ (WTR::InjectedBundlePage::didReceiveTitleForFrame):
+ (WTR::InjectedBundlePage::didClearWindowForFrame):
+ (WTR::InjectedBundlePage::didCancelClientRedirectForFrame):
+ (WTR::InjectedBundlePage::willPerformClientRedirectForFrame):
+ (WTR::InjectedBundlePage::didChangeLocationWithinPageForFrame):
+ (WTR::InjectedBundlePage::didFinishDocumentLoadForFrame):
+ (WTR::InjectedBundlePage::didHandleOnloadEventsForFrame):
+ (WTR::InjectedBundlePage::didDisplayInsecureContentForFrame):
+ (WTR::InjectedBundlePage::didRunInsecureContentForFrame):
+ (WTR::InjectedBundlePage::willAddMessageToConsole):
+ (WTR::InjectedBundlePage::willSetStatusbarText):
+ (WTR::InjectedBundlePage::willRunJavaScriptAlert):
+ (WTR::InjectedBundlePage::willRunJavaScriptConfirm):
+ (WTR::InjectedBundlePage::willRunJavaScriptPrompt):
+ (WTR::InjectedBundlePage::shouldBeginEditing):
+ (WTR::InjectedBundlePage::shouldEndEditing):
+ (WTR::InjectedBundlePage::shouldInsertNode):
+ (WTR::InjectedBundlePage::shouldInsertText):
+ (WTR::InjectedBundlePage::shouldDeleteRange):
+ (WTR::InjectedBundlePage::shouldChangeSelectedRange):
+ (WTR::InjectedBundlePage::shouldApplyStyle):
+ (WTR::InjectedBundlePage::didBeginEditing):
+ (WTR::InjectedBundlePage::didEndEditing):
+ (WTR::InjectedBundlePage::didChange):
+ (WTR::InjectedBundlePage::didChangeSelection):
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:
+
+2010-08-07 Dan Bernstein <mitz@apple.com>
+
+ Build fix.
+
+ * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Made the references
+ to JSGCController.{cpp,h} relative to the build root.
+
+2010-08-07 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ WebKitTestRunner needs GCController
+ <rdar://problem/8213834>
+ https://bugs.webkit.org/show_bug.cgi?id=42701
+
+ * WebKitTestRunner/DerivedSources.make:
+ * WebKitTestRunner/InjectedBundle/Bindings/GCController.idl: Added.
+ * WebKitTestRunner/InjectedBundle/Bindings/JSWrapper.h:
+ (WTR::setProperty):
+ * WebKitTestRunner/InjectedBundle/GCController.cpp: Added.
+ (WTR::GCController::create):
+ (WTR::GCController::GCController):
+ (WTR::GCController::~GCController):
+ (WTR::GCController::wrapperClass):
+ (WTR::GCController::collect):
+ (WTR::GCController::collectOnAlternateThread):
+ (WTR::GCController::getJSObjectCount):
+ (WTR::GCController::makeWindowObject):
+ * WebKitTestRunner/InjectedBundle/GCController.h: Added.
+ * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
+ (WTR::InjectedBundle::reset):
+ * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
+ (WTR::InjectedBundle::bundle):
+ (WTR::InjectedBundle::gcController):
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::InjectedBundlePage::didClearWindowForFrame):
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
+ (WTR::LayoutTestController::keepWebHistory):
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.h:
+ * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
+ * WebKitTestRunner/win/InjectedBundle.vcproj:
+
+2010-08-05 Jon Honeycutt <jhoneycutt@apple.com>
+
+ WebKitTestRunner needs to be able to set the font smoothing type
+ https://bugs.webkit.org/show_bug.cgi?id=43406
+
+ Reviewed by Adam Roben.
+
+ * WebKitTestRunner/TestInvocation.cpp:
+ (WTR::TestInvocation::resetPreferencesToConsistentValues):
+ Set the font smoothing level to
+ kWKFontSmoothingLevelNoSubpixelAntiAliasing to match DRT.
+
+2010-08-06 Jon Honeycutt <jhoneycutt@apple.com>
+
+ Fix a missed variable rename.
+
+ Unreviewed.
+
+ * Scripts/old-run-webkit-tests:
+
+2010-08-06 Jon Honeycutt <jhoneycutt@apple.com>
+
+ mac-wk2/Skipped should be used on Windows when running regression tests
+ https://bugs.webkit.org/show_bug.cgi?id=43494
+
+ Reviewed by Adam Roben.
+
+ * Scripts/old-run-webkit-tests:
+ If the platform is win-wk2, also read the mac-wk2 skipped list.
+
+2010-08-06 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [DRT/Chromium] Should revoke scheduled tasks
+ https://bugs.webkit.org/show_bug.cgi?id=43560
+
+ * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
+ (DRTDevToolsAgent::reset): Calls RevokeAll().
+ * DumpRenderTree/chromium/DRTDevToolsAgent.h:
+ * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
+ (DRTDevToolsClient::reset): Calls RevokeAll().
+ * DumpRenderTree/chromium/DRTDevToolsClient.h:
+ * DumpRenderTree/chromium/EventSender.cpp:
+ (EventSender::reset): Calls RevokeAll().
+ * DumpRenderTree/chromium/LayoutTestController.cpp:
+ (LayoutTestController::reset): Calls RevokeAll().
+ * DumpRenderTree/chromium/TestShell.cpp:
+ (TestShell::resetTestController): Calls DRTDevToolsAgent::reset() and DRTDevToolsClient::reset().
+
+2010-08-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Reviewed by Antonio Gomes.
+
+ [Qt] Fix the DRT build on Mac OS X
+
+ * DumpRenderTree/qt/DumpRenderTree.pro:
+
+2010-08-06 Jochen Eisinger <jochen@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Rietvield's upload.py moved to a different location.
+ https://bugs.webkit.org/show_bug.cgi?id=43613
+
+ * Scripts/webkitpy/thirdparty/__init__.py:
+
+2010-05-23 Eric Seidel <eric@webkit.org>
+
+ Reviewed by Adam Barth.
+
+ QueueStatusServer needs better queue-status pages
+ https://bugs.webkit.org/show_bug.cgi?id=39562
+
+ The primary goal of this patch is to display queue
+ positions somewhere on the site so that it's easier
+ for commit-queue users to know when their pach will
+ be landed. I also tried to improve the root page
+ to be more useful than the previous wall of status text.
+
+ * QueueStatusServer/handlers/recentstatus.py:
+ * QueueStatusServer/main.py:
+ * QueueStatusServer/model/queues.py:
+ * QueueStatusServer/templates/recentstatus.html:
+
+2010-08-05 Victor Wang <victorw@chromium.org>
+
+ Reviewed by Ojan Vafai.
+
+ Add option to generate/upload incremental json results to test result server.
+ Also refactor the json results generator unittest code to test
+ incremental and aggregated json results.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43519
+
+ * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
+ * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
+ * Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py:
+ * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
+
+2010-08-05 Jian Li <jianli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Unify blob related feature defines to ENABLE(BLOB).
+ https://bugs.webkit.org/show_bug.cgi?id=43081
+
+ * Scripts/build-webkit:
+
+2010-08-05 Satish Sampath <satish@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Add speech input controller mock in WebKit and a layout test.
+ https://bugs.webkit.org/show_bug.cgi?id=43477
+
+ Added LayoutTestController::setMockSpeechInputResultCallback method.
+
+ * DumpRenderTree/LayoutTestController.cpp:
+ (setMockSpeechInputResultCallback): Wrapper invoking the member function.
+ (LayoutTestController::staticFunctions):
+ * DumpRenderTree/LayoutTestController.h:
+ * DumpRenderTree/chromium/LayoutTestController.cpp:
+ (LayoutTestController::LayoutTestController):
+ (LayoutTestController::setMockSpeechInputResult): Sets the mock result.
+ (LayoutTestController::speechInputController): Creates the mock controller.
+ * DumpRenderTree/chromium/LayoutTestController.h:
+ * DumpRenderTree/chromium/WebViewHost.cpp:
+ (WebViewHost::speechInputController): Creates the mock controller.
+ * DumpRenderTree/chromium/WebViewHost.h:
+ * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
+ (LayoutTestController::setMockSpeechInputResult): dummy method.
+ * DumpRenderTree/mac/LayoutTestControllerMac.mm:
+ (LayoutTestController::setMockSpeechInputResult): dummy method.
+ * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
+ (LayoutTestController::setMockSpeechInputResult): dummy method.
+ * DumpRenderTree/qt/LayoutTestControllerQt.h:
+ * DumpRenderTree/win/LayoutTestControllerWin.cpp: dummy method.
+ (LayoutTestController::setMockSpeechInputResult):
+ * DumpRenderTree/wx/LayoutTestControllerWx.cpp: dummy method.
+ (LayoutTestController::setMockSpeechInputResult):
+
+2010-08-04 Adam Roben <aroben@apple.com>
+
+ Fix the path to TestNetscapePlugin's directory on Windows
+
+ Fixes <http://webkit.org/b/43513> WebKitTestRunner on Windows fails to
+ load TestNetscapePlugin
+
+ Reviewed by Jon Honeycutt.
+
+ * WebKitTestRunner/win/TestControllerWin.cpp:
+ (WTR::TestController::initializeTestPluginDirectory):
+ TestNetscapePlugin is in a TestNetscapePlugin[_Debug] directory that's
+ next to WebKitTestRunner.exe. Previously we were passing the directory
+ that contains WebKitTestRunner.exe. Also fixed some leaks.
+
+2010-08-05 Kenichi Ishibashi <bashi@google.com>
+
+ Reviewed by Shinichiro Hamaji.
+
+ check-webkit-style returns non-zero when patch is entirely minus lines.
+ https://bugs.webkit.org/show_bug.cgi?id=38169
+
+ * Scripts/check-webkit-style:
+ Check whether a patch contains modified files that are entirely minus lines.
+ * Scripts/webkitpy/style/filereader.py:
+ Add a variable that holds number of files that contain only deleted lines.
+ * Scripts/webkitpy/style/patchreader.py:
+ Count up modified files that contain only deleted lines.
+
+2010-08-05 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ DevTools: get rid of delayed command dispatching on front-end side.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43479
+
+ * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
+ (DRTDevToolsAgent::detach):
+ (DRTDevToolsAgent::frontendLoaded):
+ * DumpRenderTree/chromium/DRTDevToolsAgent.h:
+ * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
+ (DRTDevToolsClient::~DRTDevToolsClient):
+ (DRTDevToolsClient::sendFrontendLoaded):
+ * DumpRenderTree/chromium/DRTDevToolsClient.h:
+
+2010-08-04 Kenichi Ishibashi <bashi@google.com>
+
+ Reviewed by Shinichiro Hamaji.
+
+ Fixes check-webkit-style false positive on "new uint32_t."
+ https://bugs.webkit.org/show_bug.cgi?id=43077
+
+ * Scripts/webkitpy/style/checkers/cpp.py:
+ * Scripts/webkitpy/style/checkers/cpp_unittest.py:
+
+2010-08-04 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [DRT/Chromium] Remove base/linked_ptr.h dependency
+ https://bugs.webkit.org/show_bug.cgi?id=43472
+
+ Replace linked_ptr<TestNavigationEntry> with RefPtr<TestNavigationEntry>.
+ We need to use RefPtr<> because m_pendingEntry points an object in
+ m_entries or not in m_entries.
+
+ * DumpRenderTree/chromium/TestNavigationController.cpp:
+ (TestNavigationEntry::create): Added.
+ (TestNavigationController::activeEntry):
+ (TestNavigationController::didNavigateToEntry):
+ (TestNavigationController::discardPendingEntry):
+ (TestNavigationController::insertEntry):
+ (TestNavigationController::navigateToPendingEntry):
+ * DumpRenderTree/chromium/TestNavigationController.h:
+ * DumpRenderTree/chromium/WebViewHost.cpp:
+ (WebViewHost::loadURLForFrame):
+ Use TestNavigationEntry::create().
+ (WebViewHost::updateURL):
+ Use RefPtr<>.
+ (WebViewHost::updateSessionHistory):
+ Remove unnecessary static_cast<>.
+
+2010-08-04 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Fix a problem that "archived test results" step doesn't work on Chromium buildbots
+ https://bugs.webkit.org/show_bug.cgi?id=43333
+
+ * BuildSlaveSupport/test-result-archive:
+ - Make layoutTestResultsDir local and pass it to archiveTestResults()
+ - Adjust layoutTestResultsDir for Chromium
+
+2010-08-04 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ NRWT: websocket_server startup detection failure
+ https://bugs.webkit.org/show_bug.cgi?id=43466
+
+ * Scripts/webkitpy/layout_tests/port/websocket_server.py:
+ Increase timeout value: 5 second -> 10 second
+
+2010-08-04 Victor Wang <victorw@chromium.org>
+
+ Reviewed by Ojan Vafai.
+
+ -. Add result.json incremental merging functionality to test results app engine.
+ -. blobstore is not suitable for AE data merging and there is no API to
+ programatically edit existing blob or write a new one yet, so replace blobstore
+ with datastore. If file is oversize (>1000*1000 bytes), store file data in
+ multiple datastore entries.
+ -. Fix styles.
+
+ Test: jsonresults_unittest to test merging logics.
+
+ https://bugs.webkit.org/show_bug.cgi?id=38599
+
+ * TestResultServer/handlers/dashboardhandler.py:
+ * TestResultServer/handlers/menu.py:
+ * TestResultServer/handlers/testfilehandler.py:
+ * TestResultServer/main.py:
+ * TestResultServer/model/dashboardfile.py:
+ * TestResultServer/model/datastorefile.py: Added.
+ * TestResultServer/model/jsonresults.py: Added.
+ * TestResultServer/model/jsonresults_unittest.py: Added.
+ * TestResultServer/model/testfile.py:
+ * TestResultServer/templates/uploadform.html:
+
+2010-08-04 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Kenneth Christiansen.
+
+ [Qt] [QtTestBrowser] Remove unneeded QAction class members
+ https://bugs.webkit.org/show_bug.cgi?id=43518
+
+ LauncherWindow class has two totally unneeded class members: m_flopAnimated and
+ m_flipYAnimated. Also, in initializeView method there are some dead code block
+ trying to connect them at the wrong time, when they have not been instanciated.
+
+ This patch:
+
+ - removes the two cited class members in favor of local variables in createChrome method;
+ - removes the dead code block.
+
+ * QtTestBrowser/launcherwindow.cpp:
+ (LauncherWindow::LauncherWindow):
+ (LauncherWindow::initializeView):
+ (LauncherWindow::createChrome):
+ * QtTestBrowser/launcherwindow.h:
+
+2010-08-04 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Simon Hausmann and Kenneth Christiansen.
+
+ [Qt] [QtTestBrowser] Clean up static and global menu state controls
+ https://bugs.webkit.org/show_bug.cgi?id=43448
+
+ After LauncherWindow class was refactored out of from main.cpp, all global variables that
+ were hanging in main.cpp became temporarily public static class members of newly added
+ LauncherWindow class. This design was not properly handling the initial purpose of the
+ global variables: newly created launcher windows should inherit the settings of the originating
+ one.
+
+ In order to properly fix the problem, this patch introduces a WindowOptions class, as a POD. It
+ comprises all data needed to handling the goal described above.
+
+ * QtTestBrowser/launcherwindow.cpp:
+ (LauncherWindow::LauncherWindow): The class now receives an optional WindowOptions pointer object
+ holding all user settings configured in the menus and command line.
+ It also receices an optional QGraphicsScene points in case we are doing
+ a "Clone Window".
+ (LauncherWindow::init): Removed the usesGraphics parameter because the class member m_userData holds its
+ value.
+ (LauncherWindow::initializeView): Ditto.
+ (LauncherWindow::createChrome): Changed all references to gXXX to m_userData.XXX
+ (LauncherWindow::applyPrefs): Removed the "LauncherWindow* source" parameter. All data needed to properly
+ apply the preferences is provided by m_userData.
+ (LauncherWindow::toggleAcceleratedCompositing): Change gXXX by m_userData.XXX
+ (LauncherWindow::toggleResizesToContents): Ditto.
+ (LauncherWindow::toggleWebGL): Ditto.
+ (LauncherWindow::toggleFrameFlattening): Ditto.
+ (LauncherWindow::toggleQGLWidgetViewport): Ditto.
+ (LauncherWindow::changeViewportUpdateMode): Ditto.
+ (LauncherWindow::showFPS): Ditto.
+ (LauncherWindow::newWindow): Changed to pass the userData.
+ (LauncherWindow::cloneWindow): Ditto.
+ * QtTestBrowser/launcherwindow.h:
+ (WindowOptions::WindowOptions):
+ * QtTestBrowser/main.cpp:
+ (requiresGraphicsView):
+ (LauncherApplication::handleUserOptions):
+ (main):
+
+2010-08-04 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix for gcc not importing all symbols from convenience libraries.
+ Works on 10.6 only for Mac until the build system is reworked.
+
+ * wx/build/settings.py:
+
+2010-08-04 Markus Goetz <Markus.Goetz@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Change wording in QtTestBrowser
+ https://bugs.webkit.org/show_bug.cgi?id=43241
+
+ * QtTestBrowser/launcherwindow.cpp:
+ (LauncherWindow::createChrome):
+
+2010-08-04 Aaron Boodman <aa@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ prepare-ChangeLog fails mysteriously if curl doesn't support ssl
+ https://bugs.webkit.org/show_bug.cgi?id=43460
+
+ * Scripts/prepare-ChangeLog:
+
+2010-08-03 MORITA Hajime <morrita@google.com>
+
+ Reviewed by Tony Chang.
+
+ [DRT] Assertion failed when drag and move a draggable element.
+ https://bugs.webkit.org/show_bug.cgi?id=41695
+
+ mouseMoveToX() did call [WebHTMLView mouseDragged] even if dragging started.
+ But Cocoa doesn't call mouseDragged() until dragging is done.
+ Other part of DumpRenderTree also assumes Cocoa behavior and an assertion
+ on UIDelegate failed when mouseDragged() is called during dragging.
+ This change eliminated the mouseDragged() call when dragging begins,
+ which is implicated by draggingInfo instance.
+
+ * DumpRenderTree/mac/EventSendingController.mm:
+ (-[EventSendingController mouseMoveToX:Y:]):
+
+ Test: fast/events/dragging-mouse-moves.html
+
+2010-08-02 Steve Block <steveblock@google.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Adds Geolocation LayoutTests for the case where permission is not granted or denied immediately
+ https://bugs.webkit.org/show_bug.cgi?id=40002
+
+ The code in LayoutTestController::setGeolocationPermission() was moved to
+ setGeolocationPermissionCommon() to allow each port to provide its own
+ implementation of setGeolocationPermission().
+
+ For the Mac port, setGeolocationPermission() notifies the UIDelegate of the
+ new permission, so it can call back to WebCore if permission requests are in
+ progress and are waiting for a response. A minor fix to the Mac
+ MockGeolocationProvider was also required to make sure that the mock provider
+ calls back to WebCore when it is first started.
+
+ For other ports, LayoutTestController::setGeolocationPermission() is not
+ implemented.
+
+ * DumpRenderTree/LayoutTestController.cpp:
+ (LayoutTestController::setGeolocationPermissionCommon):
+ * DumpRenderTree/LayoutTestController.h:
+ * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
+ (LayoutTestController::setGeolocationPermission):
+ * DumpRenderTree/mac/LayoutTestControllerMac.mm:
+ (LayoutTestController::setGeolocationPermission):
+ * DumpRenderTree/mac/MockGeolocationProvider.mm:
+ (-[MockGeolocationProvider registerWebView:]):
+ * DumpRenderTree/mac/UIDelegate.h:
+ * DumpRenderTree/mac/UIDelegate.mm:
+ (-[UIDelegate webView:decidePolicyForGeolocationRequestFromOrigin:frame:listener:]):
+ (-[UIDelegate setGeolocationPermission:]):
+ (-[UIDelegate dealloc]):
+ * DumpRenderTree/win/LayoutTestControllerWin.cpp:
+ (LayoutTestController::setGeolocationPermission):
+ * DumpRenderTree/wx/LayoutTestControllerWx.cpp:
+ (LayoutTestController::setGeolocationPermission):
+
+2010-08-03 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [DRT/Chromium] Implement --testshell-startup-dialog
+ https://bugs.webkit.org/show_bug.cgi?id=40616
+
+ * DumpRenderTree/chromium/DumpRenderTree.cpp:
+ (main): Check --testshell-startup-dialog, and call openStartUpDialog()
+ if it is specfied.
+ * DumpRenderTree/chromium/TestShell.h:
+ Declare openStartUpDialog().
+ * DumpRenderTree/chromium/TestShellGtk.cpp:
+ (openStartupDialog):
+ * DumpRenderTree/chromium/TestShellMac.mm:
+ (openStartupDialog):
+ * DumpRenderTree/chromium/TestShellWin.cpp:
+ (openStartupDialog):
+
+2010-08-03 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [DRT/Chromium] Remove dependency of base/md5.h
+ https://bugs.webkit.org/show_bug.cgi?id=43403
+
+ * DumpRenderTree/chromium/TestShell.cpp:
+ (TestShell::dumpImage): Use wtf/MD5.h
+
+2010-08-03 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by David Kilzer.
+
+ Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
+ https://bugs.webkit.org/show_bug.cgi?id=40627
+
+ Part 6 - LayoutTest and Cleanup
+
+ Allow tests to delete application caches and set application cache
+ origin quotas, so they can be tested.
+
+ * DumpRenderTree/LayoutTestController.cpp:
+ (LayoutTestController::LayoutTestController):
+ (dumpApplicationCacheDelegateCallbacksCallback): JavaScript callback, delegates to the controller.
+ (clearAllApplicationCachesCallback): should delete all application caches.
+ (setApplicationCacheOriginQuotaCallback): should set the origin quota for the localhost tests.
+ (LayoutTestController::staticFunctions):
+ * DumpRenderTree/LayoutTestController.h:
+ (LayoutTestController::dumpApplicationCacheDelegateCallbacks): accessor to see if application cache callbacks should be output.
+ (LayoutTestController::setDumpApplicationCacheDelegateCallbacks): enable or disable debug output when the application cache quota is reached.
+
+ Mac implementation.
+
+ * DumpRenderTree/mac/LayoutTestControllerMac.mm:
+ (LayoutTestController::clearAllApplicationCaches): delete application caches.
+ (LayoutTestController::setApplicationCacheOriginQuota): set the quota for localhost.
+ * DumpRenderTree/mac/UIDelegate.mm:
+ (-[UIDelegate webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:]): style fix.
+ (-[UIDelegate webView:exceededApplicationCacheOriginQuotaForSecurityOrigin:]): reset the quota.
+
+ Stub implementations for other platforms.
+
+ * DumpRenderTree/chromium/LayoutTestController.cpp:
+ (LayoutTestController::LayoutTestController):
+ (LayoutTestController::clearAllApplicationCaches):
+ (LayoutTestController::setApplicationCacheOriginQuota):
+ * DumpRenderTree/chromium/LayoutTestController.h:
+ * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
+ (LayoutTestController::clearAllApplicationCaches):
+ (LayoutTestController::setApplicationCacheOriginQuota):
+ * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
+ (LayoutTestController::clearAllApplicationCaches):
+ (LayoutTestController::setApplicationCacheOriginQuota):
+ * DumpRenderTree/qt/LayoutTestControllerQt.h:
+ * DumpRenderTree/win/LayoutTestControllerWin.cpp:
+ (LayoutTestController::clearAllApplicationCaches):
+ (LayoutTestController::setApplicationCacheOriginQuota):
+ * DumpRenderTree/wx/LayoutTestControllerWx.cpp:
+ (LayoutTestController::clearAllApplicationCaches):
+ (LayoutTestController::setApplicationCacheOriginQuota):
+
+2010-08-03 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by David Kilzer.
+
+ Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
+ https://bugs.webkit.org/show_bug.cgi?id=40627
+
+ Part 5 - Refactor Quota Management in WebSecurityOrigin into Managers
+
+ Change old style calls to make use of the managers.
+
+ * DumpRenderTree/mac/LayoutTestControllerMac.mm:
+ (LayoutTestController::setDatabaseQuota):
+ * DumpRenderTree/mac/UIDelegate.mm:
+ (-[UIDelegate webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:]):
+
+2010-08-03 Mark Rowe <mrowe@apple.com>
+
+ Add a new Leopard build slave to run the release tests.
+
+ * BuildSlaveSupport/build.webkit.org-config/config.json:
+
+2010-08-03 Jon Honeycutt <jhoneycutt@apple.com>
+
+ WebKitTestRunner needs to activate the Mac font ascent hack
+ https://bugs.webkit.org/show_bug.cgi?id=43404
+
+ Reviewed by Darin Adler.
+
+ * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
+ (WTR::InjectedBundle::initialize):
+ Call WKBundleActivateMacFontAscentHack().
+
+2010-08-03 Alex Milowski <alex@milowski.com>
+
+ Reviewed by Beth Dakin.
+
+ Changed the default for MathML support so that is is enabled by default.
+
+ * Scripts/build-webkit:
+
+2010-08-03 Sam Weinig <sam@webkit.org>
+
+ Roll r64566 back in this time with all the overloads in place..
+
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::InjectedBundlePage::shouldInsertNode):
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
+ * WebKitTestRunner/StringFunctions.h:
+ * WebKitTestRunner/TestInvocation.cpp:
+ (WTR::TestInvocation::resetPreferencesToConsistentValues):
+ (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
+ * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
+
+2010-08-03 Sam Weinig <sam@webkit.org>
+
+ Rollout r64566. It broke all the WebKit2 tests.
+
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::operator<<):
+ (WTR::InjectedBundlePage::shouldInsertNode):
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
+ * WebKitTestRunner/StringFunctions.h: Removed.
+ * WebKitTestRunner/TestInvocation.cpp:
+ (WTR::createWKURL):
+ (WTR::WKStringToUTF8):
+ (WTR::TestInvocation::resetPreferencesToConsistentValues):
+ (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
+ * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
+
+2010-08-03 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ WTR: Move all the utility functions for working with strings to a shared header.
+ https://bugs.webkit.org/show_bug.cgi?id=43386
+
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::InjectedBundlePage::shouldInsertNode):
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
+ * WebKitTestRunner/StringFunctions.h: Added.
+ * WebKitTestRunner/TestInvocation.cpp:
+ (WTR::TestInvocation::resetPreferencesToConsistentValues):
+ (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
+ * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
+
+2010-08-02 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Kenneth Christiansen.
+
+ [Qt] QtTestBrowser not setting preferredContentsSize for resizesToContents
+ https://bugs.webkit.org/show_bug.cgi?id=43168
+
+ QGraphicsWebView resizesToContents property has to work together with QWebPage's
+ setPreferredContentsSize as stated by the docs. Patch addresses that for QtTestBrowser.
+
+ * QtTestBrowser/launcherwindow.cpp:
+ (LauncherWindow::applyPrefs):
+ * QtTestBrowser/webview.cpp:
+ (WebViewGraphicsBased::setResizesToContents): Properly handle scene, webview and viewport sizes
+ needed when toggle resizesToContents on/off.
+ (WebViewGraphicsBased::resizeEvent):
+ * QtTestBrowser/webview.h:
+ (WebViewGraphicsBased::setCustomLayoutSize): Setter helper.
+ (WebViewGraphicsBased::customLayoutSize): Getter helper.
+
+2010-08-03 Jochen Eisinger <jochen@chromium.org>
+
+ Unreviewed. Adding myself as committer.
+
+ * Scripts/webkitpy/common/config/committers.py:
+
+2010-08-02 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Chromium DevTools: Get rid of DevTools RPC.
+
+ https://bugs.webkit.org/show_bug.cgi?id=43335
+
+ * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
+ (DRTDevToolsAgent::sendMessageToInspectorFrontend):
+ (DRTDevToolsAgent::call):
+ * DumpRenderTree/chromium/DRTDevToolsAgent.h:
+ * DumpRenderTree/chromium/DRTDevToolsCallArgs.h:
+ (DRTDevToolsCallArgs::DRTDevToolsCallArgs):
+ * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
+ (DRTDevToolsClient::sendMessageToBackend):
+ (DRTDevToolsClient::call):
+ * DumpRenderTree/chromium/DRTDevToolsClient.h:
+
+2010-08-02 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [DRT/Chromium] Remove dependencies to some Chromium headers
+ https://bugs.webkit.org/show_bug.cgi?id=43396
+
+ * DumpRenderTree/chromium/CppVariant.h:
+ Remove base/basictypes.h because webkit_support.h contains it.
+ * DumpRenderTree/chromium/EventSender.cpp:
+ (getCurrentEventTimeSec): Use new wrapper function.
+ * DumpRenderTree/chromium/TestNavigationController.h:
+ Remove base/basictypes.h because webkit_support.h contains it.
+ * DumpRenderTree/chromium/TestShell.cpp:
+ (dumpHistoryItem): Use new wrapper function.
+ * DumpRenderTree/chromium/WebViewHost.cpp:
+ (WebViewHost::cancelledError): Use new wrapper function.
+ (WebViewHost::didFailResourceLoad): Use new wrapper function.
+
+2010-08-02 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] DRT implement execCommand()
+ https://bugs.webkit.org/show_bug.cgi?id=35351
+
+ * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
+ (LayoutTestController::execCommand): Implement using webkit_web_view_execute_core_command_by_name.
+ (LayoutTestController::isCommandEnabled): Implement using webkit_web_view_is_command_enabled.
+ (LayoutTestController::setCacheModel): Move below LayoutTestController::isCommandEnabled.
+
2010-08-02 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
@@ -8,6 +1002,21 @@
2010-08-02 Jon Honeycutt <jhoneycutt@apple.com>
+ WebKitTestRunner needs to support loading custom fonts (via the
+ WEBKIT_TESTFONTS environment variable)
+ https://bugs.webkit.org/show_bug.cgi?id=42782
+
+ Reviewed by Adam Roben.
+
+ * WebKitTestRunner/InjectedBundle/win/ActivateFonts.cpp:
+ (WTR::fontsPath):
+ Copied from DRT code. Removed the fallback to DumpRenderTree.resources/,
+ as this directory doesn't appear to be created anymore.
+ (WTR::activateFonts):
+ Loop through the fonts, and call AddFontResourceExW() for each.
+
+2010-08-02 Jon Honeycutt <jhoneycutt@apple.com>
+
Restore the WebKitTestRunner.sln that was removed, and remove the
correct one.
diff --git a/WebKitTools/DumpRenderTree/LayoutTestController.cpp b/WebKitTools/DumpRenderTree/LayoutTestController.cpp
index d98164b..52b539c 100644
--- a/WebKitTools/DumpRenderTree/LayoutTestController.cpp
+++ b/WebKitTools/DumpRenderTree/LayoutTestController.cpp
@@ -41,7 +41,8 @@
#include <wtf/RefPtr.h>
LayoutTestController::LayoutTestController(const std::string& testPathOrURL, const std::string& expectedPixelHash)
- : m_dumpAsPDF(false)
+ : m_dumpApplicationCacheDelegateCallbacks(false)
+ , m_dumpAsPDF(false)
, m_dumpAsText(false)
, m_dumpBackForwardList(false)
, m_dumpChildFrameScrollPositions(false)
@@ -92,6 +93,13 @@ PassRefPtr<LayoutTestController> LayoutTestController::create(const std::string&
// Static Functions
+static JSValueRef dumpApplicationCacheDelegateCallbacksCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
+ controller->setDumpApplicationCacheDelegateCallbacks(true);
+ return JSValueMakeUndefined(context);
+}
+
static JSValueRef dumpAsPDFCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
@@ -310,6 +318,15 @@ static JSValueRef callShouldCloseOnWebViewCallback(JSContextRef context, JSObjec
return JSValueMakeBoolean(context, controller->callShouldCloseOnWebView());
}
+static JSValueRef clearAllApplicationCachesCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ // Has mac implementation
+ LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
+ controller->clearAllApplicationCaches();
+
+ return JSValueMakeUndefined(context);
+}
+
static JSValueRef clearAllDatabasesCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
// Has mac & windows implementation
@@ -842,7 +859,21 @@ static JSValueRef setAppCacheMaximumSizeCallback(JSContextRef context, JSObjectR
controller->setAppCacheMaximumSize(static_cast<unsigned long long>(size));
return JSValueMakeUndefined(context);
+}
+
+static JSValueRef setApplicationCacheOriginQuotaCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ // Has mac implementation
+ if (argumentCount < 1)
+ return JSValueMakeUndefined(context);
+ LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
+
+ double size = JSValueToNumber(context, arguments[0], NULL);
+ if (!isnan(size))
+ controller->setApplicationCacheOriginQuota(static_cast<unsigned long long>(size));
+
+ return JSValueMakeUndefined(context);
}
static JSValueRef setAuthenticationPasswordCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
@@ -1019,6 +1050,20 @@ static JSValueRef setMockGeolocationErrorCallback(JSContextRef context, JSObject
return JSValueMakeUndefined(context);
}
+static JSValueRef setMockSpeechInputResultCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ if (argumentCount < 1)
+ return JSValueMakeUndefined(context);
+
+ JSRetainPtr<JSStringRef> result(Adopt, JSValueToStringCopy(context, arguments[0], exception));
+ ASSERT(!*exception);
+
+ LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
+ controller->setMockSpeechInputResult(result.get());
+
+ return JSValueMakeUndefined(context);
+}
+
static JSValueRef setNewWindowsCopyBackForwardListCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
// Has mac implementation
@@ -1763,6 +1808,7 @@ JSStaticFunction* LayoutTestController::staticFunctions()
{ "apiTestNewWindowDataLoadBaseURL", apiTestNewWindowDataLoadBaseURLCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "apiTestGoToCurrentBackForwardItem", apiTestGoToCurrentBackForwardItemCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "callShouldCloseOnWebView", callShouldCloseOnWebViewCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { "clearAllApplicationCaches", clearAllApplicationCachesCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "clearAllDatabases", clearAllDatabasesCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "clearBackForwardList", clearBackForwardListCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "clearPersistentUserStyleSheet", clearPersistentUserStyleSheetCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
@@ -1772,6 +1818,7 @@ JSStaticFunction* LayoutTestController::staticFunctions()
{ "disableImageLoading", disableImageLoadingCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "dispatchPendingLoadRequests", dispatchPendingLoadRequestsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "display", displayCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { "dumpApplicationCacheDelegateCallbacks", dumpApplicationCacheDelegateCallbacksCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "dumpAsText", dumpAsTextCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "dumpBackForwardList", dumpBackForwardListCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "dumpChildFrameScrollPositions", dumpChildFrameScrollPositionsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
@@ -1826,7 +1873,8 @@ JSStaticFunction* LayoutTestController::staticFunctions()
{ "setAllowUniversalAccessFromFileURLs", setAllowUniversalAccessFromFileURLsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setAllowFileAccessFromFileURLs", setAllowFileAccessFromFileURLsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setAlwaysAcceptCookies", setAlwaysAcceptCookiesCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "setAppCacheMaximumSize", setAppCacheMaximumSizeCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { "setAppCacheMaximumSize", setAppCacheMaximumSizeCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { "setApplicationCacheOriginQuota", setApplicationCacheOriginQuotaCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setAuthenticationPassword", setAuthenticationPasswordCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setAuthenticationUsername", setAuthenticationUsernameCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setAuthorAndUserStylesEnabled", setAuthorAndUserStylesEnabledCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
@@ -1848,6 +1896,7 @@ JSStaticFunction* LayoutTestController::staticFunctions()
{ "setMockDeviceOrientation", setMockDeviceOrientationCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setMockGeolocationError", setMockGeolocationErrorCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setMockGeolocationPosition", setMockGeolocationPositionCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { "setMockSpeechInputResult", setMockSpeechInputResultCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setNewWindowsCopyBackForwardList", setNewWindowsCopyBackForwardListCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setPOSIXLocale", setPOSIXLocaleCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setPersistentUserStyleSheetLocation", setPersistentUserStyleSheetLocationCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
@@ -1941,7 +1990,7 @@ void LayoutTestController::waitToDumpWatchdogTimerFired()
notifyDone();
}
-void LayoutTestController::setGeolocationPermission(bool allow)
+void LayoutTestController::setGeolocationPermissionCommon(bool allow)
{
m_isGeolocationPermissionSet = true;
m_geolocationPermission = allow;
diff --git a/WebKitTools/DumpRenderTree/LayoutTestController.h b/WebKitTools/DumpRenderTree/LayoutTestController.h
index 39cc3fb..f76870b 100644
--- a/WebKitTools/DumpRenderTree/LayoutTestController.h
+++ b/WebKitTools/DumpRenderTree/LayoutTestController.h
@@ -45,6 +45,7 @@ public:
void makeWindowObject(JSContextRef context, JSObjectRef windowObject, JSValueRef* exception);
void addDisallowedURL(JSStringRef url);
+ void clearAllApplicationCaches();
void clearAllDatabases();
void clearBackForwardList();
void clearPersistentUserStyleSheet();
@@ -79,6 +80,7 @@ public:
void setAllowUniversalAccessFromFileURLs(bool);
void setAllowFileAccessFromFileURLs(bool);
void setAppCacheMaximumSize(unsigned long long quota);
+ void setApplicationCacheOriginQuota(unsigned long long quota);
void setAuthorAndUserStylesEnabled(bool);
void setCacheModel(int);
void setCustomPolicyDelegate(bool setDelegate, bool permissive);
@@ -91,6 +93,7 @@ public:
void setMockDeviceOrientation(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma);
void setMockGeolocationError(int code, JSStringRef message);
void setMockGeolocationPosition(double latitude, double longitude, double accuracy);
+ void setMockSpeechInputResult(JSStringRef result);
void setPersistentUserStyleSheetLocation(JSStringRef path);
void setPluginsEnabled(bool flag);
void setPopupBlockingEnabled(bool flag);
@@ -126,6 +129,9 @@ public:
bool generatePixelResults() const { return m_generatePixelResults; }
void setGeneratePixelResults(bool generatePixelResults) { m_generatePixelResults = generatePixelResults; }
+ bool dumpApplicationCacheDelegateCallbacks() const { return m_dumpApplicationCacheDelegateCallbacks; }
+ void setDumpApplicationCacheDelegateCallbacks(bool dumpCallbacks) { m_dumpApplicationCacheDelegateCallbacks = dumpCallbacks; }
+
bool dumpBackForwardList() const { return m_dumpBackForwardList; }
void setDumpBackForwardList(bool dumpBackForwardList) { m_dumpBackForwardList = dumpBackForwardList; }
@@ -287,6 +293,9 @@ public:
private:
LayoutTestController(const std::string& testPathOrURL, const std::string& expectedPixelHash);
+ void setGeolocationPermissionCommon(bool allow);
+
+ bool m_dumpApplicationCacheDelegateCallbacks;
bool m_dumpAsPDF;
bool m_dumpAsText;
bool m_dumpBackForwardList;
diff --git a/WebKitTools/DumpRenderTree/chromium/CppVariant.h b/WebKitTools/DumpRenderTree/chromium/CppVariant.h
index d34a163..3aa5abb 100644
--- a/WebKitTools/DumpRenderTree/chromium/CppVariant.h
+++ b/WebKitTools/DumpRenderTree/chromium/CppVariant.h
@@ -42,8 +42,8 @@
#ifndef CppVariant_h
#define CppVariant_h
-#include "base/basictypes.h"
#include "public/WebBindings.h"
+#include "webkit/support/webkit_support.h"
#include <string>
#include <wtf/Vector.h>
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp
index 0ff77a0..b05fe21 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp
@@ -36,7 +36,6 @@
#include "public/WebCString.h"
#include "public/WebDevToolsAgent.h"
-#include "public/WebDevToolsMessageData.h"
#include "public/WebString.h"
#include "public/WebView.h"
#include "webkit/support/webkit_support.h"
@@ -55,12 +54,17 @@ DRTDevToolsAgent::DRTDevToolsAgent()
WebDevToolsAgent::setMessageLoopDispatchHandler(&DRTDevToolsAgent::dispatchMessageLoop);
}
+void DRTDevToolsAgent::reset()
+{
+ m_callMethodFactory.RevokeAll();
+}
+
void DRTDevToolsAgent::setWebView(WebView* webView)
{
m_webView = webView;
}
-void DRTDevToolsAgent::sendMessageToFrontend(const WebDevToolsMessageData& data)
+void DRTDevToolsAgent::sendMessageToInspectorFrontend(const WebKit::WebString& data)
{
if (m_drtDevToolsClient)
m_drtDevToolsClient->asyncCall(DRTDevToolsCallArgs(data));
@@ -100,7 +104,7 @@ void DRTDevToolsAgent::call(const DRTDevToolsCallArgs &args)
{
WebDevToolsAgent* agent = webDevToolsAgent();
if (agent)
- agent->dispatchMessageFromFrontend(args.m_data);
+ agent->dispatchOnInspectorBackend(args.m_data);
if (DRTDevToolsCallArgs::callsCount() == 1 && m_drtDevToolsClient)
m_drtDevToolsClient->allMessagesProcessed();
}
@@ -121,7 +125,7 @@ void DRTDevToolsAgent::attach(DRTDevToolsClient* client)
agent->attach();
}
-void DRTDevToolsAgent::detach(DRTDevToolsClient* client)
+void DRTDevToolsAgent::detach()
{
ASSERT(m_drtDevToolsClient);
WebDevToolsAgent* agent = webDevToolsAgent();
@@ -130,6 +134,12 @@ void DRTDevToolsAgent::detach(DRTDevToolsClient* client)
m_drtDevToolsClient = 0;
}
+void DRTDevToolsAgent::frontendLoaded() {
+ WebDevToolsAgent* agent = webDevToolsAgent();
+ if (agent)
+ agent->frontendLoaded();
+}
+
bool DRTDevToolsAgent::setTimelineProfilingEnabled(bool enabled)
{
WebDevToolsAgent* agent = webDevToolsAgent();
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h
index 37fc119..df52866 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h
@@ -52,11 +52,12 @@ class DRTDevToolsAgent : public WebKit::WebDevToolsAgentClient
public:
DRTDevToolsAgent();
virtual ~DRTDevToolsAgent() {}
+ void reset();
void setWebView(WebKit::WebView*);
// WebDevToolsAgentClient implementation.
- virtual void sendMessageToFrontend(const WebKit::WebDevToolsMessageData&);
+ virtual void sendMessageToInspectorFrontend(const WebKit::WebString&);
virtual int hostIdentifier() { return m_routingID; }
virtual void forceRepaint();
virtual void runtimeFeatureStateChanged(const WebKit::WebString& feature, bool enabled);
@@ -67,7 +68,8 @@ public:
void asyncCall(const DRTDevToolsCallArgs&);
void attach(DRTDevToolsClient*);
- void detach(DRTDevToolsClient*);
+ void detach();
+ void frontendLoaded();
bool evaluateInWebInspector(long callID, const std::string& script);
bool setTimelineProfilingEnabled(bool enable);
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsCallArgs.h b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsCallArgs.h
index e4a3d48..b1ac2ec 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsCallArgs.h
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsCallArgs.h
@@ -31,22 +31,15 @@
#ifndef DRTDevToolsCallArgs_h
#define DRTDevToolsCallArgs_h
-#include "public/WebDevToolsMessageData.h"
#include "public/WebString.h"
#include <wtf/Assertions.h>
class DRTDevToolsCallArgs {
public:
- DRTDevToolsCallArgs(const WebKit::WebDevToolsMessageData& data)
+ DRTDevToolsCallArgs(const WebKit::WebString& data)
: m_data(data)
{
++m_callsCount;
-
- // The same behaviour as we have in case of IPC.
- for (size_t i = 0; i < m_data.arguments.size(); ++i) {
- if (m_data.arguments[i].isNull())
- m_data.arguments[i] = WebKit::WebString::fromUTF8("");
- }
}
DRTDevToolsCallArgs(const DRTDevToolsCallArgs& args)
@@ -63,7 +56,7 @@ public:
static int callsCount() { return m_callsCount; }
- WebKit::WebDevToolsMessageData m_data;
+ WebKit::WebString m_data;
private:
static int m_callsCount;
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp
index e14f008..42f3724 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp
@@ -61,10 +61,20 @@ DRTDevToolsClient::~DRTDevToolsClient()
// m_drtDevToolsAgent and we should clean pending requests a bit earlier.
m_callMethodFactory.RevokeAll();
if (m_drtDevToolsAgent)
- m_drtDevToolsAgent->detach(this);
+ m_drtDevToolsAgent->detach();
}
-void DRTDevToolsClient::sendMessageToAgent(const WebDevToolsMessageData& data)
+void DRTDevToolsClient::reset()
+{
+ m_callMethodFactory.RevokeAll();
+}
+
+void DRTDevToolsClient::sendFrontendLoaded() {
+ if (m_drtDevToolsAgent)
+ m_drtDevToolsAgent->frontendLoaded();
+}
+
+void DRTDevToolsClient::sendMessageToBackend(const WebString& data)
{
if (m_drtDevToolsAgent)
m_drtDevToolsAgent->asyncCall(DRTDevToolsCallArgs(data));
@@ -103,7 +113,7 @@ void DRTDevToolsClient::asyncCall(const DRTDevToolsCallArgs& args)
void DRTDevToolsClient::call(const DRTDevToolsCallArgs& args)
{
- m_webDevToolsFrontend->dispatchMessageFromAgent(args.m_data);
+ m_webDevToolsFrontend->dispatchOnInspectorFrontend(args.m_data);
if (DRTDevToolsCallArgs::callsCount() == 1)
allMessagesProcessed();
}
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h
index f08644b..37b1e9d 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h
@@ -53,9 +53,11 @@ class DRTDevToolsClient : public WebKit::WebDevToolsFrontendClient
public:
DRTDevToolsClient(DRTDevToolsAgent*, WebKit::WebView*);
virtual ~DRTDevToolsClient();
+ void reset();
// WebDevToolsFrontendClient implementation
- virtual void sendMessageToAgent(const WebKit::WebDevToolsMessageData&);
+ virtual void sendFrontendLoaded();
+ virtual void sendMessageToBackend(const WebKit::WebString&);
virtual void sendDebuggerCommandToAgent(const WebKit::WebString& command);
virtual void activateWindow();
diff --git a/WebKitTools/DumpRenderTree/chromium/DumpRenderTree.cpp b/WebKitTools/DumpRenderTree/chromium/DumpRenderTree.cpp
index 2885cf6..726e412 100644
--- a/WebKitTools/DumpRenderTree/chromium/DumpRenderTree.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/DumpRenderTree.cpp
@@ -36,8 +36,6 @@
using namespace std;
-void platformInit();
-
static const char optionComplexText[] = "--complex-text";
static const char optionDumpAllPixels[] = "--dump-all-pixels";
static const char optionNotree[] = "--notree";
@@ -48,6 +46,7 @@ static const char optionTree[] = "--tree";
static const char optionPixelTestsWithName[] = "--pixel-tests=";
static const char optionTestShell[] = "--test-shell";
static const char optionAllowExternalPages[] = "--allow-external-pages";
+static const char optionStartupDialog[] = "--testshell-startup-dialog";
static void runTest(TestShell& shell, TestParams& params, const string& testName, bool testShellMode)
{
@@ -91,6 +90,7 @@ int main(int argc, char* argv[])
bool serverMode = false;
bool testShellMode = false;
bool allowExternalPages = false;
+ bool startupDialog = false;
for (int i = 1; i < argc; ++i) {
string argument(argv[i]);
if (argument == "-")
@@ -107,6 +107,8 @@ int main(int argc, char* argv[])
serverMode = true;
} else if (argument == optionAllowExternalPages)
allowExternalPages = true;
+ else if (argument == optionStartupDialog)
+ startupDialog = true;
else if (argument.size() && argument[0] == '-')
fprintf(stderr, "Unknown option: %s\n", argv[i]);
else
@@ -117,6 +119,9 @@ int main(int argc, char* argv[])
return EXIT_FAILURE;
}
+ if (startupDialog)
+ openStartupDialog();
+
{ // Explicit scope for the TestShell instance.
TestShell shell(testShellMode);
shell.setAllowExternalPages(allowExternalPages);
diff --git a/WebKitTools/DumpRenderTree/chromium/EventSender.cpp b/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
index 4e84c96..bb3c07f 100644
--- a/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
@@ -45,7 +45,6 @@
#include "TestShell.h"
#include "base/keyboard_codes.h"
-#include "base/time.h"
#include "public/WebDragData.h"
#include "public/WebDragOperation.h"
#include "public/WebPoint.h"
@@ -124,7 +123,7 @@ static uint32 timeOffsetMs = 0;
static double getCurrentEventTimeSec()
{
- return (TimeTicks::Now().ToInternalValue() / Time::kMicrosecondsPerMillisecond + timeOffsetMs) / 1000.0;
+ return (webkit_support::GetCurrentTimeInMillisecond() + timeOffsetMs) / 1000.0;
}
static void advanceEventTime(int32_t deltaMs)
@@ -324,6 +323,7 @@ void EventSender::reset()
timeOffsetMs = 0;
touchModifiers = 0;
touchPoints.clear();
+ m_methodFactory.RevokeAll();
}
WebView* EventSender::webview()
diff --git a/WebKitTools/DumpRenderTree/chromium/ImageDiff.cpp b/WebKitTools/DumpRenderTree/chromium/ImageDiff.cpp
index 27e9946..d1adc3d 100644
--- a/WebKitTools/DumpRenderTree/chromium/ImageDiff.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/ImageDiff.cpp
@@ -321,12 +321,12 @@ static bool writeFile(const char* outFile, const unsigned char* data, size_t dat
{
FILE* file = fopen(outFile, "wb");
if (!file) {
- fprintf(stderr, "ImageDiff: Unable to create file \"%s\"\n", file);
+ fprintf(stderr, "ImageDiff: Unable to create file \"%s\"\n", outFile);
return false;
}
if (dataSize != fwrite(data, 1, dataSize, file)) {
fclose(file);
- fprintf(stderr, "ImageDiff: Unable to write data to file \"%s\"\n", file);
+ fprintf(stderr, "ImageDiff: Unable to write data to file \"%s\"\n", outFile);
return false;
}
fclose(file);
diff --git a/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp b/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp
index cd27c18..e82a65e 100644
--- a/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp
@@ -47,6 +47,7 @@
#include "public/WebSecurityPolicy.h"
#include "public/WebSettings.h"
#include "public/WebSize.h"
+#include "public/WebSpeechInputControllerMock.h"
#include "public/WebURL.h"
#include "public/WebView.h"
#include "webkit/support/webkit_support.h"
@@ -154,6 +155,8 @@ LayoutTestController::LayoutTestController(TestShell* shell)
bindMethod("setCallCloseOnWebViews", &LayoutTestController::setCallCloseOnWebViews);
bindMethod("setPrivateBrowsingEnabled", &LayoutTestController::setPrivateBrowsingEnabled);
bindMethod("setUseDashboardCompatibilityMode", &LayoutTestController::setUseDashboardCompatibilityMode);
+ bindMethod("clearAllApplicationCaches", &LayoutTestController::clearAllApplicationCaches);
+ bindMethod("setApplicationCacheOriginQuota", &LayoutTestController::setApplicationCacheOriginQuota);
bindMethod("setJavaScriptCanAccessClipboard", &LayoutTestController::setJavaScriptCanAccessClipboard);
bindMethod("setXSSAuditorEnabled", &LayoutTestController::setXSSAuditorEnabled);
@@ -172,6 +175,7 @@ LayoutTestController::LayoutTestController(TestShell* shell)
bindMethod("setMockGeolocationPosition", &LayoutTestController::setMockGeolocationPosition);
bindMethod("setMockGeolocationError", &LayoutTestController::setMockGeolocationError);
bindMethod("abortModal", &LayoutTestController::abortModal);
+ bindMethod("setMockSpeechInputResult", &LayoutTestController::setMockSpeechInputResult);
// The fallback method is called when an unknown method is invoked.
bindFallbackMethod(&LayoutTestController::fallbackMethod);
@@ -510,6 +514,7 @@ void LayoutTestController::reset()
else
m_closeRemainingWindows = true;
m_workQueue.reset();
+ m_timeoutFactory.RevokeAll();
}
void LayoutTestController::locationChangeDone()
@@ -648,6 +653,18 @@ void LayoutTestController::setUseDashboardCompatibilityMode(const CppArgumentLis
result->setNull();
}
+void LayoutTestController::clearAllApplicationCaches(const CppArgumentList&, CppVariant* result)
+{
+ // FIXME: implement to support Application Cache Quotas.
+ result->setNull();
+}
+
+void LayoutTestController::setApplicationCacheOriginQuota(const CppArgumentList&, CppVariant* result)
+{
+ // FIXME: implement to support Application Cache Quotas.
+ result->setNull();
+}
+
void LayoutTestController::setScrollbarPolicy(const CppArgumentList&, CppVariant* result)
{
// FIXME: implement.
@@ -1355,3 +1372,19 @@ void LayoutTestController::abortModal(const CppArgumentList& arguments, CppVaria
{
result->setNull();
}
+
+void LayoutTestController::setMockSpeechInputResult(const CppArgumentList& arguments, CppVariant* result)
+{
+ result->setNull();
+ if (arguments.size() < 1 || !arguments[0].isString())
+ return;
+
+ m_speechInputControllerMock->setMockRecognitionResult(cppVariantToWebString(arguments[0]));
+}
+
+WebKit::WebSpeechInputController* LayoutTestController::speechInputController(WebKit::WebSpeechInputListener* listener)
+{
+ if (!m_speechInputControllerMock.get())
+ m_speechInputControllerMock.set(WebSpeechInputControllerMock::create(listener));
+ return m_speechInputControllerMock.get();
+}
diff --git a/WebKitTools/DumpRenderTree/chromium/LayoutTestController.h b/WebKitTools/DumpRenderTree/chromium/LayoutTestController.h
index 6748352..fb91544 100644
--- a/WebKitTools/DumpRenderTree/chromium/LayoutTestController.h
+++ b/WebKitTools/DumpRenderTree/chromium/LayoutTestController.h
@@ -46,6 +46,13 @@
#include "public/WebString.h"
#include "public/WebURL.h"
#include <wtf/Deque.h>
+#include <wtf/OwnPtr.h>
+
+namespace WebKit {
+class WebSpeechInputController;
+class WebSpeechInputControllerMock;
+class WebSpeechInputListener;
+}
class TestShell;
@@ -250,6 +257,11 @@ public:
void addOriginAccessWhitelistEntry(const CppArgumentList&, CppVariant*);
void removeOriginAccessWhitelistEntry(const CppArgumentList&, CppVariant*);
+ // Clears all Application Caches.
+ void clearAllApplicationCaches(const CppArgumentList&, CppVariant*);
+ // Sets the Application Quota for the localhost origin.
+ void setApplicationCacheOriginQuota(const CppArgumentList&, CppVariant*);
+
// Clears all databases.
void clearAllDatabases(const CppArgumentList&, CppVariant*);
// Sets the default quota for all origins
@@ -293,10 +305,14 @@ public:
// Empty stub method to keep parity with object model exposed by global LayoutTestController.
void abortModal(const CppArgumentList&, CppVariant*);
+ // Speech input related functions.
+ void setMockSpeechInputResult(const CppArgumentList&, CppVariant*);
+
public:
// The following methods are not exposed to JavaScript.
void setWorkQueueFrozen(bool frozen) { m_workQueue.setFrozen(frozen); }
+ WebKit::WebSpeechInputController* speechInputController(WebKit::WebSpeechInputListener*);
bool shouldDumpAsText() { return m_dumpAsText; }
bool shouldDumpEditingCallbacks() { return m_dumpEditingCallbacks; }
bool shouldDumpFrameLoadCallbacks() { return m_dumpFrameLoadCallbacks; }
@@ -467,6 +483,8 @@ private:
CppVariant m_webHistoryItemCount;
WebKit::WebURL m_userStyleSheetLocation;
+
+ OwnPtr<WebKit::WebSpeechInputControllerMock> m_speechInputControllerMock;
};
#endif // LayoutTestController_h
diff --git a/WebKitTools/DumpRenderTree/chromium/MockSpellCheck.h b/WebKitTools/DumpRenderTree/chromium/MockSpellCheck.h
index 8c2ba92..c680340 100644
--- a/WebKitTools/DumpRenderTree/chromium/MockSpellCheck.h
+++ b/WebKitTools/DumpRenderTree/chromium/MockSpellCheck.h
@@ -73,7 +73,7 @@ private:
bool initializeIfNeeded();
// A table that consists of misspelled words.
- HashMap<WebCore::String, bool> m_misspelledWords;
+ HashMap<WTF::String, bool> m_misspelledWords;
// A flag representing whether or not this object is initialized.
bool m_initialized;
diff --git a/WebKitTools/DumpRenderTree/chromium/NotificationPresenter.h b/WebKitTools/DumpRenderTree/chromium/NotificationPresenter.h
index f30862f..5c7a400 100644
--- a/WebKitTools/DumpRenderTree/chromium/NotificationPresenter.h
+++ b/WebKitTools/DumpRenderTree/chromium/NotificationPresenter.h
@@ -61,10 +61,10 @@ private:
TestShell* m_shell;
// Set of allowed origins.
- HashSet<WebCore::String> m_allowedOrigins;
+ HashSet<WTF::String> m_allowedOrigins;
// Map of active replacement IDs to the titles of those notifications
- HashMap<WebCore::String, WebCore::String> m_replacements;
+ HashMap<WTF::String, WTF::String> m_replacements;
};
#endif // NotificationPresenter_h
diff --git a/WebKitTools/DumpRenderTree/chromium/TestNavigationController.cpp b/WebKitTools/DumpRenderTree/chromium/TestNavigationController.cpp
index 8b4f954..9653c07 100644
--- a/WebKitTools/DumpRenderTree/chromium/TestNavigationController.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/TestNavigationController.cpp
@@ -40,6 +40,17 @@ using namespace std;
// ----------------------------------------------------------------------------
// TestNavigationEntry
+PassRefPtr<TestNavigationEntry> TestNavigationEntry::create()
+{
+ return adoptRef(new TestNavigationEntry);
+}
+
+PassRefPtr<TestNavigationEntry> TestNavigationEntry::create(
+ int pageID, const WebURL& url, const WebString& title, const WebString& targetFrame)
+{
+ return adoptRef(new TestNavigationEntry(pageID, url, title, targetFrame));
+}
+
TestNavigationEntry::TestNavigationEntry()
: m_pageID(-1) {}
@@ -136,7 +147,7 @@ TestNavigationEntry* TestNavigationController::lastCommittedEntry() const
TestNavigationEntry* TestNavigationController::activeEntry() const
{
- TestNavigationEntry* entry = m_pendingEntry;
+ TestNavigationEntry* entry = m_pendingEntry.get();
if (!entry)
entry = lastCommittedEntry();
return entry;
@@ -182,14 +193,14 @@ void TestNavigationController::didNavigateToEntry(TestNavigationEntry* entry)
m_entries[existingEntryIndex].get() : 0;
if (!existingEntry) {
// No existing entry, then simply ignore this navigation!
- } else if (existingEntry == m_pendingEntry) {
+ } else if (existingEntry == m_pendingEntry.get()) {
// The given entry might provide a new URL... e.g., navigating back to a
// page in session history could have resulted in a new client redirect.
existingEntry->setURL(entry->URL());
existingEntry->setContentState(entry->contentState());
m_lastCommittedEntryIndex = m_pendingEntryIndex;
m_pendingEntryIndex = -1;
- m_pendingEntry = 0;
+ m_pendingEntry.clear();
} else if (m_pendingEntry && m_pendingEntry->pageID() == -1
&& GURL(m_pendingEntry->URL()) == GURL(existingEntry->URL().spec())) {
// Not a new navigation
@@ -206,15 +217,12 @@ void TestNavigationController::didNavigateToEntry(TestNavigationEntry* entry)
m_lastCommittedEntryIndex = existingEntryIndex;
}
- delete entry;
updateMaxPageID();
}
void TestNavigationController::discardPendingEntry()
{
- if (m_pendingEntryIndex == -1)
- delete m_pendingEntry;
- m_pendingEntry = 0;
+ m_pendingEntry.clear();
m_pendingEntryIndex = -1;
}
@@ -231,7 +239,7 @@ void TestNavigationController::insertEntry(TestNavigationEntry* entry)
}
}
- m_entries.append(linked_ptr<TestNavigationEntry>(entry));
+ m_entries.append(RefPtr<TestNavigationEntry>(entry));
m_lastCommittedEntryIndex = static_cast<int>(m_entries.size()) - 1;
updateMaxPageID();
}
@@ -250,10 +258,10 @@ void TestNavigationController::navigateToPendingEntry(bool reload)
// For session history navigations only the pending_entry_index_ is set.
if (!m_pendingEntry) {
ASSERT(m_pendingEntryIndex != -1);
- m_pendingEntry = m_entries[m_pendingEntryIndex].get();
+ m_pendingEntry = m_entries[m_pendingEntryIndex];
}
- if (m_host->navigate(*m_pendingEntry, reload)) {
+ if (m_host->navigate(*m_pendingEntry.get(), reload)) {
// Note: this is redundant if navigation completed synchronously because
// DidNavigateToEntry call this as well.
updateMaxPageID();
diff --git a/WebKitTools/DumpRenderTree/chromium/TestNavigationController.h b/WebKitTools/DumpRenderTree/chromium/TestNavigationController.h
index bd3c2f4..d75c3bf 100644
--- a/WebKitTools/DumpRenderTree/chromium/TestNavigationController.h
+++ b/WebKitTools/DumpRenderTree/chromium/TestNavigationController.h
@@ -31,13 +31,14 @@
#ifndef TestNavigationController_h
#define TestNavigationController_h
-#include "base/basictypes.h"
-#include "base/linked_ptr.h"
#include "public/WebDataSource.h"
#include "public/WebHistoryItem.h"
#include "public/WebString.h"
#include "public/WebURL.h"
+#include "webkit/support/webkit_support.h"
#include <string>
+#include <wtf/RefCounted.h>
+#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
// Associated with browser-initated navigations to hold tracking data.
@@ -56,16 +57,17 @@ public:
};
// Stores one back/forward navigation state for the test shell.
-class TestNavigationEntry: public Noncopyable {
+class TestNavigationEntry: public RefCounted<TestNavigationEntry> {
public:
- TestNavigationEntry();
- TestNavigationEntry(int pageID,
- const WebKit::WebURL&,
- const WebKit::WebString& title,
- const WebKit::WebString& targetFrame);
+ static PassRefPtr<TestNavigationEntry> create();
+ static PassRefPtr<TestNavigationEntry> create(
+ int pageID,
+ const WebKit::WebURL&,
+ const WebKit::WebString& title,
+ const WebKit::WebString& targetFrame);
// Virtual to allow test_shell to extend the class.
- ~TestNavigationEntry();
+ virtual ~TestNavigationEntry();
// Set / Get the URI
void setURL(const WebKit::WebURL& url) { m_url = url; }
@@ -86,6 +88,12 @@ public:
const WebKit::WebString& targetFrame() const { return m_targetFrame; }
private:
+ TestNavigationEntry();
+ TestNavigationEntry(int pageID,
+ const WebKit::WebURL&,
+ const WebKit::WebString& title,
+ const WebKit::WebString& targetFrame);
+
// Describes the current page that the tab represents. This is not relevant
// for all tab contents types.
int32_t m_pageID;
@@ -120,8 +128,7 @@ public:
// Causes the controller to go to the specified index.
void goToIndex(int);
- // Causes the controller to load the specified entry. The controller
- // assumes ownership of the entry.
+ // Causes the controller to load the specified entry.
// NOTE: Do not pass an entry that the controller already owns!
void loadEntry(TestNavigationEntry*);
@@ -156,9 +163,9 @@ public:
// Returns the index of the last committed entry.
int lastCommittedEntryIndex() const { return m_lastCommittedEntryIndex; }
- // Used to inform us of a navigation being committed for a tab. We will take
- // ownership of the entry. Any entry located forward to the current entry will
- // be deleted. The new entry becomes the current entry.
+ // Used to inform us of a navigation being committed for a tab. Any entry
+ // located forward to the current entry will be deleted. The new entry
+ // becomes the current entry.
void didNavigateToEntry(TestNavigationEntry*);
// Used to inform us to discard its pending entry.
@@ -180,14 +187,14 @@ private:
void updateMaxPageID();
// List of NavigationEntry for this tab
- typedef Vector<linked_ptr<TestNavigationEntry> > NavigationEntryList;
+ typedef Vector<RefPtr<TestNavigationEntry> > NavigationEntryList;
typedef NavigationEntryList::iterator NavigationEntryListIterator;
NavigationEntryList m_entries;
// An entry we haven't gotten a response for yet. This will be discarded
// when we navigate again. It's used only so we know what the currently
// displayed tab is.
- TestNavigationEntry* m_pendingEntry;
+ RefPtr<TestNavigationEntry> m_pendingEntry;
// currently visible entry
int m_lastCommittedEntryIndex;
diff --git a/WebKitTools/DumpRenderTree/chromium/TestShell.cpp b/WebKitTools/DumpRenderTree/chromium/TestShell.cpp
index 507f084..64c20b0 100644
--- a/WebKitTools/DumpRenderTree/chromium/TestShell.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/TestShell.cpp
@@ -35,10 +35,8 @@
#include "DRTDevToolsClient.h"
#include "LayoutTestController.h"
#include "WebViewHost.h"
-#include "base/md5.h" // FIXME: Wrap by webkit_support.
#include "base/string16.h"
#include "gfx/codec/png_codec.h" // FIXME: Remove dependecy. WebCore/platform/image-encoder is better?
-#include "net/base/escape.h" // FIXME: Remove dependency.
#include "public/WebDataSource.h"
#include "public/WebDocument.h"
#include "public/WebElement.h"
@@ -48,6 +46,7 @@
#include "public/WebScriptController.h"
#include "public/WebSettings.h"
#include "public/WebSize.h"
+#include "public/WebSpeechInputControllerMock.h"
#include "public/WebString.h"
#include "public/WebURLRequest.h"
#include "public/WebURLResponse.h"
@@ -58,6 +57,7 @@
#include <algorithm>
#include <cctype>
#include <vector>
+#include <wtf/MD5.h>
using namespace WebKit;
using namespace std;
@@ -278,6 +278,9 @@ void TestShell::resetTestController()
m_eventSender->reset();
m_webViewHost->reset();
m_notificationPresenter->reset();
+ m_drtDevToolsAgent->reset();
+ if (m_drtDevToolsClient)
+ m_drtDevToolsClient->reset();
}
void TestShell::loadURL(const WebURL& url)
@@ -422,7 +425,7 @@ static string dumpHistoryItem(const WebHistoryItem& item, int indent, bool isCur
url.replace(0, pos + layoutTestsPatternSize, fileTestPrefix);
} else if (!url.find(dataUrlPattern)) {
// URL-escape data URLs to match results upstream.
- string path = EscapePath(url.substr(dataUrlPatternSize));
+ string path = webkit_support::EscapePath(url.substr(dataUrlPatternSize));
url.replace(dataUrlPatternSize, url.length(), path);
}
@@ -585,13 +588,18 @@ void TestShell::dumpImage(skia::PlatformCanvas* canvas) const
// some images that are the pixel identical on windows and other platforms
// but have different MD5 sums. At this point, rebaselining all the windows
// tests is too much of a pain, so we just check in different baselines.
- MD5Context ctx;
- MD5Init(&ctx);
- MD5Update(&ctx, sourceBitmap.getPixels(), sourceBitmap.getSize());
-
- MD5Digest digest;
- MD5Final(&digest, &ctx);
- string md5hash = MD5DigestToBase16(digest);
+ MD5 digester;
+ Vector<uint8_t, 16> digestValue;
+ digester.addBytes(reinterpret_cast<const uint8_t*>(sourceBitmap.getPixels()), sourceBitmap.getSize());
+ digester.checksum(digestValue);
+ string md5hash;
+ md5hash.reserve(16 * 2);
+ for (unsigned i = 0; i < 16; ++i) {
+ char hex[3];
+ // Use "x", not "X". The string must be lowercased.
+ sprintf(hex, "%02x", digestValue[i]);
+ md5hash.append(hex);
+ }
// Only encode and dump the png if the hashes don't match. Encoding the image
// is really expensive.
diff --git a/WebKitTools/DumpRenderTree/chromium/TestShell.h b/WebKitTools/DumpRenderTree/chromium/TestShell.h
index 0615552..47261a3 100644
--- a/WebKitTools/DumpRenderTree/chromium/TestShell.h
+++ b/WebKitTools/DumpRenderTree/chromium/TestShell.h
@@ -185,5 +185,6 @@ private:
};
void platformInit(int*, char***);
+void openStartupDialog();
#endif // TestShell_h
diff --git a/WebKitTools/DumpRenderTree/chromium/TestShellGtk.cpp b/WebKitTools/DumpRenderTree/chromium/TestShellGtk.cpp
index a9d374c..56ee618 100644
--- a/WebKitTools/DumpRenderTree/chromium/TestShellGtk.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/TestShellGtk.cpp
@@ -194,3 +194,12 @@ void platformInit(int* argc, char*** argv)
setupFontconfig();
}
+
+void openStartupDialog()
+{
+ GtkWidget* dialog = gtk_message_dialog_new(
+ 0, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Attach to me?");
+ gtk_window_set_title(GTK_WINDOW(dialog), "DumpRenderTree");
+ gtk_dialog_run(GTK_DIALOG(dialog)); // Runs a nested message loop.
+ gtk_widget_destroy(dialog);
+}
diff --git a/WebKitTools/DumpRenderTree/chromium/TestShellMac.mm b/WebKitTools/DumpRenderTree/chromium/TestShellMac.mm
index 19cfd07..71d990e 100644
--- a/WebKitTools/DumpRenderTree/chromium/TestShellMac.mm
+++ b/WebKitTools/DumpRenderTree/chromium/TestShellMac.mm
@@ -127,3 +127,13 @@ void TestShell::waitTestFinished()
void platformInit(int*, char***)
{
}
+
+void openStartupDialog()
+{
+ // FIXME: This code doesn't work. Need NSApplication event loop?
+ NSAlert* alert = [[[NSAlert alloc] init] autorelease];
+ alert.messageText = @"Attach to me?";
+ alert.informativeText = @"This would probably be a good time to attach your debugger.";
+ [alert addButtonWithTitle:@"OK"];
+ [alert runModal];
+}
diff --git a/WebKitTools/DumpRenderTree/chromium/TestShellWin.cpp b/WebKitTools/DumpRenderTree/chromium/TestShellWin.cpp
index 72f800c..0d818c4 100644
--- a/WebKitTools/DumpRenderTree/chromium/TestShellWin.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/TestShellWin.cpp
@@ -149,3 +149,8 @@ void platformInit(int*, char***)
}
// We don't need to release the font explicitly.
}
+
+void openStartupDialog()
+{
+ ::MessageBox(0, L"Attach to me?", L"DumpRenderTree", MB_OK);
+}
diff --git a/WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp b/WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp
index c57aeb5..a145bf9 100644
--- a/WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp
@@ -35,7 +35,6 @@
#include "TestNavigationController.h"
#include "TestShell.h"
#include "TestWebWorker.h"
-#include "net/base/net_errors.h" // FIXME: can we remove this?
#include "public/WebCString.h"
#include "public/WebConsoleMessage.h"
#include "public/WebContextMenuData.h"
@@ -166,35 +165,6 @@ static void printResponseDescription(const WebURLResponse& response)
response.httpStatusCode());
}
-static void printErrorDescription(const WebURLError& error)
-{
- string domain = error.domain.utf8();
- int code = error.reason;
-
- if (domain == net::kErrorDomain) {
- domain = "NSURLErrorDomain";
- switch (error.reason) {
- case net::ERR_ABORTED:
- code = -999;
- break;
- case net::ERR_UNSAFE_PORT:
- // Our unsafe port checking happens at the network stack level, but we
- // make this translation here to match the behavior of stock WebKit.
- domain = "WebKitErrorDomain";
- code = 103;
- break;
- case net::ERR_ADDRESS_INVALID:
- case net::ERR_ADDRESS_UNREACHABLE:
- code = -1004;
- break;
- }
- } else
- LOG_ERROR("Unknown error domain");
-
- printf("<NSError domain %s, code %d, failing URL \"%s\">",
- domain.c_str(), code, error.unreachableURL.spec().data());
-}
-
static void printNodeDescription(const WebNode& node, int exception)
{
if (exception) {
@@ -531,6 +501,11 @@ WebKit::WebGeolocationService* WebViewHost::geolocationService()
return m_geolocationServiceMock.get();
}
+WebSpeechInputController* WebViewHost::speechInputController(WebKit::WebSpeechInputListener* listener)
+{
+ return m_shell->layoutTestController()->speechInputController(listener);
+}
+
// WebWidgetClient -----------------------------------------------------------
void WebViewHost::didInvalidateRect(const WebRect& rect)
@@ -715,11 +690,7 @@ WebURLError WebViewHost::cannotHandleRequestError(WebFrame*, const WebURLRequest
WebURLError WebViewHost::cancelledError(WebFrame*, const WebURLRequest& request)
{
- WebURLError error;
- error.domain = WebString::fromUTF8(net::kErrorDomain);
- error.reason = net::ERR_ABORTED;
- error.unreachableURL = request.url();
- return error;
+ return webkit_support::CreateCancelledError(request);
}
void WebViewHost::unableToImplementPolicyWithError(WebFrame* frame, const WebURLError& error)
@@ -960,7 +931,7 @@ void WebViewHost::didFailResourceLoad(WebFrame*, unsigned identifier, const WebU
if (m_shell->shouldDumpResourceLoadCallbacks()) {
printResourceDescription(identifier);
fputs(" - didFailLoadingWithError: ", stdout);
- printErrorDescription(error);
+ fputs(webkit_support::MakeURLErrorDescription(error).c_str(), stdout);
fputs("\n", stdout);
}
m_resourceIdentifierMap.remove(identifier);
@@ -1081,7 +1052,7 @@ void WebViewHost::loadURLForFrame(const WebURL& url, const WebString& frameName)
if (!url.isValid())
return;
TestShell::resizeWindowForTest(this, url);
- navigationController()->loadEntry(new TestNavigationEntry(-1, url, WebString(), frameName));
+ navigationController()->loadEntry(TestNavigationEntry::create(-1, url, WebString(), frameName).get());
}
bool WebViewHost::navigate(const TestNavigationEntry& entry, bool reload)
@@ -1180,7 +1151,7 @@ void WebViewHost::updateURL(WebFrame* frame)
WebDataSource* ds = frame->dataSource();
ASSERT(ds);
const WebURLRequest& request = ds->request();
- OwnPtr<TestNavigationEntry> entry(new TestNavigationEntry);
+ RefPtr<TestNavigationEntry> entry(TestNavigationEntry::create());
// The referrer will be empty on https->http transitions. It
// would be nice if we could get the real referrer from somewhere.
@@ -1194,7 +1165,7 @@ void WebViewHost::updateURL(WebFrame* frame)
if (!historyItem.isNull())
entry->setContentState(historyItem);
- navigationController()->didNavigateToEntry(entry.leakPtr());
+ navigationController()->didNavigateToEntry(entry.get());
updateAddressBar(frame->view());
m_lastPageIdUpdated = max(m_lastPageIdUpdated, m_pageId);
}
@@ -1207,7 +1178,7 @@ void WebViewHost::updateSessionHistory(WebFrame* frame)
if (m_pageId == -1)
return;
- TestNavigationEntry* entry = static_cast<TestNavigationEntry*>(navigationController()->entryWithPageID(m_pageId));
+ TestNavigationEntry* entry = navigationController()->entryWithPageID(m_pageId);
if (!entry)
return;
diff --git a/WebKitTools/DumpRenderTree/chromium/WebViewHost.h b/WebKitTools/DumpRenderTree/chromium/WebViewHost.h
index 1e51be7..d95c59f 100644
--- a/WebKitTools/DumpRenderTree/chromium/WebViewHost.h
+++ b/WebKitTools/DumpRenderTree/chromium/WebViewHost.h
@@ -46,6 +46,8 @@ class TestShell;
namespace WebKit {
class WebFrame;
class WebGeolocationServiceMock;
+class WebSpeechInputController;
+class WebSpeechInputListener;
class WebURL;
struct WebRect;
struct WebURLError;
@@ -83,8 +85,8 @@ class WebViewHost : public WebKit::WebViewClient, public WebKit::WebFrameClient,
void loadURLForFrame(const WebKit::WebURL&, const WebKit::WebString& frameName);
TestNavigationController* navigationController() { return m_navigationController.get(); }
- void addClearHeader(const WebCore::String& header) { m_clearHeaders.add(header); }
- const HashSet<WebCore::String>& clearHeaders() const { return m_clearHeaders; }
+ void addClearHeader(const WTF::String& header) { m_clearHeaders.add(header); }
+ const HashSet<WTF::String>& clearHeaders() const { return m_clearHeaders; }
// NavigationHost
virtual bool navigate(const TestNavigationEntry&, bool reload);
@@ -126,6 +128,7 @@ class WebViewHost : public WebKit::WebViewClient, public WebKit::WebFrameClient,
virtual void focusAccessibilityObject(const WebKit::WebAccessibilityObject&);
virtual WebKit::WebNotificationPresenter* notificationPresenter();
virtual WebKit::WebGeolocationService* geolocationService();
+ virtual WebKit::WebSpeechInputController* speechInputController(WebKit::WebSpeechInputListener*);
// WebKit::WebWidgetClient
virtual void didInvalidateRect(const WebKit::WebRect&);
@@ -259,7 +262,7 @@ private:
bool m_selectTrailingWhitespaceEnabled;
// Set of headers to clear in willSendRequest.
- HashSet<WebCore::String> m_clearHeaders;
+ HashSet<WTF::String> m_clearHeaders;
// true if we should block any redirects
bool m_blocksRedirects;
diff --git a/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp b/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
index 2aece10..b0c1cba 100644
--- a/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
+++ b/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
@@ -60,6 +60,8 @@ int webkit_web_frame_page_number_for_element_by_id(WebKitWebFrame* frame, const
int webkit_web_frame_number_of_pages(WebKitWebFrame* frame, float pageWidth, float pageHeight);
void webkit_web_inspector_execute_script(WebKitWebInspector* inspector, long callId, const gchar* script);
gchar* webkit_web_frame_marker_text_for_list_item(WebKitWebFrame* frame, JSContextRef context, JSValueRef nodeObject);
+void webkit_web_view_execute_core_command_by_name(WebKitWebView* webView, const gchar* name, const gchar* value);
+gboolean webkit_web_view_is_command_enabled(WebKitWebView* webView, const gchar* name);
}
static gchar* copyWebSettingKey(gchar* preferenceKey)
@@ -460,6 +462,18 @@ void LayoutTestController::setMockGeolocationError(int code, JSStringRef message
// See https://bugs.webkit.org/show_bug.cgi?id=28264.
}
+void LayoutTestController::setGeolocationPermission(bool allow)
+{
+ // FIXME: Implement for Geolocation layout tests.
+ setGeolocationPermissionCommon(allow);
+}
+
+void LayoutTestController::setMockSpeechInputResult(JSStringRef result)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool flag)
{
// FIXME: implement
@@ -504,18 +518,30 @@ bool LayoutTestController::elementDoesAutoCompleteForElementWithId(JSStringRef i
void LayoutTestController::execCommand(JSStringRef name, JSStringRef value)
{
- // FIXME: implement
+ WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame);
+ ASSERT(view);
+
+ gchar* cName = JSStringCopyUTF8CString(name);
+ gchar* cValue = JSStringCopyUTF8CString(value);
+ webkit_web_view_execute_core_command_by_name(view, cName, cValue);
+ g_free(cName);
+ g_free(cValue);
}
-void LayoutTestController::setCacheModel(int)
+bool LayoutTestController::isCommandEnabled(JSStringRef name)
{
- // FIXME: implement
+ WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame);
+ ASSERT(view);
+
+ gchar* cName = JSStringCopyUTF8CString(name);
+ gboolean result = webkit_web_view_is_command_enabled(view, cName);
+ g_free(cName);
+ return result;
}
-bool LayoutTestController::isCommandEnabled(JSStringRef /*name*/)
+void LayoutTestController::setCacheModel(int)
{
// FIXME: implement
- return false;
}
void LayoutTestController::setPersistentUserStyleSheetLocation(JSStringRef jsURL)
@@ -528,6 +554,16 @@ void LayoutTestController::clearPersistentUserStyleSheet()
// FIXME: implement
}
+void LayoutTestController::clearAllApplicationCaches()
+{
+ // FIXME: implement to support Application Cache quotas.
+}
+
+void LayoutTestController::setApplicationCacheOriginQuota(unsigned long long quota)
+{
+ // FIXME: implement to support Application Cache quotas.
+}
+
void LayoutTestController::clearAllDatabases()
{
webkit_remove_all_web_databases();
diff --git a/WebKitTools/DumpRenderTree/mac/EventSendingController.mm b/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
index 77999bd..9031c63 100644
--- a/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
+++ b/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
@@ -449,13 +449,13 @@ static int buildModifierFlags(const WebScriptObject* modifiers)
NSView *subView = [[mainFrame webView] hitTest:[event locationInWindow]];
if (subView) {
if (leftMouseButtonDown) {
- [subView mouseDragged:event];
if (draggingInfo) {
// Per NSDragging.h: draggingSources may not implement draggedImage:movedTo:
if ([[draggingInfo draggingSource] respondsToSelector:@selector(draggedImage:movedTo:)])
[[draggingInfo draggingSource] draggedImage:[draggingInfo draggedImage] movedTo:lastMousePosition];
[[mainFrame webView] draggingUpdated:draggingInfo];
- }
+ } else
+ [subView mouseDragged:event];
} else
[subView mouseMoved:event];
}
diff --git a/WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm b/WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm
index 7db7fff..c0eb722 100644
--- a/WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm
+++ b/WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm
@@ -33,6 +33,7 @@
#import "EditingDelegate.h"
#import "MockGeolocationProvider.h"
#import "PolicyDelegate.h"
+#import "UIDelegate.h"
#import "WorkQueue.h"
#import "WorkQueueItem.h"
#import <Foundation/Foundation.h>
@@ -60,6 +61,7 @@
#import <WebKit/WebKitErrors.h>
#import <WebKit/WebPreferences.h>
#import <WebKit/WebPreferencesPrivate.h>
+#import <WebKit/WebQuotaManager.h>
#import <WebKit/WebScriptWorld.h>
#import <WebKit/WebSecurityOriginPrivate.h>
#import <WebKit/WebTypesInternal.h>
@@ -123,6 +125,11 @@ bool LayoutTestController::callShouldCloseOnWebView()
return [[mainFrame webView] shouldClose];
}
+void LayoutTestController::clearAllApplicationCaches()
+{
+ [WebApplicationCache deleteAllApplicationCaches];
+}
+
void LayoutTestController::clearAllDatabases()
{
[[WebDatabaseManager sharedWebDatabaseManager] deleteAllDatabases];
@@ -293,6 +300,13 @@ void LayoutTestController::setAppCacheMaximumSize(unsigned long long size)
[WebApplicationCache setMaximumSize:size];
}
+void LayoutTestController::setApplicationCacheOriginQuota(unsigned long long quota)
+{
+ WebSecurityOrigin *origin = [[WebSecurityOrigin alloc] initWithURL:[NSURL URLWithString:@"http://127.0.0.1:8000"]];
+ [[origin applicationCacheQuotaManager] setQuota:quota];
+ [origin release];
+}
+
void LayoutTestController::setAuthorAndUserStylesEnabled(bool flag)
{
[[[mainFrame webView] preferences] setAuthorAndUserStylesEnabled:flag];
@@ -310,7 +324,7 @@ void LayoutTestController::setCustomPolicyDelegate(bool setDelegate, bool permis
void LayoutTestController::setDatabaseQuota(unsigned long long quota)
{
WebSecurityOrigin *origin = [[WebSecurityOrigin alloc] initWithURL:[NSURL URLWithString:@"file:///"]];
- [origin setQuota:quota];
+ [[origin databaseQuotaManager] setQuota:quota];
[origin release];
}
@@ -342,6 +356,18 @@ void LayoutTestController::setMockGeolocationError(int code, JSStringRef message
[[MockGeolocationProvider shared] setError:error];
}
+void LayoutTestController::setGeolocationPermission(bool allow)
+{
+ setGeolocationPermissionCommon(allow);
+ [[[mainFrame webView] UIDelegate] didSetMockGeolocationPermission];
+}
+
+void LayoutTestController::setMockSpeechInputResult(JSStringRef result)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool iconDatabaseEnabled)
{
// FIXME: Workaround <rdar://problem/6480108>
diff --git a/WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm b/WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm
index 55d7257..e03cae2 100644
--- a/WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm
+++ b/WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm
@@ -74,6 +74,9 @@
- (void)registerWebView:(WebView *)webView
{
_registeredViews.add(webView);
+
+ if (!_timer)
+ _timer = [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(timerFired) userInfo:0 repeats:NO];
}
- (void)unregisterWebView:(WebView *)webView
diff --git a/WebKitTools/DumpRenderTree/mac/UIDelegate.h b/WebKitTools/DumpRenderTree/mac/UIDelegate.h
index da472d6..a8017ad 100644
--- a/WebKitTools/DumpRenderTree/mac/UIDelegate.h
+++ b/WebKitTools/DumpRenderTree/mac/UIDelegate.h
@@ -32,6 +32,10 @@
@private
NSRect m_frame;
+ NSMutableSet *m_pendingGeolocationPermissionListeners;
+ NSTimer *m_timer;
}
+- (void)didSetMockGeolocationPermission;
+
@end
diff --git a/WebKitTools/DumpRenderTree/mac/UIDelegate.mm b/WebKitTools/DumpRenderTree/mac/UIDelegate.mm
index 3dc378a..f9afdb1 100644
--- a/WebKitTools/DumpRenderTree/mac/UIDelegate.mm
+++ b/WebKitTools/DumpRenderTree/mac/UIDelegate.mm
@@ -33,8 +33,10 @@
#import "DumpRenderTreeDraggingInfo.h"
#import "EventSendingController.h"
#import "LayoutTestController.h"
+#import <WebKit/WebApplicationCache.h>
#import <WebKit/WebFramePrivate.h>
#import <WebKit/WebHTMLViewPrivate.h>
+#import <WebKit/WebQuotaManager.h>
#import <WebKit/WebSecurityOriginPrivate.h>
#import <WebKit/WebUIDelegatePrivate.h>
#import <WebKit/WebView.h>
@@ -155,12 +157,24 @@ DumpRenderTreeDraggingInfo *draggingInfo = nil;
- (void)webView:(WebView *)sender frame:(WebFrame *)frame exceededDatabaseQuotaForSecurityOrigin:(WebSecurityOrigin *)origin database:(NSString *)databaseIdentifier
{
- if (!done && gLayoutTestController->dumpDatabaseCallbacks())
+ if (!done && gLayoutTestController->dumpDatabaseCallbacks()) {
printf("UI DELEGATE DATABASE CALLBACK: exceededDatabaseQuotaForSecurityOrigin:{%s, %s, %i} database:%s\n", [[origin protocol] UTF8String], [[origin host] UTF8String],
[origin port], [databaseIdentifier UTF8String]);
+ }
static const unsigned long long defaultQuota = 5 * 1024 * 1024;
- [origin setQuota:defaultQuota];
+ [[origin databaseQuotaManager] setQuota:defaultQuota];
+}
+
+- (void)webView:(WebView *)sender exceededApplicationCacheOriginQuotaForSecurityOrigin:(WebSecurityOrigin *)origin
+{
+ if (!done && gLayoutTestController->dumpApplicationCacheDelegateCallbacks()) {
+ printf("UI DELEGATE APPLICATION CACHE CALLBACK: exceededApplicationCacheOriginQuotaForSecurityOrigin:{%s, %s, %i}\n",
+ [[origin protocol] UTF8String], [[origin host] UTF8String], [origin port]);
+ }
+
+ static const unsigned long long defaultOriginQuota = [WebApplicationCache defaultOriginQuota];
+ [[origin applicationCacheQuotaManager] setQuota:defaultOriginQuota];
}
- (void)webView:(WebView *)sender setStatusText:(NSString *)text
@@ -171,13 +185,43 @@ DumpRenderTreeDraggingInfo *draggingInfo = nil;
- (void)webView:(WebView *)webView decidePolicyForGeolocationRequestFromOrigin:(WebSecurityOrigin *)origin frame:(WebFrame *)frame listener:(id<WebGeolocationPolicyListener>)listener
{
- // FIXME: If mock permission isn't set yet, we should send the response asynchronously.
- if (gLayoutTestController->isGeolocationPermissionSet() && gLayoutTestController->geolocationPermission())
+ if (!gLayoutTestController->isGeolocationPermissionSet()) {
+ if (!m_pendingGeolocationPermissionListeners)
+ m_pendingGeolocationPermissionListeners = [[NSMutableSet set] retain];
+ [m_pendingGeolocationPermissionListeners addObject:listener];
+ return;
+ }
+
+ if (gLayoutTestController->geolocationPermission())
[listener allow];
else
[listener deny];
}
+- (void)didSetMockGeolocationPermission
+{
+ ASSERT(gLayoutTestController->isGeolocationPermissionSet());
+ if (m_pendingGeolocationPermissionListeners && !m_timer)
+ m_timer = [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(timerFired) userInfo:0 repeats:NO];
+}
+
+- (void)timerFired
+{
+ ASSERT(gLayoutTestController->isGeolocationPermissionSet());
+ m_timer = 0;
+ NSEnumerator* enumerator = [m_pendingGeolocationPermissionListeners objectEnumerator];
+ id<WebGeolocationPolicyListener> listener;
+ while ((listener = [enumerator nextObject])) {
+ if (gLayoutTestController->geolocationPermission())
+ [listener allow];
+ else
+ [listener deny];
+ }
+ [m_pendingGeolocationPermissionListeners removeAllObjects];
+ [m_pendingGeolocationPermissionListeners release];
+ m_pendingGeolocationPermissionListeners = nil;
+}
+
- (BOOL)webView:(WebView *)sender shouldHaltPlugin:(DOMNode *)pluginNode
{
return NO;
@@ -193,6 +237,8 @@ DumpRenderTreeDraggingInfo *draggingInfo = nil;
{
[draggingInfo release];
draggingInfo = nil;
+ [m_pendingGeolocationPermissionListeners release];
+ m_pendingGeolocationPermissionListeners = nil;
[super dealloc];
}
diff --git a/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro b/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro
index b66eb5d..63554b2 100644
--- a/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro
+++ b/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro
@@ -13,7 +13,7 @@ INCLUDEPATH += ../../../JavaScriptCore/ForwardingHeaders
INCLUDEPATH += $$BASEDIR
DESTDIR = ../../../bin
-!win32:!symbian {
+unix:!mac {
CONFIG += link_pkgconfig
PKGCONFIG += fontconfig
}
diff --git a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
index ca51f1b..e682fd0 100644
--- a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
+++ b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
@@ -494,6 +494,16 @@ void LayoutTestController::dispatchPendingLoadRequests()
// FIXME: Implement for testing fix for 6727495
}
+void LayoutTestController::clearAllApplicationCaches()
+{
+ // FIXME: implement to support Application Cache quotas.
+}
+
+void LayoutTestController::setApplicationCacheOriginQuota(unsigned long long quota)
+{
+ // FIXME: implement to support Application Cache quotas.
+}
+
void LayoutTestController::setDatabaseQuota(int size)
{
if (!m_topLoadingFrame)
@@ -705,6 +715,12 @@ void LayoutTestController::setMockGeolocationPosition(double latitude, double lo
DumpRenderTreeSupportQt::setMockGeolocationPosition(latitude, longitude, accuracy);
}
+void LayoutTestController::setMockSpeechInputResult(const QString& result)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::evaluateScriptInIsolatedWorld(int worldID, const QString& script)
{
DumpRenderTreeSupportQt::evaluateScriptInIsolatedWorld(m_drt->webPage()->mainFrame(), worldID, script);
diff --git a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
index 1dee6ce..f9986b1 100644
--- a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
+++ b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
@@ -174,6 +174,9 @@ public slots:
void dispatchPendingLoadRequests();
void disableImageLoading();
+ void clearAllApplicationCaches();
+ void setApplicationCacheOriginQuota(unsigned long long quota);
+
void setDatabaseQuota(int size);
void clearAllDatabases();
void setIconDatabaseEnabled(bool enable);
@@ -205,6 +208,8 @@ public slots:
bool isGeolocationPermissionSet() const { return m_isGeolocationPermissionSet; }
bool geolocationPermission() const { return m_geolocationPermission; }
+ void setMockSpeechInputResult(const QString& result);
+
// Empty stub method to keep parity with object model exposed by global LayoutTestController.
void abortModal() {}
diff --git a/WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp b/WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp
index 6519a97..31bc6ce 100644
--- a/WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp
+++ b/WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp
@@ -393,6 +393,18 @@ void LayoutTestController::setMockGeolocationError(int code, JSStringRef message
// See https://bugs.webkit.org/show_bug.cgi?id=28264.
}
+void LayoutTestController::setGeolocationPermission(bool allow)
+{
+ // FIXME: Implement for Geolocation layout tests.
+ setGeolocationPermissionCommon(allow);
+}
+
+void LayoutTestController::setMockSpeechInputResult(JSStringRef result)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool iconDatabaseEnabled)
{
// See also <rdar://problem/6480108>
@@ -888,6 +900,16 @@ bool LayoutTestController::isCommandEnabled(JSStringRef /*name*/)
return false;
}
+void LayoutTestController::clearAllApplicationCaches()
+{
+ // FIXME: implement to support Application Cache quotas.
+}
+
+void LayoutTestController::setApplicationCacheOriginQuota(unsigned long long quota)
+{
+ // FIXME: implement to support Application Cache quotas.
+}
+
void LayoutTestController::clearAllDatabases()
{
COMPtr<IWebDatabaseManager> databaseManager;
diff --git a/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp b/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp
index fd6b2d2..7c80ff2 100644
--- a/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp
+++ b/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp
@@ -228,6 +228,16 @@ void LayoutTestController::clearPersistentUserStyleSheet()
// FIXME: implement
}
+void LayoutTestController::clearAllApplicationCaches()
+{
+ // FIXME: implement to support Application Cache quotas.
+}
+
+void LayoutTestController::setApplicationCacheOriginQuota(unsigned long long quota)
+{
+ // FIXME: implement to support Application Cache quotas.
+}
+
void LayoutTestController::clearAllDatabases()
{
// FIXME: implement
@@ -289,6 +299,18 @@ void LayoutTestController::setMockGeolocationError(int code, JSStringRef message
// See https://bugs.webkit.org/show_bug.cgi?id=28264.
}
+void LayoutTestController::setGeolocationPermission(bool allow)
+{
+ // FIXME: Implement for Geolocation layout tests.
+ setGeolocationPermissionCommon(allow);
+}
+
+void LayoutTestController::setMockSpeechInputResult(JSStringRef result)
+{
+ // FIXME: Implement for speech input layout tests.
+ // See https://bugs.webkit.org/show_bug.cgi?id=39485.
+}
+
void LayoutTestController::setIconDatabaseEnabled(bool iconDatabaseEnabled)
{
// FIXME: implement
diff --git a/WebKitTools/MiniBrowser/mac/WebBundle/WebBundleMain.m b/WebKitTools/MiniBrowser/mac/WebBundle/WebBundleMain.m
index c4f4a68..8e0a576 100644
--- a/WebKitTools/MiniBrowser/mac/WebBundle/WebBundleMain.m
+++ b/WebKitTools/MiniBrowser/mac/WebBundle/WebBundleMain.m
@@ -35,37 +35,9 @@
static WKBundleRef globalBundle;
-// WKBundlePageClient
+// WKBundlePageClient functions
-void didStartProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void didFailProvisionalLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void didCommitLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void didFinishLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void didFailLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void didReceiveTitleForFrame(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void didClearWindowForFrame(WKBundlePageRef page, WKBundleFrameRef frame, JSGlobalContextRef context, JSObjectRef window, const void *clientInfo)
+void didClearWindowObjectForFrame(WKBundlePageRef page, WKBundleFrameRef frame, JSGlobalContextRef context, JSObjectRef window, const void *clientInfo)
{
WKURLRef wkURL = WKBundleFrameCopyURL(WKBundlePageGetMainFrame(page));
CFURLRef cfURL = WKURLCopyCFURL(0, wkURL);
@@ -88,18 +60,10 @@ void didCreatePage(WKBundleRef bundle, WKBundlePageRef page, const void* clientI
{
LOG(@"WKBundleClient - didCreatePage\n");
- WKBundlePageLoaderClient client = {
- 0,
- 0,
- didStartProvisionalLoadForFrame,
- didReceiveServerRedirectForProvisionalLoadForFrame,
- didFailProvisionalLoadWithErrorForFrame,
- didCommitLoadForFrame,
- didFinishLoadForFrame,
- didFailLoadWithErrorForFrame,
- didReceiveTitleForFrame,
- didClearWindowForFrame
- };
+ WKBundlePageLoaderClient client;
+ memset(&client, 0, sizeof(client));
+ client.didClearWindowObjectForFrame = didClearWindowObjectForFrame;
+
WKBundlePageSetLoaderClient(page, &client);
}
diff --git a/WebKitTools/QtTestBrowser/launcherwindow.cpp b/WebKitTools/QtTestBrowser/launcherwindow.cpp
index 177adea..095a984 100644
--- a/WebKitTools/QtTestBrowser/launcherwindow.cpp
+++ b/WebKitTools/QtTestBrowser/launcherwindow.cpp
@@ -32,48 +32,25 @@
#include "launcherwindow.h"
-bool LauncherWindow::gUseGraphicsView = false;
-bool LauncherWindow::gUseCompositing = true;
-bool LauncherWindow::gCacheWebView = false;
-bool LauncherWindow::gShowFrameRate = false;
-bool LauncherWindow::gResizesToContents = false;
-bool LauncherWindow::gUseTiledBackingStore = false;
-QGraphicsView::ViewportUpdateMode LauncherWindow::gViewportUpdateMode = QGraphicsView::MinimalViewportUpdate;
-QUrl LauncherWindow::gInspectorUrl;
-
-#if defined(Q_WS_MAEMO_5) || defined(Q_WS_S60)
-bool LauncherWindow::gUseFrameFlattening = true;
-#else
-bool LauncherWindow::gUseFrameFlattening = false;
-#endif
+const int gExitClickArea = 80;
+QVector<int> LauncherWindow::m_zoomLevels;
-#if defined(QT_CONFIGURED_WITH_OPENGL)
-bool LauncherWindow::gUseQGLWidgetViewport = false;
-#endif
-
-LauncherWindow::LauncherWindow(LauncherWindow* other, bool shareScene)
+LauncherWindow::LauncherWindow(WindowOptions* data, QGraphicsScene* sharedScene)
: MainWindow()
, m_currentZoom(100)
, m_view(0)
, m_inspector(0)
, m_formatMenuAction(0)
- , m_flipAnimated(0)
- , m_flipYAnimated(0)
#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
, m_zoomAnimation(0)
#endif
{
- if (other) {
- init(other->isGraphicsBased());
- applyPrefs(other);
- if (shareScene && other->isGraphicsBased()) {
- QGraphicsView* otherView = static_cast<QGraphicsView*>(other->m_view);
- static_cast<QGraphicsView*>(m_view)->setScene(otherView->scene());
- }
- } else {
- init(gUseGraphicsView);
- applyPrefs();
- }
+ if (data)
+ m_windowOptions = *data;
+
+ init();
+ if (sharedScene && data->useGraphicsView)
+ static_cast<QGraphicsView*>(m_view)->setScene(sharedScene);
createChrome();
}
@@ -83,7 +60,7 @@ LauncherWindow::~LauncherWindow()
grabZoomKeys(false);
}
-void LauncherWindow::init(bool useGraphicsView)
+void LauncherWindow::init()
{
QSplitter* splitter = new QSplitter(Qt::Vertical, this);
setCentralWidget(splitter);
@@ -95,7 +72,7 @@ void LauncherWindow::init(bool useGraphicsView)
resize(800, 600);
#endif
- initializeView(useGraphicsView);
+ initializeView();
connect(page(), SIGNAL(loadStarted()), this, SLOT(loadStarted()));
connect(page(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished()));
@@ -103,30 +80,34 @@ void LauncherWindow::init(bool useGraphicsView)
this, SLOT(showLinkHover(const QString&, const QString&)));
connect(this, SIGNAL(enteredFullScreenMode(bool)), this, SLOT(toggleFullScreenMode(bool)));
+ applyPrefs();
+
m_inspector = new WebInspector(splitter);
#ifndef QT_NO_PROPERTIES
- if (!gInspectorUrl.isEmpty())
- m_inspector->setProperty("_q_inspectorUrl", gInspectorUrl);
+ if (!m_windowOptions.inspectorUrl.isEmpty())
+ m_inspector->setProperty("_q_inspectorUrl", m_windowOptions.inspectorUrl);
#endif
m_inspector->setPage(page());
m_inspector->hide();
connect(this, SIGNAL(destroyed()), m_inspector, SLOT(deleteLater()));
// the zoom values are chosen to be like in Mozilla Firefox 3
- m_zoomLevels << 30 << 50 << 67 << 80 << 90;
- m_zoomLevels << 100;
- m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300;
+ if (!m_zoomLevels.count()) {
+ m_zoomLevels << 30 << 50 << 67 << 80 << 90;
+ m_zoomLevels << 100;
+ m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300;
+ }
grabZoomKeys(true);
}
-void LauncherWindow::initializeView(bool useGraphicsView)
+void LauncherWindow::initializeView()
{
delete m_view;
QSplitter* splitter = static_cast<QSplitter*>(centralWidget());
- if (!useGraphicsView) {
+ if (!m_windowOptions.useGraphicsView) {
WebViewTraditional* view = new WebViewTraditional(splitter);
view->setPage(page());
@@ -137,12 +118,6 @@ void LauncherWindow::initializeView(bool useGraphicsView)
WebViewGraphicsBased* view = new WebViewGraphicsBased(splitter);
view->setPage(page());
- if (m_flipAnimated)
- connect(m_flipAnimated, SIGNAL(triggered()), view, SLOT(animatedFlip()));
-
- if (m_flipYAnimated)
- connect(m_flipYAnimated, SIGNAL(triggered()), view, SLOT(animatedYFlip()));
-
connect(view, SIGNAL(currentFPSUpdated(int)), this, SLOT(updateFPS(int)));
view->installEventFilter(this);
@@ -158,6 +133,26 @@ void LauncherWindow::initializeView(bool useGraphicsView)
#endif
}
+void LauncherWindow::applyPrefs()
+{
+ QWebSettings* settings = page()->settings();
+ settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, m_windowOptions.useCompositing);
+ settings->setAttribute(QWebSettings::TiledBackingStoreEnabled, m_windowOptions.useTiledBackingStore);
+ settings->setAttribute(QWebSettings::FrameFlatteningEnabled, m_windowOptions.useFrameFlattening);
+ settings->setAttribute(QWebSettings::WebGLEnabled, m_windowOptions.useWebGL);
+
+ if (!isGraphicsBased())
+ return;
+
+ WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view);
+ view->setViewportUpdateMode(m_windowOptions.viewportUpdateMode);
+ view->setFrameRateMeasurementEnabled(m_windowOptions.showFrameRate);
+ view->setItemCacheMode(m_windowOptions.cacheWebView ? QGraphicsItem::DeviceCoordinateCache : QGraphicsItem::NoCache);
+
+ if (m_windowOptions.resizesToContents)
+ toggleResizesToContents(m_windowOptions.resizesToContents);
+}
+
void LauncherWindow::createChrome()
{
QMenu* fileMenu = menuBar()->addMenu("&File");
@@ -196,6 +191,10 @@ void LauncherWindow::createChrome()
viewMenu->addAction("Dump HTML", this, SLOT(dumpHtml()));
// viewMenu->addAction("Dump plugins", this, SLOT(dumpPlugins()));
+ zoomIn->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Plus));
+ zoomOut->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Minus));
+ resetZoom->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0));
+
QMenu* formatMenu = new QMenu("F&ormat", this);
m_formatMenuAction = menuBar()->addMenu(formatMenu);
m_formatMenuAction->setVisible(false);
@@ -207,25 +206,19 @@ void LauncherWindow::createChrome()
writingMenu->addAction(page()->action(QWebPage::SetTextDirectionLeftToRight));
writingMenu->addAction(page()->action(QWebPage::SetTextDirectionRightToLeft));
- zoomIn->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Plus));
- zoomOut->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Minus));
- resetZoom->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0));
-
QMenu* windowMenu = menuBar()->addMenu("&Window");
QAction* toggleFullScreen = windowMenu->addAction("Toggle FullScreen", this, SIGNAL(enteredFullScreenMode(bool)));
toggleFullScreen->setCheckable(true);
toggleFullScreen->setChecked(false);
-
- // when exit fullscreen mode by clicking on the exit area (bottom right corner) we must
- // uncheck the Toggle FullScreen action
+ // When exit fullscreen mode by clicking on the exit area (bottom right corner) we must
+ // uncheck the Toggle FullScreen action.
toggleFullScreen->connect(this, SIGNAL(enteredFullScreenMode(bool)), SLOT(setChecked(bool)));
- QMenu* toolsMenu = menuBar()->addMenu("&Develop");
-
QWebSettings* settings = page()->settings();
+ QMenu* toolsMenu = menuBar()->addMenu("&Develop");
QMenu* graphicsViewMenu = toolsMenu->addMenu("QGraphicsView");
- QAction* toggleGraphicsView = graphicsViewMenu->addAction("Toggle use of QGraphicsView", this, SLOT(initializeView(bool)));
+ QAction* toggleGraphicsView = graphicsViewMenu->addAction("Toggle use of QGraphicsView", this, SLOT(initializeView()));
toggleGraphicsView->setCheckable(true);
toggleGraphicsView->setChecked(isGraphicsBased());
@@ -242,7 +235,7 @@ void LauncherWindow::createChrome()
toggleFrameFlattening->setChecked(settings->testAttribute(QWebSettings::FrameFlatteningEnabled));
#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
- QAction* touchMockAction = toolsMenu->addAction("Toggle multitouch mocking", this, SLOT(setTouchMocking(bool)));
+ QAction* touchMockAction = toolsMenu->addAction("Toggle touch mocking", this, SLOT(setTouchMocking(bool)));
touchMockAction->setCheckable(true);
touchMockAction->setShortcut(QKeySequence(Qt::CTRL | Qt::ALT | Qt::Key_T));
#endif
@@ -277,20 +270,20 @@ void LauncherWindow::createChrome()
QAction* toggleResizesToContents = graphicsViewMenu->addAction("Toggle Resizes To Contents Mode", this, SLOT(toggleResizesToContents(bool)));
toggleResizesToContents->setCheckable(true);
- toggleResizesToContents->setChecked(gResizesToContents);
+ toggleResizesToContents->setChecked(m_windowOptions.resizesToContents);
toggleResizesToContents->setEnabled(isGraphicsBased());
toggleResizesToContents->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
QAction* toggleTiledBackingStore = graphicsViewMenu->addAction("Toggle Tiled Backing Store", this, SLOT(toggleTiledBackingStore(bool)));
toggleTiledBackingStore->setCheckable(true);
- toggleTiledBackingStore->setChecked(false);
+ toggleTiledBackingStore->setChecked(m_windowOptions.useTiledBackingStore);
toggleTiledBackingStore->setEnabled(isGraphicsBased());
toggleTiledBackingStore->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
#if defined(QT_CONFIGURED_WITH_OPENGL)
QAction* toggleQGLWidgetViewport = graphicsViewMenu->addAction("Toggle use of QGLWidget Viewport", this, SLOT(toggleQGLWidgetViewport(bool)));
toggleQGLWidgetViewport->setCheckable(true);
- toggleQGLWidgetViewport->setChecked(gUseQGLWidgetViewport);
+ toggleQGLWidgetViewport->setChecked(m_windowOptions.useQGLWidgetViewport);
toggleQGLWidgetViewport->setEnabled(isGraphicsBased());
toggleQGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
#endif
@@ -301,23 +294,23 @@ void LauncherWindow::createChrome()
QAction* fullUpdate = viewportUpdateMenu->addAction("FullViewportUpdate");
fullUpdate->setCheckable(true);
- fullUpdate->setChecked((gViewportUpdateMode == QGraphicsView::FullViewportUpdate) ? true : false);
+ fullUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::FullViewportUpdate) ? true : false);
QAction* minimalUpdate = viewportUpdateMenu->addAction("MinimalViewportUpdate");
minimalUpdate->setCheckable(true);
- minimalUpdate->setChecked((gViewportUpdateMode == QGraphicsView::MinimalViewportUpdate) ? true : false);
+ minimalUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::MinimalViewportUpdate) ? true : false);
QAction* smartUpdate = viewportUpdateMenu->addAction("SmartViewportUpdate");
smartUpdate->setCheckable(true);
- smartUpdate->setChecked((gViewportUpdateMode == QGraphicsView::SmartViewportUpdate) ? true : false);
+ smartUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::SmartViewportUpdate) ? true : false);
QAction* boundingRectUpdate = viewportUpdateMenu->addAction("BoundingRectViewportUpdate");
boundingRectUpdate->setCheckable(true);
- boundingRectUpdate->setChecked((gViewportUpdateMode == QGraphicsView::BoundingRectViewportUpdate) ? true : false);
+ boundingRectUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::BoundingRectViewportUpdate) ? true : false);
QAction* noUpdate = viewportUpdateMenu->addAction("NoViewportUpdate");
noUpdate->setCheckable(true);
- noUpdate->setChecked((gViewportUpdateMode == QGraphicsView::NoViewportUpdate) ? true : false);
+ noUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::NoViewportUpdate) ? true : false);
QSignalMapper* signalMapper = new QSignalMapper(viewportUpdateMenu);
signalMapper->setMapping(fullUpdate, QGraphicsView::FullViewportUpdate);
@@ -343,18 +336,18 @@ void LauncherWindow::createChrome()
graphicsViewMenu->addSeparator();
- m_flipAnimated = graphicsViewMenu->addAction("Animated Flip");
- m_flipAnimated->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
- m_flipAnimated->setEnabled(isGraphicsBased());
+ QAction* flipAnimated = graphicsViewMenu->addAction("Animated Flip");
+ flipAnimated->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
+ flipAnimated->setEnabled(isGraphicsBased());
- m_flipYAnimated = graphicsViewMenu->addAction("Animated Y-Flip");
- m_flipYAnimated->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
- m_flipYAnimated->setEnabled(isGraphicsBased());
+ QAction* flipYAnimated = graphicsViewMenu->addAction("Animated Y-Flip");
+ flipYAnimated->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
+ flipYAnimated->setEnabled(isGraphicsBased());
if (isGraphicsBased()) {
WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view);
- connect(m_flipAnimated, SIGNAL(triggered()), view, SLOT(animatedFlip()));
- connect(m_flipYAnimated, SIGNAL(triggered()), view, SLOT(animatedYFlip()));
+ connect(flipAnimated, SIGNAL(triggered()), view, SLOT(animatedFlip()));
+ connect(flipYAnimated, SIGNAL(triggered()), view, SLOT(animatedYFlip()));
}
QAction* cloneWindow = graphicsViewMenu->addAction("Clone Window", this, SLOT(cloneWindow()));
@@ -367,7 +360,7 @@ void LauncherWindow::createChrome()
showFPS->setCheckable(true);
showFPS->setEnabled(isGraphicsBased());
showFPS->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
- showFPS->setChecked(gShowFrameRate);
+ showFPS->setChecked(m_windowOptions.showFrameRate);
}
bool LauncherWindow::isGraphicsBased() const
@@ -375,39 +368,6 @@ bool LauncherWindow::isGraphicsBased() const
return bool(qobject_cast<QGraphicsView*>(m_view));
}
-inline void applySetting(QWebSettings::WebAttribute type, QWebSettings* settings, QWebSettings* other, bool defaultValue)
-{
- settings->setAttribute(type, other ? other->testAttribute(type) : defaultValue);
-}
-
-void LauncherWindow::applyPrefs(LauncherWindow* source)
-{
- QWebSettings* other = source ? source->page()->settings() : 0;
- QWebSettings* settings = page()->settings();
-
- applySetting(QWebSettings::AcceleratedCompositingEnabled, settings, other, gUseCompositing);
- applySetting(QWebSettings::TiledBackingStoreEnabled, settings, other, gUseTiledBackingStore);
- applySetting(QWebSettings::WebGLEnabled, settings, other, false);
- applySetting(QWebSettings::FrameFlatteningEnabled, settings, other, gUseFrameFlattening);
-
- if (!isGraphicsBased())
- return;
-
- WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view);
- WebViewGraphicsBased* otherView = source ? qobject_cast<WebViewGraphicsBased*>(source->m_view) : 0;
-
- view->setViewportUpdateMode(otherView ? otherView->viewportUpdateMode() : gViewportUpdateMode);
- view->setFrameRateMeasurementEnabled(otherView ? otherView->frameRateMeasurementEnabled() : gShowFrameRate);
-
- if (otherView) {
- view->setItemCacheMode(otherView->itemCacheMode());
- view->setResizesToContents(otherView->resizesToContents());
- } else {
- view->setItemCacheMode(gCacheWebView ? QGraphicsItem::DeviceCoordinateCache : QGraphicsItem::NoCache);
- view->setResizesToContents(gResizesToContents);
- }
-}
-
void LauncherWindow::keyPressEvent(QKeyEvent* event)
{
#ifdef Q_WS_MAEMO_5
@@ -629,7 +589,7 @@ void LauncherWindow::zoomOut()
void LauncherWindow::resetZoom()
{
m_currentZoom = 100;
- page()->mainFrame()->setZoomFactor(1.0);
+ applyZoom();
}
void LauncherWindow::toggleZoomTextOnly(bool b)
@@ -711,7 +671,7 @@ void LauncherWindow::setTouchMocking(bool on)
void LauncherWindow::toggleAcceleratedCompositing(bool toggle)
{
- gUseCompositing = toggle;
+ m_windowOptions.useCompositing = toggle;
page()->settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, toggle);
}
@@ -722,12 +682,13 @@ void LauncherWindow::toggleTiledBackingStore(bool toggle)
void LauncherWindow::toggleResizesToContents(bool toggle)
{
- gResizesToContents = toggle;
+ m_windowOptions.resizesToContents = toggle;
static_cast<WebViewGraphicsBased*>(m_view)->setResizesToContents(toggle);
}
void LauncherWindow::toggleWebGL(bool toggle)
{
+ m_windowOptions.useWebGL = toggle;
page()->settings()->setAttribute(QWebSettings::WebGLEnabled, toggle);
}
@@ -751,7 +712,7 @@ void LauncherWindow::toggleFullScreenMode(bool enable)
void LauncherWindow::toggleFrameFlattening(bool toggle)
{
- gUseFrameFlattening = toggle;
+ m_windowOptions.useFrameFlattening = toggle;
page()->settings()->setAttribute(QWebSettings::FrameFlatteningEnabled, toggle);
}
@@ -771,7 +732,7 @@ void LauncherWindow::toggleQGLWidgetViewport(bool enable)
if (!isGraphicsBased())
return;
- gUseQGLWidgetViewport = enable;
+ m_windowOptions.useQGLWidgetViewport = enable;
WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view);
view->setViewport(enable ? new QGLWidget() : 0);
@@ -780,13 +741,13 @@ void LauncherWindow::toggleQGLWidgetViewport(bool enable)
void LauncherWindow::changeViewportUpdateMode(int mode)
{
- gViewportUpdateMode = QGraphicsView::ViewportUpdateMode(mode);
+ m_windowOptions.viewportUpdateMode = QGraphicsView::ViewportUpdateMode(mode);
if (!isGraphicsBased())
return;
WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view);
- view->setViewportUpdateMode(gViewportUpdateMode);
+ view->setViewportUpdateMode(m_windowOptions.viewportUpdateMode);
}
void LauncherWindow::showFPS(bool enable)
@@ -794,7 +755,7 @@ void LauncherWindow::showFPS(bool enable)
if (!isGraphicsBased())
return;
- gShowFrameRate = enable;
+ m_windowOptions.showFrameRate = enable;
WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view);
view->setFrameRateMeasurementEnabled(enable);
@@ -867,14 +828,14 @@ void LauncherWindow::updateFPS(int fps)
LauncherWindow* LauncherWindow::newWindow()
{
- LauncherWindow* mw = new LauncherWindow(this, false);
+ LauncherWindow* mw = new LauncherWindow(&m_windowOptions);
mw->show();
return mw;
}
LauncherWindow* LauncherWindow::cloneWindow()
{
- LauncherWindow* mw = new LauncherWindow(this, true);
+ LauncherWindow* mw = new LauncherWindow(&m_windowOptions, qobject_cast<QGraphicsView*>(m_view)->scene());
mw->show();
return mw;
}
diff --git a/WebKitTools/QtTestBrowser/launcherwindow.h b/WebKitTools/QtTestBrowser/launcherwindow.h
index f9f157d..9319d24 100644
--- a/WebKitTools/QtTestBrowser/launcherwindow.h
+++ b/WebKitTools/QtTestBrowser/launcherwindow.h
@@ -75,11 +75,48 @@
#undef KeyPress
#endif
+class WindowOptions {
+public:
+ WindowOptions()
+ : useGraphicsView(false)
+ , useCompositing(true)
+ , useTiledBackingStore(false)
+ , useWebGL(false)
+#if defined(Q_WS_MAEMO_5) || defined(Q_WS_S60)
+ , useFrameFlattening(true)
+#else
+ , useFrameFlattening(false)
+#endif
+ , cacheWebView(false)
+ , showFrameRate(false)
+ , resizesToContents(false)
+ , viewportUpdateMode(QGraphicsView::MinimalViewportUpdate)
+#if defined(QT_CONFIGURED_WITH_OPENGL)
+ , useQGLWidgetViewport(false)
+#endif
+ {
+ }
+
+ bool useGraphicsView;
+ bool useCompositing;
+ bool useTiledBackingStore;
+ bool useWebGL;
+ bool useFrameFlattening;
+ bool cacheWebView;
+ bool showFrameRate;
+ bool resizesToContents;
+ QGraphicsView::ViewportUpdateMode viewportUpdateMode;
+#if defined(QT_CONFIGURED_WITH_OPENGL)
+ bool useQGLWidgetViewport;
+#endif
+ QUrl inspectorUrl;
+};
+
class LauncherWindow : public MainWindow {
Q_OBJECT
public:
- LauncherWindow(LauncherWindow* other = 0, bool shareScene = false);
+ LauncherWindow(WindowOptions* data = 0, QGraphicsScene* sharedScene = 0);
virtual ~LauncherWindow();
virtual void keyPressEvent(QKeyEvent* event);
@@ -91,22 +128,6 @@ public:
bool eventFilter(QObject* obj, QEvent* event);
-public:
- static const int gExitClickArea = 80;
- static bool gUseGraphicsView;
- static bool gUseCompositing;
- static bool gCacheWebView;
- static bool gShowFrameRate;
- static bool gResizesToContents;
- static bool gUseTiledBackingStore;
- static bool gUseFrameFlattening;
- static QGraphicsView::ViewportUpdateMode gViewportUpdateMode;
- static QUrl gInspectorUrl;
-
-#if defined(QT_CONFIGURED_WITH_OPENGL)
- static bool gUseQGLWidgetViewport;
-#endif
-
protected slots:
void loadStarted();
void loadFinished();
@@ -127,7 +148,7 @@ protected slots:
/* void dumpPlugins() */
void dumpHtml();
- void initializeView(bool useGraphicsView = false);
+ void initializeView();
void setTouchMocking(bool on);
void toggleAcceleratedCompositing(bool toggle);
@@ -158,22 +179,22 @@ signals:
void enteredFullScreenMode(bool on);
private:
- void init(bool useGraphicsView = false);
+ void init();
bool isGraphicsBased() const;
void createChrome();
- void applyPrefs(LauncherWindow* other = 0);
+ void applyPrefs();
void applyZoom();
private:
- QVector<int> m_zoomLevels;
+ static QVector<int> m_zoomLevels;
int m_currentZoom;
QWidget* m_view;
WebInspector* m_inspector;
+ WindowOptions m_windowOptions;
+
QAction* m_formatMenuAction;
- QAction* m_flipAnimated;
- QAction* m_flipYAnimated;
#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
QPropertyAnimation* m_zoomAnimation;
diff --git a/WebKitTools/QtTestBrowser/main.cpp b/WebKitTools/QtTestBrowser/main.cpp
index 33a6416..842290b 100644
--- a/WebKitTools/QtTestBrowser/main.cpp
+++ b/WebKitTools/QtTestBrowser/main.cpp
@@ -33,6 +33,8 @@
#include "launcherwindow.h"
#include "urlloader.h"
+WindowOptions windowOptions;
+
int launcherMain(const QApplication& app)
{
#ifndef NDEBUG
@@ -89,7 +91,7 @@ LauncherApplication::LauncherApplication(int& argc, char** argv)
static void requiresGraphicsView(const QString& option)
{
- if (LauncherWindow::gUseGraphicsView)
+ if (windowOptions.useGraphicsView)
return;
appQuit(1, QString("%1 only works in combination with the -graphicsbased option").arg(option));
}
@@ -121,31 +123,31 @@ void LauncherApplication::handleUserOptions()
}
if (args.contains("-graphicsbased"))
- LauncherWindow::gUseGraphicsView = true;
+ windowOptions.useGraphicsView = true;
if (args.contains("-no-compositing")) {
requiresGraphicsView("-no-compositing");
- LauncherWindow::gUseCompositing = false;
+ windowOptions.useCompositing = false;
}
if (args.contains("-show-fps")) {
requiresGraphicsView("-show-fps");
- LauncherWindow::gShowFrameRate = true;
+ windowOptions.showFrameRate = true;
}
if (args.contains("-cache-webview")) {
requiresGraphicsView("-cache-webview");
- LauncherWindow::gCacheWebView = true;
+ windowOptions.cacheWebView = true;
}
if (args.contains("-tiled-backing-store")) {
requiresGraphicsView("-tiled-backing-store");
- LauncherWindow::gUseTiledBackingStore = true;
+ windowOptions.useTiledBackingStore = true;
}
if (args.contains("-resizes-to-contents")) {
requiresGraphicsView("-resizes-to-contents");
- LauncherWindow::gResizesToContents = true;
+ windowOptions.resizesToContents = true;
}
QString arg1("-viewport-update-mode");
@@ -160,13 +162,13 @@ void LauncherApplication::handleUserOptions()
if (idx == -1)
appQuit(1, QString("%1 value has to be one of [%2]").arg(arg1).arg(formatKeys(updateModes)));
- LauncherWindow::gViewportUpdateMode = static_cast<QGraphicsView::ViewportUpdateMode>(idx);
+ windowOptions.viewportUpdateMode = static_cast<QGraphicsView::ViewportUpdateMode>(idx);
}
QString inspectorUrlArg("-inspector-url");
int inspectorUrlIndex = args.indexOf(inspectorUrlArg);
if (inspectorUrlIndex != -1)
- LauncherWindow::gInspectorUrl = takeOptionValue(&args, inspectorUrlIndex);
+ windowOptions.inspectorUrl = takeOptionValue(&args, inspectorUrlIndex);
int robotIndex = args.indexOf("-r");
if (robotIndex != -1) {
@@ -213,7 +215,7 @@ int main(int argc, char **argv)
foreach (QString url, urls) {
LauncherWindow* newWindow;
if (!window)
- newWindow = window = new LauncherWindow();
+ newWindow = window = new LauncherWindow(&windowOptions);
else
newWindow = window->newWindow();
diff --git a/WebKitTools/QtTestBrowser/webview.cpp b/WebKitTools/QtTestBrowser/webview.cpp
index d06493e..c8eecd6 100644
--- a/WebKitTools/QtTestBrowser/webview.cpp
+++ b/WebKitTools/QtTestBrowser/webview.cpp
@@ -79,25 +79,70 @@ WebViewGraphicsBased::WebViewGraphicsBased(QWidget* parent)
connect(m_updateTimer, SIGNAL(timeout()), this, SLOT(updateFrameRate()));
}
+void WebViewGraphicsBased::setPage(QWebPage* page)
+{
+ connect(page->mainFrame(), SIGNAL(contentsSizeChanged(const QSize&)), SLOT(contentsSizeChanged(const QSize&)));
+ m_item->setPage(page);
+}
+
+void WebViewGraphicsBased::contentsSizeChanged(const QSize& size)
+{
+ if (m_resizesToContents)
+ scene()->setSceneRect(0, 0, size.width(), size.height());
+}
+
void WebViewGraphicsBased::setResizesToContents(bool b)
{
+ if (b == m_resizesToContents)
+ return;
+
m_resizesToContents = b;
m_item->setResizesToContents(m_resizesToContents);
+
+ // When setting resizesToContents ON, our web view widget will always size as big as the
+ // web content being displayed, and so will the QWebPage's viewport. It implies that internally
+ // WebCore will work as if there was no content rendered offscreen, and then no scrollbars need
+ // drawing. In order to keep scrolling working, we:
+ //
+ // 1) Set QGraphicsView's scrollbars policy back to 'auto'.
+ // 2) Set scene's boundaries rect to an invalid size, which automatically makes it to be as big
+ // as it needs to enclose all items onto it. We do that because QGraphicsView also calculates
+ // the size of its scrollable area according to the amount of content in scene that is rendered
+ // offscreen.
+ // 3) Set QWebPage's preferredContentsSize according to the size of QGraphicsView's viewport,
+ // so WebCore properly lays pages out.
+ //
+ // On the other hand, when toggling resizesToContents OFF, we set back the default values, as
+ // opposite as described above.
if (m_resizesToContents) {
setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+ m_item->page()->setPreferredContentsSize(size());
+ QRectF itemRect(m_item->geometry().topLeft(), m_item->page()->mainFrame()->contentsSize());
+ m_item->setGeometry(itemRect);
+ scene()->setSceneRect(itemRect);
} else {
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ m_item->page()->setPreferredContentsSize(QSize());
+ QRect viewportRect(QPoint(0, 0), size());
+ m_item->setGeometry(viewportRect);
+ scene()->setSceneRect(viewportRect);
}
}
void WebViewGraphicsBased::resizeEvent(QResizeEvent* event)
{
QGraphicsView::resizeEvent(event);
- if (m_resizesToContents)
+
+ QSize size(event->size());
+
+ if (m_resizesToContents) {
+ m_item->page()->setPreferredContentsSize(size);
return;
- QRectF rect(QPoint(0, 0), event->size());
+ }
+
+ QRectF rect(QPoint(0, 0), size);
m_item->setGeometry(rect);
scene()->setSceneRect(rect);
}
diff --git a/WebKitTools/QtTestBrowser/webview.h b/WebKitTools/QtTestBrowser/webview.h
index 9b533b3..5e7c0c3 100644
--- a/WebKitTools/QtTestBrowser/webview.h
+++ b/WebKitTools/QtTestBrowser/webview.h
@@ -71,14 +71,15 @@ class WebViewGraphicsBased : public QGraphicsView {
public:
WebViewGraphicsBased(QWidget* parent);
- virtual void resizeEvent(QResizeEvent*);
- void setPage(QWebPage* page) { m_item->setPage(page); }
+ void setPage(QWebPage* page);
+
void setItemCacheMode(QGraphicsItem::CacheMode mode) { m_item->setCacheMode(mode); }
QGraphicsItem::CacheMode itemCacheMode() { return m_item->cacheMode(); }
void setFrameRateMeasurementEnabled(bool enabled);
bool frameRateMeasurementEnabled() const { return m_measureFps; }
+ virtual void resizeEvent(QResizeEvent*);
virtual void paintEvent(QPaintEvent* event);
void setResizesToContents(bool b);
@@ -106,6 +107,7 @@ public slots:
void updateFrameRate();
void animatedFlip();
void animatedYFlip();
+ void contentsSizeChanged(const QSize&);
signals:
void yFlipRequest();
diff --git a/WebKitTools/QueueStatusServer/handlers/queuestatus.py b/WebKitTools/QueueStatusServer/handlers/queuestatus.py
new file mode 100644
index 0000000..6282a98
--- /dev/null
+++ b/WebKitTools/QueueStatusServer/handlers/queuestatus.py
@@ -0,0 +1,58 @@
+# Copyright (C) 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from google.appengine.ext import webapp
+from google.appengine.ext.webapp import template
+
+from model.queues import queues, display_name_for_queue
+from model.workitems import WorkItems
+
+from model import queuestatus
+
+
+class QueueStatus(webapp.RequestHandler):
+ def _rows_for_work_items(self, work_items):
+ if not work_items:
+ return []
+ rows = []
+ for item_id in work_items.item_ids:
+ rows.append({
+ "attachment_id": item_id,
+ "bug_id": 1,
+ })
+ return rows
+
+ def get(self, queue_name):
+ work_items = WorkItems.all().filter("queue_name =", queue_name).get()
+ statuses = queuestatus.QueueStatus.all().filter("queue_name =", queue_name).order("-date").fetch(6)
+ template_values = {
+ "display_queue_name": display_name_for_queue(queue_name),
+ "work_item_rows": self._rows_for_work_items(work_items),
+ "statuses": statuses,
+ }
+ self.response.out.write(template.render("templates/queuestatus.html", template_values))
diff --git a/WebKitTools/QueueStatusServer/handlers/recentstatus.py b/WebKitTools/QueueStatusServer/handlers/recentstatus.py
index d1df78c..e2b8c2f 100644
--- a/WebKitTools/QueueStatusServer/handlers/recentstatus.py
+++ b/WebKitTools/QueueStatusServer/handlers/recentstatus.py
@@ -26,32 +26,68 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import datetime
+
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
-from model.queues import queues
+from model.queues import queues, display_name_for_queue
from model.queuestatus import QueueStatus
+from model.workitems import WorkItems
+
+
+class QueueBubble(object):
+ """View support class for recentstatus.html"""
+ def __init__(self, queue_name):
+ self._queue_name = queue_name
+ self._work_items = WorkItems.all().filter("queue_name =", queue_name).get()
+ self._last_status = QueueStatus.all().filter("queue_name =", queue_name).order("-date").get()
+
+ def name(self):
+ return self._queue_name
+
+ def display_name(self):
+ return display_name_for_queue(self._queue_name)
+
+ def _last_status_date(self):
+ if not self._last_status:
+ return None
+ return self._last_status.date
+
+ def last_heard_from(self):
+ if not self._work_items:
+ return self._last_status_date()
+ return max(self._last_status_date(), self._work_items.date)
+
+ def is_alive(self):
+ if not self.last_heard_from():
+ return False
+ return self.last_heard_from() > (datetime.datetime.now() - datetime.timedelta(minutes=30))
+
+ def status_class(self):
+ if not self.is_alive():
+ return "dead"
+ if self.pending_items_count() > 1:
+ return "behind"
+ return "alive"
+
+ def status_text(self):
+ if not self._work_items:
+ return "Offline"
+ if not self._work_items.item_ids:
+ return "Idle"
+ return self._last_status.message
+
+ def pending_items_count(self):
+ if not self._work_items:
+ return 0
+ return len(self._work_items.item_ids)
+
-class RecentStatus(webapp.RequestHandler):
- def _title_case(self, string):
- words = string.split(" ")
- words = map(lambda word: word.capitalize(), words)
- return " ".join(words)
-
- def _pretty_queue_name(self, queue_name):
- return self._title_case(queue_name.replace("-", " "))
-
- # We could change "/" to just redirect to /queue-status/commit-queue in the future
- # at which point we would not need a default value for queue_name here.
- def get(self, queue_name="commit-queue"):
- queue_status = {}
- for queue in queues:
- statuses = QueueStatus.all().filter("queue_name =", queue).order("-date").fetch(6)
- if not statuses:
- continue
- queue_status[queue] = statuses
+class QueuesOverview(webapp.RequestHandler):
+ def get(self):
template_values = {
- "queue_status" : queue_status,
+ "queues": [QueueBubble(queue_name) for queue_name in queues],
}
self.response.out.write(template.render("templates/recentstatus.html", template_values))
diff --git a/WebKitTools/QueueStatusServer/main.py b/WebKitTools/QueueStatusServer/main.py
index fb6fc4b..e550dc5 100644
--- a/WebKitTools/QueueStatusServer/main.py
+++ b/WebKitTools/QueueStatusServer/main.py
@@ -37,7 +37,8 @@ from handlers.dashboard import Dashboard
from handlers.gc import GC
from handlers.patch import Patch
from handlers.patchstatus import PatchStatus
-from handlers.recentstatus import RecentStatus
+from handlers.queuestatus import QueueStatus
+from handlers.recentstatus import QueuesOverview
from handlers.showresults import ShowResults
from handlers.statusbubble import StatusBubble
from handlers.svnrevision import SVNRevision
@@ -49,7 +50,7 @@ from handlers.updateworkitems import UpdateWorkItems
webapp.template.register_template_library('filters.webkit_extras')
routes = [
- ('/', RecentStatus),
+ ('/', QueuesOverview),
('/dashboard', Dashboard),
('/gc', GC),
(r'/patch-status/(.*)/(.*)', PatchStatus),
@@ -57,7 +58,7 @@ routes = [
(r'/results/(.*)', ShowResults),
(r'/status-bubble/(.*)', StatusBubble),
(r'/svn-revision/(.*)', SVNRevision),
- (r'/queue-status/(.*)', RecentStatus),
+ (r'/queue-status/(.*)', QueueStatus),
('/update-status', UpdateStatus),
('/update-work-items', UpdateWorkItems),
('/update-svn-revision', UpdateSVNRevision),
diff --git a/WebKitTools/QueueStatusServer/model/queues.py b/WebKitTools/QueueStatusServer/model/queues.py
index 46f2f15..2f0884f 100644
--- a/WebKitTools/QueueStatusServer/model/queues.py
+++ b/WebKitTools/QueueStatusServer/model/queues.py
@@ -41,6 +41,24 @@ queues = [
]
+# FIXME: We need some sort of Queue object.
+def _title_case(string):
+ words = string.split(" ")
+ words = map(lambda word: word.capitalize(), words)
+ return " ".join(words)
+
+
+def display_name_for_queue(queue_name):
+ # HACK: chromium-ews is incorrectly named.
+ display_name = queue_name.replace("chromium-ews", "cr-linux-ews")
+
+ display_name = display_name.replace("-", " ")
+ display_name = display_name.replace("cr", "chromium")
+ display_name = _title_case(display_name)
+ display_name = display_name.replace("Ews", "EWS")
+ return display_name
+
+
def name_with_underscores(dashed_name):
regexp = re.compile("-")
return regexp.sub("_", dashed_name)
diff --git a/WebKitTools/QueueStatusServer/templates/queuestatus.html b/WebKitTools/QueueStatusServer/templates/queuestatus.html
new file mode 100644
index 0000000..38c125f
--- /dev/null
+++ b/WebKitTools/QueueStatusServer/templates/queuestatus.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>{{ display_queue_name }} Status</title>
+<link type="text/css" rel="stylesheet" href="/stylesheets/dashboard.css" />
+</head>
+<body>
+<h1>{{ display_queue_name }} Status</h1>
+
+<h3>Recent Status</h3>
+
+<div class="status-details">
+ <ul>
+ {% for status in statuses %}
+ <li>{% if status.active_bug_id %}
+ <span class="status-bug">
+ Patch {{ status.active_patch_id|force_escape|webkit_attachment_id|safe }} from bug
+ {{ status.active_bug_id|force_escape|webkit_bug_id|safe }}:
+ </span>{% endif %}
+ <span class="status-message">{{ status.message|force_escape|urlize|webkit_linkify|safe }}</span>
+ {% if status.results_file %}
+ <span class="status-results">[{{ status.key.id|results_link|safe }}]</span>
+ {% endif %}
+ <span class="status-date">{{ status.date|timesince }} ago</span>
+ </li>
+ {% endfor %}
+ </ul>
+</div>
+
+<h3>Patches in queue</h3>
+<table>
+ <tr><th>Position</th><th>Patch</th></tr>
+ {% for row in work_item_rows %}
+ <tr>
+ <td>#{{ forloop.counter }}</td>
+ <td>
+ {{ row.attachment_id|force_escape|webkit_attachment_id|safe }}
+ </td>
+ </tr>
+ {% endfor %}
+</table>
+
+</body>
+</html>
diff --git a/WebKitTools/QueueStatusServer/templates/recentstatus.html b/WebKitTools/QueueStatusServer/templates/recentstatus.html
index 2bb9fbb..808d8d7 100644
--- a/WebKitTools/QueueStatusServer/templates/recentstatus.html
+++ b/WebKitTools/QueueStatusServer/templates/recentstatus.html
@@ -3,22 +3,52 @@
<head>
<title>WebKit Queue Status</title>
<link type="text/css" rel="stylesheet" href="/stylesheets/dashboard.css" />
+<style>
+.queue_bubble {
+ border: 1px solid black;
+ margin-bottom: 10px;
+ border-radius: 10px;
+ padding: 5px;
+}
+.queue_name {
+ float:left;
+}
+.last_heard_from {
+ float: right;
+}
+.status_text {
+ clear: both;
+}
+.alive {
+ background-color: #8FDF5F;
+}
+.behind {
+ background-color: #FFFC6C;
+}
+.dead {
+ background-color: #E98080;
+}
+</style>
</head>
<body>
-<h1>WebKit Queue Status</h1>{% for queue_name, statuses in queue_status.items %}
-<div class="status-details">
- <h2>{{ queue_name }}</h2>
- <ul>{% for status in statuses %}
- <li>{% if status.active_bug_id %}
- <span class="status-bug">
- Patch {{ status.active_patch_id|force_escape|webkit_attachment_id|safe }} from bug
- {{ status.active_bug_id|force_escape|webkit_bug_id|safe }}:
- </span>{% endif %}
- <span class="status-message">{{ status.message|force_escape|urlize|webkit_linkify|safe }}</span>{% if status.results_file %}
- <span class="status-results">[{{ status.key.id|results_link|safe }}]</span>{% endif %}
- <span class="status-date">{{ status.date|timesince }} ago</span>
- </li>{% endfor %}
- </ul>
-</div>{% endfor %}
+<h1>WebKit Queue Status</h1>
+{% for queue in queues %}
+<div class="queue_bubble {{ queue.status_class }}">
+ <div class="queue_name">
+ <a href="/queue-status/{{ queue.name }}">
+ {{ queue.display_name }}
+ </a>
+ </div>
+ {% if queue.last_heard_from %}
+ <div class="last_heard_from">{{ queue.last_heard_from|timesince }} ago</div>
+ {% endif %}
+ <div class="status_text">
+ Status: {{ queue.status_text|force_escape|urlize|webkit_linkify|safe }}
+ </div>
+ <div>
+ {{ queue.pending_items_count }} pending
+ </div>
+</div>
+{% endfor %}
</body>
</html>
diff --git a/WebKitTools/Scripts/build-webkit b/WebKitTools/Scripts/build-webkit
index 4639949..3b8dd9c 100755
--- a/WebKitTools/Scripts/build-webkit
+++ b/WebKitTools/Scripts/build-webkit
@@ -60,8 +60,8 @@ my ($linkPrefetchSupport, $threeDCanvasSupport, $threeDRenderingSupport, $channe
$javaScriptDebuggerSupport, $mathmlSupport, $offlineWebApplicationSupport, $rubySupport, $systemMallocSupport, $sandboxSupport, $sharedWorkersSupport,
$svgSupport, $svgAnimationSupport, $svgAsImageSupport, $svgDOMObjCBindingsSupport, $svgFontsSupport,
$svgForeignObjectSupport, $svgUseSupport, $videoSupport, $webSocketsSupport, $webTimingSupport, $wmlSupport, $wcssSupport, $xhtmlmpSupport, $workersSupport,
- $xpathSupport, $xsltSupport, $coverageSupport, $notificationsSupport, $blobSliceSupport, $tiledBackingStoreSupport,
- $fileReaderSupport, $fileWriterSupport, $fileSystemSupport, $directoryUploadSupport, $deviceOrientationSupport);
+ $xpathSupport, $xsltSupport, $coverageSupport, $notificationsSupport, $blobSupport, $tiledBackingStoreSupport,
+ $fileWriterSupport, $fileSystemSupport, $directoryUploadSupport, $deviceOrientationSupport);
my @features = (
{ option => "link-prefetch", desc => "Toggle pre fetching support",
@@ -73,8 +73,8 @@ my @features = (
{ option => "3d-rendering", desc => "Toggle 3D rendering support",
define => "ENABLE_3D_RENDERING", default => (isAppleMacWebKit() && !isTiger()), value => \$threeDRenderingSupport },
- { option => "blob-slice", desc => "Toggle Blob.slice support",
- define => "ENABLE_BLOB_SLICE", default => (isAppleMacWebKit()), value => \$blobSliceSupport },
+ { option => "blob", desc => "Toggle Blob support",
+ define => "ENABLE_BLOB", default => (isAppleMacWebKit()), value => \$blobSupport },
{ option => "channel-messaging", desc => "Toggle MessageChannel and MessagePort support",
define => "ENABLE_CHANNEL_MESSAGING", default => 1, value => \$channelMessagingSupport },
@@ -125,7 +125,7 @@ my @features = (
define => "ENABLE_JAVASCRIPT_DEBUGGER", default => 1, value => \$javaScriptDebuggerSupport },
{ option => "mathml", desc => "Toggle MathML support",
- define => "ENABLE_MATHML", default => 0, value => \$mathmlSupport },
+ define => "ENABLE_MATHML", default => 1, value => \$mathmlSupport },
{ option => "notifications", desc => "Toggle Desktop Notifications Support",
define => "ENABLE_NOTIFICATIONS", default => 0, value => \$notificationsSupport },
@@ -196,9 +196,6 @@ my @features = (
{ option => "xslt", desc => "Toggle XSLT support",
define => "ENABLE_XSLT", default => 1, value => \$xsltSupport },
- { option => "file-reader", desc => "Toggle FileReader support",
- define => "ENABLE_FILE_READER", default => isAppleWebKit(), value => \$fileReaderSupport },
-
{ option => "file-writer", desc => "Toggle FileWriter support",
define => "ENABLE_FILE_WRITER", default => 0, value => \$fileWriterSupport },
diff --git a/WebKitTools/Scripts/check-webkit-style b/WebKitTools/Scripts/check-webkit-style
index 9a1ae1e..e29d4b1 100755
--- a/WebKitTools/Scripts/check-webkit-style
+++ b/WebKitTools/Scripts/check-webkit-style
@@ -121,11 +121,12 @@ def main():
error_count = style_processor.error_count
file_count = file_reader.file_count
+ delete_only_file_count = file_reader.delete_only_file_count
_log.info("Total errors found: %d in %d files"
% (error_count, file_count))
# We fail when style errors are found or there are no checked files.
- sys.exit(error_count > 0 or file_count == 0)
+ sys.exit(error_count > 0 or (file_count == 0 and delete_only_file_count == 0))
if __name__ == "__main__":
diff --git a/WebKitTools/Scripts/old-run-webkit-tests b/WebKitTools/Scripts/old-run-webkit-tests
index b46c129..97ef3dc 100755
--- a/WebKitTools/Scripts/old-run-webkit-tests
+++ b/WebKitTools/Scripts/old-run-webkit-tests
@@ -2159,7 +2159,14 @@ sub readSkippedFiles($)
{
my ($constraintPath) = @_;
- foreach my $level (@platformTestHierarchy) {
+ my @skippedFileDirectories = @platformTestHierarchy;
+
+ # Because nearly all of the skipped tests for WebKit 2 on Mac are due to
+ # cross-platform issues, Windows will use both the Mac and Windows skipped
+ # lists to avoid maintaining separate lists.
+ push(@skippedFileDirectories, catdir($platformBaseDirectory, "mac-wk2")) if $platform eq "win-wk2";
+
+ foreach my $level (@skippedFileDirectories) {
if (open SKIPPED, "<", "$level/Skipped") {
if ($verbose) {
my ($dir, $name) = splitpath($level);
diff --git a/WebKitTools/Scripts/prepare-ChangeLog b/WebKitTools/Scripts/prepare-ChangeLog
index 2ef1eb4..1488939 100755
--- a/WebKitTools/Scripts/prepare-ChangeLog
+++ b/WebKitTools/Scripts/prepare-ChangeLog
@@ -264,8 +264,16 @@ if ($bugNumber) {
# care about validating that bugs.webkit.org is who it says it is here.
my $descriptionLine = `curl --insecure --silent "$bugXMLURL" | grep short_desc`;
if ($descriptionLine !~ /<short_desc>(.*)<\/short_desc>/) {
- print STDERR " Bug $bugNumber has no bug description. Maybe you set wrong bug ID?\n";
- print STDERR " The bug URL: $bugXMLURL\n";
+ # Maybe the reason the above did not work is because the curl that is installed doesn't
+ # support ssl at all.
+ if (`curl --version | grep ^Protocols` !~ /\bhttps\b/) {
+ print STDERR " Could not get description for bug $bugNumber.\n";
+ print STDERR " It looks like your version of curl does not support ssl.\n";
+ print STDERR " If you are using macports, this can be fixed with sudo port install curl+ssl.\n";
+ } else {
+ print STDERR " Bug $bugNumber has no bug description. Maybe you set wrong bug ID?\n";
+ print STDERR " The bug URL: $bugXMLURL\n";
+ }
exit 1;
}
$bugDescription = decodeEntities($1);
diff --git a/WebKitTools/Scripts/webkitpy/common/config/committers.py b/WebKitTools/Scripts/webkitpy/common/config/committers.py
index 25b1725..5ebf18a 100644
--- a/WebKitTools/Scripts/webkitpy/common/config/committers.py
+++ b/WebKitTools/Scripts/webkitpy/common/config/committers.py
@@ -123,6 +123,7 @@ committers_unable_to_review = [
Committer("Jessie Berlin", ["jberlin@webkit.org", "jberlin@apple.com"]),
Committer("Jesus Sanchez-Palencia", ["jesus@webkit.org", "jesus.palencia@openbossa.org"], "jeez_"),
Committer("Jocelyn Turcotte", "jocelyn.turcotte@nokia.com", "jturcotte"),
+ Committer("Jochen Eisinger", "jochen@chromium.org", "jochen__"),
Committer("John Abd-El-Malek", "jam@chromium.org", "jam"),
Committer("John Gregg", ["johnnyg@google.com", "johnnyg@chromium.org"], "johnnyg"),
Committer("Joost de Valk", ["joost@webkit.org", "webkit-dev@joostdevalk.nl"], "Altha"),
diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py b/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py
index c0525ea..6c36c93 100644
--- a/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py
+++ b/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py
@@ -56,7 +56,8 @@ class JSONLayoutResultsGenerator(json_results_generator.JSONResultsGeneratorBase
def __init__(self, port, builder_name, build_name, build_number,
results_file_base_path, builder_base_url,
- test_timings, expectations, result_summary, all_tests):
+ test_timings, expectations, result_summary, all_tests,
+ generate_incremental_results=False):
"""Modifies the results.json file. Grabs it off the archive directory
if it is not found locally.
@@ -66,7 +67,8 @@ class JSONLayoutResultsGenerator(json_results_generator.JSONResultsGeneratorBase
"""
super(JSONLayoutResultsGenerator, self).__init__(
builder_name, build_name, build_number, results_file_base_path,
- builder_base_url, {}, port.test_repository_paths())
+ builder_base_url, {}, port.test_repository_paths(),
+ generate_incremental_results)
self._port = port
self._expectations = expectations
diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py b/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py
index 595fc2b..e746bc0 100644
--- a/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py
+++ b/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py
@@ -60,7 +60,7 @@ class TestResult(object):
class JSONResultsGeneratorBase(object):
"""A JSON results generator for generic tests."""
- MAX_NUMBER_OF_BUILD_RESULTS_TO_LOG = 750
+ MAX_NUMBER_OF_BUILD_RESULTS_TO_LOG = 1500
# Min time (seconds) that will be added to the JSON.
MIN_TIME = 1
JSON_PREFIX = "ADD_RESULTS("
@@ -82,10 +82,12 @@ class JSONResultsGeneratorBase(object):
ALL_FIXABLE_COUNT = "allFixableCount"
RESULTS_FILENAME = "results.json"
+ INCREMENTAL_RESULTS_FILENAME = "incremental_results.json"
def __init__(self, builder_name, build_name, build_number,
results_file_base_path, builder_base_url,
- test_results_map, svn_repositories=None):
+ test_results_map, svn_repositories=None,
+ generate_incremental_results=False):
"""Modifies the results.json file. Grabs it off the archive directory
if it is not found locally.
@@ -108,41 +110,59 @@ class JSONResultsGeneratorBase(object):
self._builder_base_url = builder_base_url
self._results_file_path = os.path.join(results_file_base_path,
self.RESULTS_FILENAME)
+ self._incremental_results_file_path = os.path.join(
+ results_file_base_path, self.INCREMENTAL_RESULTS_FILENAME)
self._test_results_map = test_results_map
self._test_results = test_results_map.values()
+ self._generate_incremental_results = generate_incremental_results
self._svn_repositories = svn_repositories
if not self._svn_repositories:
self._svn_repositories = {}
self._json = None
+ self._archived_results = None
def generate_json_output(self):
"""Generates the JSON output file."""
+
+ # Generate the JSON output file that has full results.
+ # FIXME: stop writing out the full results file once all bots use
+ # incremental results.
if not self._json:
self._json = self.get_json()
if self._json:
- # Specify separators in order to get compact encoding.
- json_data = simplejson.dumps(self._json, separators=(',', ':'))
- json_string = self.JSON_PREFIX + json_data + self.JSON_SUFFIX
+ self._generate_json_file(self._json, self._results_file_path)
- results_file = codecs.open(self._results_file_path, "w", "utf-8")
- results_file.write(json_string)
- results_file.close()
+ # Generate the JSON output file that only has incremental results.
+ if self._generate_incremental_results:
+ json = self.get_json(incremental=True)
+ if json:
+ self._generate_json_file(
+ json, self._incremental_results_file_path)
- def get_json(self):
+ def get_json(self, incremental=False):
"""Gets the results for the results.json file."""
- if self._json:
- return self._json
-
- results_json, error = self._get_archived_json_results()
- if error:
- # If there was an error don't write a results.json
- # file at all as it would lose all the information on the bot.
- _log.error("Archive directory is inaccessible. Not modifying "
- "or clobbering the results.json file: " + str(error))
- return None
+ if incremental:
+ results_json = {}
+ else:
+ if self._json:
+ return self._json
+
+ if not self._archived_results:
+ self._archived_results, error = \
+ self._get_archived_json_results()
+ if error:
+ # If there was an error don't write a results.json
+ # file at all as it would lose all the information on the
+ # bot.
+ _log.error("Archive directory is inaccessible. Not "
+ "modifying or clobbering the results.json "
+ "file: " + str(error))
+ return None
+
+ results_json = self._archived_results
builder_name = self._builder_name
if results_json and builder_name not in results_json:
@@ -168,8 +188,19 @@ class JSONResultsGeneratorBase(object):
for test in all_failing_tests:
self._insert_test_time_and_result(test, tests)
- self._json = results_json
- return self._json
+ return results_json
+
+ def set_archived_results(self, archived_results):
+ self._archived_results = archived_results
+
+ def _generate_json_file(self, json, file_path):
+ # Specify separators in order to get compact encoding.
+ json_data = simplejson.dumps(json, separators=(',', ':'))
+ json_string = self.JSON_PREFIX + json_data + self.JSON_SUFFIX
+
+ results_file = codecs.open(file_path, "w", "utf-8")
+ results_file.write(json_string)
+ results_file.close()
def _get_test_timing(self, test_name):
"""Returns test timing data (elapsed time) in second
diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py b/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py
index 0a60cc7..785cc1c 100644
--- a/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py
+++ b/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py
@@ -45,6 +45,13 @@ class JSONGeneratorTest(unittest.TestCase):
self.builder_name = 'DUMMY_BUILDER_NAME'
self.build_name = 'DUMMY_BUILD_NAME'
self.build_number = 'DUMMY_BUILDER_NUMBER'
+ self._json = None
+ self._num_runs = 0
+ self._tests_list = set([])
+ self._test_timings = {}
+ self._failed_tests = {}
+ self._passed_tests = set([])
+ self._skipped_tests = set([])
def _test_json_generation(self, passed_tests, failed_tests, skipped_tests):
# Make sure we have sets (rather than lists).
@@ -52,12 +59,13 @@ class JSONGeneratorTest(unittest.TestCase):
skipped_tests = set(skipped_tests)
tests_list = passed_tests | set(failed_tests.keys())
test_timings = {}
+ i = 0
for test in tests_list:
- test_timings[test] = float(random.randint(1, 10))
+ test_timings[test] = float(self._num_runs * 100 + i)
+ i += 1
port_obj = port.get(None)
- # Generate a JSON file.
generator = json_results_generator.JSONResultsGenerator(port_obj,
self.builder_name, self.build_name, self.build_number,
'',
@@ -68,8 +76,39 @@ class JSONGeneratorTest(unittest.TestCase):
skipped_tests,
tests_list)
- json = generator.get_json()
-
+ # Test incremental json results
+ incremental_json = generator.get_json(incremental=True)
+ self._verify_json_results(
+ tests_list,
+ test_timings,
+ passed_tests,
+ failed_tests,
+ skipped_tests,
+ incremental_json,
+ 1)
+
+ # Test aggregated json results
+ generator.set_archived_results(self._json)
+ json = generator.get_json(incremental=False)
+ self._json = json
+ self._num_runs += 1
+ self._tests_list |= tests_list
+ self._test_timings.update(test_timings)
+ self._failed_tests.update(failed_tests)
+ self._passed_tests |= passed_tests
+ self._skipped_tests |= skipped_tests
+ self._verify_json_results(
+ self._tests_list,
+ self._test_timings,
+ self._passed_tests,
+ self._failed_tests,
+ self._skipped_tests,
+ self._json,
+ self._num_runs)
+
+ def _verify_json_results(self, tests_list, test_timings,
+ passed_tests, failed_tests,
+ skipped_tests, json, num_runs):
# Aliasing to a short name for better access to its constants.
JRG = json_results_generator.JSONResultsGenerator
@@ -79,11 +118,18 @@ class JSONGeneratorTest(unittest.TestCase):
buildinfo = json[self.builder_name]
self.assertTrue(JRG.FIXABLE in buildinfo)
self.assertTrue(JRG.TESTS in buildinfo)
- self.assertTrue(len(buildinfo[JRG.BUILD_NUMBERS]) == 1)
+ self.assertTrue(len(buildinfo[JRG.BUILD_NUMBERS]) == num_runs)
self.assertTrue(buildinfo[JRG.BUILD_NUMBERS][0] == self.build_number)
- if tests_list or skipped_tests:
- fixable = buildinfo[JRG.FIXABLE][0]
+ if tests_list or skipped_tests:
+ fixable = {}
+ for fixable_items in buildinfo[JRG.FIXABLE]:
+ for (type, count) in fixable_items.iteritems():
+ if type in fixable:
+ fixable[type] = fixable[type] + count
+ else:
+ fixable[type] = count
+
if passed_tests:
self.assertTrue(fixable[JRG.PASS_RESULT] == len(passed_tests))
else:
@@ -100,26 +146,35 @@ class JSONGeneratorTest(unittest.TestCase):
for test_name, failure in failed_tests.iteritems():
self.assertTrue(test_name in tests)
test = tests[test_name]
- self.assertTrue(test[JRG.RESULTS][0][0] == 1)
- self.assertTrue(test[JRG.RESULTS][0][1] == JRG.FAIL_RESULT)
- self.assertTrue(test[JRG.TIMES][0][0] == 1)
- self.assertTrue(test[JRG.TIMES][0][1] ==
- int(test_timings[test_name]))
+
+ failed = 0
+ for result in test[JRG.RESULTS]:
+ if result[1] == JRG.FAIL_RESULT:
+ failed = result[0]
+ self.assertTrue(failed == 1)
+
+ timing_count = 0
+ for timings in test[JRG.TIMES]:
+ if timings[1] == test_timings[test_name]:
+ timing_count = timings[0]
+ self.assertTrue(timing_count == 1)
fixable_count = len(skipped_tests) + len(failed_tests.keys())
if skipped_tests or failed_tests:
- self.assertTrue(buildinfo[JRG.FIXABLE_COUNT][0] == fixable_count)
+ self.assertTrue(sum(buildinfo[JRG.FIXABLE_COUNT]) == fixable_count)
def test_json_generation(self):
reason = test_expectations.TEXT
self._test_json_generation([], {}, [])
- self._test_json_generation(['A', 'B'], {}, [])
- self._test_json_generation([], {'A': reason, 'B': reason}, [])
- self._test_json_generation([], {}, ['A', 'B'])
- self._test_json_generation(['A'], {'B': reason, 'C': reason}, [])
- self._test_json_generation([], {'A': reason, 'B': reason}, ['C', 'D'])
- self._test_json_generation(['A', 'B', 'C'], {'D': reason}, ['E', 'F'])
+ self._test_json_generation(['A1', 'B1'], {}, [])
+ self._test_json_generation([], {'A2': reason, 'B2': reason}, [])
+ self._test_json_generation([], {}, ['A3', 'B3'])
+ self._test_json_generation(['A4'], {'B4': reason, 'C4': reason}, [])
+ self._test_json_generation(
+ [], {'A5': reason, 'B5': reason}, ['C5', 'D5'])
+ self._test_json_generation(
+ ['A6', 'B6', 'C6'], {'D6': reason}, ['E6', 'F6'])
if __name__ == '__main__':
diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/port/websocket_server.py b/WebKitTools/Scripts/webkitpy/layout_tests/port/websocket_server.py
index 81bf39e..7346671 100644
--- a/WebKitTools/Scripts/webkitpy/layout_tests/port/websocket_server.py
+++ b/WebKitTools/Scripts/webkitpy/layout_tests/port/websocket_server.py
@@ -60,7 +60,7 @@ _DEFAULT_WSS_PORT = 9323
def url_is_alive(url):
"""Checks to see if we get an http response from |url|.
- We poll the url 5 times with a 1 second delay. If we don't
+ We poll the url 20 times with a 0.5 second delay. If we don't
get a reply in that time, we give up and assume the httpd
didn't start properly.
@@ -70,7 +70,7 @@ def url_is_alive(url):
True if the url is alive.
"""
sleep_time = 0.5
- wait_time = 5
+ wait_time = 10
while wait_time > 0:
try:
response = urllib.urlopen(url)
diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py b/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
index 41aab62..490ac3c 100755
--- a/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
+++ b/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
@@ -889,7 +889,8 @@ class TestRunner:
self._port, self._options.builder_name, self._options.build_name,
self._options.build_number, self._options.results_directory,
BUILDER_BASE_URL, individual_test_timings,
- self._expectations, result_summary, self._test_files_list)
+ self._expectations, result_summary, self._test_files_list,
+ not self._options.upload_full_results)
_log.debug("Finished writing JSON files.")
@@ -900,8 +901,12 @@ class TestRunner:
_log.info("Uploading JSON files for builder: %s",
self._options.builder_name)
- attrs = [('builder', self._options.builder_name)]
- json_files = ["expectations.json", "results.json"]
+ attrs = [("builder", self._options.builder_name)]
+ json_files = ["expectations.json"]
+ if self._options.upload_full_results:
+ json_files.append("results.json")
+ else:
+ json_files.append("incremental_results.json")
files = [(file, os.path.join(self._options.results_directory, file))
for file in json_files]
@@ -1656,6 +1661,10 @@ def parse_args(args=None):
optparse.make_option("--test-results-server", default="",
help=("If specified, upload results json files to this appengine "
"server.")),
+ optparse.make_option("--upload-full-results",
+ action="store_true",
+ default=False,
+ help="If true, upload full json results to server."),
]
option_list = (configuration_options + print_options +
diff --git a/WebKitTools/Scripts/webkitpy/style/checkers/cpp.py b/WebKitTools/Scripts/webkitpy/style/checkers/cpp.py
index 9e4240c..62f40ea 100644
--- a/WebKitTools/Scripts/webkitpy/style/checkers/cpp.py
+++ b/WebKitTools/Scripts/webkitpy/style/checkers/cpp.py
@@ -2451,6 +2451,9 @@ def check_identifier_name_in_declaration(filename, line_number, line, error):
line = sub(r'(unsigned|signed) (?=char|short|int|long)', '', line)
line = sub(r'\b(inline|using|static|const|volatile|auto|register|extern|typedef|restrict|struct|class|virtual)(?=\W)', '', line)
+ # Remove "new" and "new (expr)" to simplify, too.
+ line = sub(r'new\s*(\([^)]*\))?', '', line)
+
# Remove all template parameters by removing matching < and >.
# Loop until no templates are removed to remove nested templates.
while True:
diff --git a/WebKitTools/Scripts/webkitpy/style/checkers/cpp_unittest.py b/WebKitTools/Scripts/webkitpy/style/checkers/cpp_unittest.py
index c927db6..16b1a3c 100644
--- a/WebKitTools/Scripts/webkitpy/style/checkers/cpp_unittest.py
+++ b/WebKitTools/Scripts/webkitpy/style/checkers/cpp_unittest.py
@@ -3715,6 +3715,12 @@ class WebKitStyleTest(CppStyleTestBase):
self.assert_lint('unsigned _fillRule : 1;',
'_fillRule' + name_underscore_error_message)
+ # new operators in initialization.
+ self.assert_lint('OwnPtr<uint32_t> variable(new uint32_t);', '')
+ self.assert_lint('OwnPtr<uint32_t> variable(new (expr) uint32_t);', '')
+ self.assert_lint('OwnPtr<uint32_t> under_score(new uint32_t);',
+ 'under_score' + name_underscore_error_message)
+
def test_comments(self):
# A comment at the beginning of a line is ok.
diff --git a/WebKitTools/Scripts/webkitpy/style/filereader.py b/WebKitTools/Scripts/webkitpy/style/filereader.py
index 48455b3..1a24cb5 100644
--- a/WebKitTools/Scripts/webkitpy/style/filereader.py
+++ b/WebKitTools/Scripts/webkitpy/style/filereader.py
@@ -47,6 +47,10 @@ class TextFileReader(object):
file_count: The total number of files passed to this instance
for processing, including non-text files and files
that should be skipped.
+ delete_only_file_count: The total number of files that are not
+ processed this instance actually because
+ the files don't have any modified lines
+ but should be treated as processed.
"""
@@ -59,6 +63,7 @@ class TextFileReader(object):
"""
self._processor = processor
self.file_count = 0
+ self.delete_only_file_count = 0
def _read_lines(self, file_path):
"""Read the file at a path, and return its lines.
@@ -146,3 +151,12 @@ class TextFileReader(object):
self._process_directory(directory=path)
else:
self.process_file(path)
+
+ def count_delete_only_file(self):
+ """Count up files that contains only deleted lines.
+
+ Files which has no modified or newly-added lines don't need
+ to check style, but should be treated as checked. For that
+ purpose, we just count up the number of such files.
+ """
+ self.delete_only_file_count += 1
diff --git a/WebKitTools/Scripts/webkitpy/style/filereader_unittest.py b/WebKitTools/Scripts/webkitpy/style/filereader_unittest.py
index 558ec5a..6328337 100644
--- a/WebKitTools/Scripts/webkitpy/style/filereader_unittest.py
+++ b/WebKitTools/Scripts/webkitpy/style/filereader_unittest.py
@@ -159,3 +159,8 @@ class TextFileReaderTest(LoggingTestCase):
processed = [(['bar'], file_path2, None),
(['foo'], file_path1, None)]
self._assert_file_reader(processed, 2)
+
+ def test_count_delete_only_file(self):
+ self._file_reader.count_delete_only_file()
+ delete_only_file_count = self._file_reader.delete_only_file_count
+ self.assertEquals(delete_only_file_count, 1)
diff --git a/WebKitTools/Scripts/webkitpy/style/patchreader.py b/WebKitTools/Scripts/webkitpy/style/patchreader.py
index 7ba2b66..576504a 100644
--- a/WebKitTools/Scripts/webkitpy/style/patchreader.py
+++ b/WebKitTools/Scripts/webkitpy/style/patchreader.py
@@ -73,3 +73,8 @@ class PatchReader(object):
if line_numbers:
self._text_file_reader.process_file(file_path=path,
line_numbers=line_numbers)
+ else:
+ # We don't check the file which contains deleted lines only
+ # but would like to treat it as to be processed so that
+ # we count up number of such files.
+ self._text_file_reader.count_delete_only_file()
diff --git a/WebKitTools/Scripts/webkitpy/style/patchreader_unittest.py b/WebKitTools/Scripts/webkitpy/style/patchreader_unittest.py
index 10791e4..2453c6b 100644
--- a/WebKitTools/Scripts/webkitpy/style/patchreader_unittest.py
+++ b/WebKitTools/Scripts/webkitpy/style/patchreader_unittest.py
@@ -45,10 +45,15 @@ class PatchReaderTest(unittest.TestCase):
def __init__(self):
self.passed_to_process_file = []
"""A list of (file_path, line_numbers) pairs."""
+ self.delete_only_file_count = 0
+ """A number of times count_delete_only_file() called"""
def process_file(self, file_path, line_numbers):
self.passed_to_process_file.append((file_path, line_numbers))
+ def count_delete_only_file(self):
+ self.delete_only_file_count += 1
+
def setUp(self):
file_reader = self.MockTextFileReader()
self._file_reader = file_reader
@@ -57,9 +62,11 @@ class PatchReaderTest(unittest.TestCase):
def _call_check_patch(self, patch_string):
self._patch_checker.check(patch_string)
- def _assert_checked(self, passed_to_process_file):
+ def _assert_checked(self, passed_to_process_file, delete_only_file_count):
self.assertEquals(self._file_reader.passed_to_process_file,
passed_to_process_file)
+ self.assertEquals(self._file_reader.delete_only_file_count,
+ delete_only_file_count)
def test_check_patch(self):
# The modified line_numbers array for this patch is: [2].
@@ -71,7 +78,7 @@ index ef65bee..e3db70e 100644
# Required for Python to search this directory for module files
+# New line
""")
- self._assert_checked([("__init__.py", set([2]))])
+ self._assert_checked([("__init__.py", set([2]))], 0)
def test_check_patch_with_deletion(self):
self._call_check_patch("""Index: __init__.py
@@ -82,4 +89,4 @@ index ef65bee..e3db70e 100644
-foobar
""")
# _mock_check_file should not be called for the deletion patch.
- self._assert_checked([])
+ self._assert_checked([], 1)
diff --git a/WebKitTools/Scripts/webkitpy/thirdparty/__init__.py b/WebKitTools/Scripts/webkitpy/thirdparty/__init__.py
index 704970d..3a7aff3 100644
--- a/WebKitTools/Scripts/webkitpy/thirdparty/__init__.py
+++ b/WebKitTools/Scripts/webkitpy/thirdparty/__init__.py
@@ -79,7 +79,7 @@ installer.install(url="http://www.adambarth.com/webkit/eliza",
rietveld_dir = os.path.join(autoinstalled_dir, "rietveld")
installer = AutoInstaller(target_dir=rietveld_dir)
-installer.install(url="http://webkit-rietveld.googlecode.com/svn/trunk/static/upload.py",
+installer.install(url="http://webkit-rietveld.googlecode.com/svn/trunk/upload.py",
target_name="upload.py")
diff --git a/WebKitTools/Scripts/webkitpy/tool/bot/queueengine.py b/WebKitTools/Scripts/webkitpy/tool/bot/queueengine.py
index a1a66a1..36cbc5f 100644
--- a/WebKitTools/Scripts/webkitpy/tool/bot/queueengine.py
+++ b/WebKitTools/Scripts/webkitpy/tool/bot/queueengine.py
@@ -107,7 +107,8 @@ class QueueEngine:
self._open_work_log(work_item)
try:
if not self._delegate.process_work_item(work_item):
- self._sleep("Unable to process work item.")
+ log("Unable to process work item.")
+ continue
except ScriptError, e:
# Use a special exit code to indicate that the error was already
# handled in the child process and we should just keep looping.
diff --git a/WebKitTools/Scripts/webkitpy/tool/commands/earlywarningsystem.py b/WebKitTools/Scripts/webkitpy/tool/commands/earlywarningsystem.py
index 9fbfda6..750bbfd 100644
--- a/WebKitTools/Scripts/webkitpy/tool/commands/earlywarningsystem.py
+++ b/WebKitTools/Scripts/webkitpy/tool/commands/earlywarningsystem.py
@@ -152,8 +152,8 @@ class AbstractCommitterOnlyEWS(AbstractEarlyWarningSystem):
def process_work_item(self, patch):
if not self._committers.committer_by_email(patch.attacher_email()):
self._did_error(patch, "%s cannot process patches from non-committers :(" % self.name)
- return
- AbstractEarlyWarningSystem.process_work_item(self, patch)
+ return False
+ return AbstractEarlyWarningSystem.process_work_item(self, patch)
class MacEWS(AbstractCommitterOnlyEWS):
diff --git a/WebKitTools/TestResultServer/handlers/dashboardhandler.py b/WebKitTools/TestResultServer/handlers/dashboardhandler.py
index 45bc471..587d737 100644
--- a/WebKitTools/TestResultServer/handlers/dashboardhandler.py
+++ b/WebKitTools/TestResultServer/handlers/dashboardhandler.py
@@ -3,7 +3,7 @@
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
-#
+#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
@@ -13,7 +13,7 @@
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
-#
+#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -38,6 +38,7 @@ from model.dashboardfile import DashboardFile
PARAM_FILE = "file"
+
def get_content_type(filename):
return mimetypes.guess_type(filename)[0] or "application/octet-stream"
diff --git a/WebKitTools/TestResultServer/handlers/menu.py b/WebKitTools/TestResultServer/handlers/menu.py
index ad2599d..f2f3855 100644
--- a/WebKitTools/TestResultServer/handlers/menu.py
+++ b/WebKitTools/TestResultServer/handlers/menu.py
@@ -3,7 +3,7 @@
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
-#
+#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
@@ -13,7 +13,7 @@
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
-#
+#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -61,4 +61,3 @@ class Menu(webapp.RequestHandler):
self.response.out.write(
template.render("templates/menu.html", template_values))
-
diff --git a/WebKitTools/TestResultServer/handlers/testfilehandler.py b/WebKitTools/TestResultServer/handlers/testfilehandler.py
index 972b606..97953e7 100644
--- a/WebKitTools/TestResultServer/handlers/testfilehandler.py
+++ b/WebKitTools/TestResultServer/handlers/testfilehandler.py
@@ -3,7 +3,7 @@
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
-#
+#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
@@ -13,7 +13,7 @@
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
-#
+#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -30,11 +30,10 @@ import logging
import urllib
from google.appengine.api import users
-from google.appengine.ext import blobstore
from google.appengine.ext import webapp
-from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext.webapp import template
+from model.jsonresults import JsonResults
from model.testfile import TestFile
PARAM_BUILDER = "builder"
@@ -43,10 +42,11 @@ PARAM_FILE = "file"
PARAM_NAME = "name"
PARAM_KEY = "key"
PARAM_TEST_TYPE = "testtype"
+PARAM_INCREMENTAL = "incremental"
class DeleteFile(webapp.RequestHandler):
- """Delete test file for a given builder and name from datastore (metadata) and blobstore (file data)."""
+ """Delete test file for a given builder and name from datastore."""
def get(self):
key = self.request.get(PARAM_KEY)
@@ -55,7 +55,7 @@ class DeleteFile(webapp.RequestHandler):
name = self.request.get(PARAM_NAME)
logging.debug(
- "Deleting File, builder: %s, test_type: %s, name: %s, blob key: %s.",
+ "Deleting File, builder: %s, test_type: %s, name: %s, key: %s.",
builder, test_type, name, key)
TestFile.delete_file(key, builder, test_type, name, 100)
@@ -65,7 +65,7 @@ class DeleteFile(webapp.RequestHandler):
% (builder, test_type, name))
-class GetFile(blobstore_handlers.BlobstoreDownloadHandler):
+class GetFile(webapp.RequestHandler):
"""Get file content or list of files for given builder and name."""
def _get_file_list(self, builder, test_type, name):
@@ -77,7 +77,8 @@ class GetFile(blobstore_handlers.BlobstoreDownloadHandler):
name: file name
"""
- files = TestFile.get_files(builder, test_type, name, 100)
+ files = TestFile.get_files(
+ builder, test_type, name, load_data=False, limit=100)
if not files:
logging.info("File not found, builder: %s, test_type: %s, name: %s.",
builder, test_type, name)
@@ -103,16 +104,15 @@ class GetFile(blobstore_handlers.BlobstoreDownloadHandler):
name: file name
"""
- files = TestFile.get_files(builder, test_type, name, 1)
+ files = TestFile.get_files(
+ builder, test_type, name, load_data=True, limit=1)
if not files:
logging.info("File not found, builder: %s, test_type: %s, name: %s.",
builder, test_type, name)
return
- blob_key = files[0].blob_key
- blob_info = blobstore.get(blob_key)
- if blob_info:
- self.send_blob(blob_info, "text/plain")
+ self.response.headers["Content-Type"] = "text/plain; charset=utf-8"
+ self.response.out.write(files[0].data)
def get(self):
builder = self.request.get(PARAM_BUILDER)
@@ -133,89 +133,69 @@ class GetFile(blobstore_handlers.BlobstoreDownloadHandler):
return self._get_file_content(builder, test_type, name)
-class GetUploadUrl(webapp.RequestHandler):
- """Get an url for uploading file to blobstore. A special url is required for each blobsotre upload."""
-
- def get(self):
- upload_url = blobstore.create_upload_url("/testfile/upload")
- logging.info("Getting upload url: %s.", upload_url)
- self.response.out.write(upload_url)
-
-
-class Upload(blobstore_handlers.BlobstoreUploadHandler):
- """Upload file to blobstore."""
+class Upload(webapp.RequestHandler):
+ """Upload test results file to datastore."""
def post(self):
- uploaded_files = self.get_uploads("file")
- if not uploaded_files:
- return self._upload_done([("Missing upload file field.")])
+ file_params = self.request.POST.getall(PARAM_FILE)
+ if not file_params:
+ self.response.out.write("FAIL: missing upload file field.")
+ return
builder = self.request.get(PARAM_BUILDER)
if not builder:
- for blob_info in uploaded_files:
- blob_info.delete()
-
- return self._upload_done([("Missing builder parameter in upload request.")])
+ self.response.out.write("FAIL: missing builder parameter.")
+ return
test_type = self.request.get(PARAM_TEST_TYPE)
+ incremental = self.request.get(PARAM_INCREMENTAL)
logging.debug(
"Processing upload request, builder: %s, test_type: %s.",
builder, test_type)
+ # There are two possible types of each file_params in the request:
+ # one file item or a list of file items.
+ # Normalize file_params to a file item list.
+ files = []
+ logging.debug("test: %s, type:%s", file_params, type(file_params))
+ for item in file_params:
+ if not isinstance(item, list) and not isinstance(item, tuple):
+ item = [item]
+ files.extend(item)
+
errors = []
- for blob_info in uploaded_files:
- tf = TestFile.update_file(builder, test_type, blob_info)
- if not tf:
+ for file in files:
+ filename = file.filename.lower()
+ if ((incremental and filename == "results.json") or
+ (filename == "incremental_results.json")):
+ # Merge incremental json results.
+ saved_file = JsonResults.update(builder, test_type, file.value)
+ else:
+ saved_file = TestFile.update(
+ builder, test_type, file.filename, file.value)
+
+ if not saved_file:
errors.append(
"Upload failed, builder: %s, test_type: %s, name: %s." %
- (builder, test_type, blob_info.filename))
- blob_info.delete()
-
- return self._upload_done(errors)
-
- def _upload_done(self, errors):
- logging.info("upload done.")
+ (builder, test_type, file.filename))
- error_messages = []
- for error in errors:
- logging.info(error)
- error_messages.append("error=%s" % urllib.quote(error))
-
- if error_messages:
- redirect_url = "/uploadfail?%s" % "&".join(error_messages)
+ if errors:
+ messages = "FAIL: " + "; ".join(errors)
+ logging.warning(messages)
+ self.response.set_status(500, messages)
+ self.response.out.write("FAIL")
else:
- redirect_url = "/uploadsuccess"
-
- logging.info(redirect_url)
- # BlobstoreUploadHandler requires redirect at the end.
- self.redirect(redirect_url)
+ self.response.set_status(200)
+ self.response.out.write("OK")
class UploadForm(webapp.RequestHandler):
- """Show a form so user can submit a file to blobstore."""
+ """Show a form so user can upload a file."""
def get(self):
- upload_url = blobstore.create_upload_url("/testfile/upload")
template_values = {
- "upload_url": upload_url,
+ "upload_url": "/testfile/upload",
}
self.response.out.write(template.render("templates/uploadform.html",
template_values))
-
-class UploadStatus(webapp.RequestHandler):
- """Return status of file uploading"""
-
- def get(self):
- logging.debug("Update status")
-
- if self.request.path == "/uploadsuccess":
- self.response.set_status(200)
- self.response.out.write("OK")
- else:
- errors = self.request.params.getall("error")
- if errors:
- messages = "FAIL: " + "; ".join(errors)
- logging.warning(messages)
- self.response.set_status(500, messages)
- self.response.out.write("FAIL")
diff --git a/WebKitTools/TestResultServer/main.py b/WebKitTools/TestResultServer/main.py
index 7a0d237..aa6e432 100644
--- a/WebKitTools/TestResultServer/main.py
+++ b/WebKitTools/TestResultServer/main.py
@@ -3,7 +3,7 @@
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
-#
+#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
@@ -13,7 +13,7 @@
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
-#
+#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -42,17 +42,15 @@ routes = [
('/dashboards/update', dashboardhandler.UpdateDashboardFile),
('/dashboards/([^?]+)?', dashboardhandler.GetDashboardFile),
('/testfile/delete', testfilehandler.DeleteFile),
- ('/testfile/uploadurl', testfilehandler.GetUploadUrl),
('/testfile/upload', testfilehandler.Upload),
('/testfile/uploadform', testfilehandler.UploadForm),
('/testfile/?', testfilehandler.GetFile),
- ('/uploadfail', testfilehandler.UploadStatus),
- ('/uploadsuccess', testfilehandler.UploadStatus),
('/*|/menu', menu.Menu),
]
application = webapp.WSGIApplication(routes, debug=True)
+
def main():
run_wsgi_app(application)
diff --git a/WebKitTools/TestResultServer/model/dashboardfile.py b/WebKitTools/TestResultServer/model/dashboardfile.py
index c74f071..57d3f6f 100644
--- a/WebKitTools/TestResultServer/model/dashboardfile.py
+++ b/WebKitTools/TestResultServer/model/dashboardfile.py
@@ -3,7 +3,7 @@
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
-#
+#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
@@ -13,7 +13,7 @@
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
-#
+#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -36,6 +36,7 @@ from google.appengine.ext import db
SVN_PATH_DASHBOARD = ("http://src.chromium.org/viewvc/chrome/trunk/tools/"
"dashboards/")
+
class DashboardFile(db.Model):
name = db.StringProperty()
data = db.BlobProperty()
@@ -92,7 +93,7 @@ class DashboardFile(db.Model):
if not files:
logging.info("No existing file, added as new file.")
return cls.add_file(name, data)
-
+
logging.debug("Updating existing file.")
file = files[0]
file.data = data
diff --git a/WebKitTools/TestResultServer/model/datastorefile.py b/WebKitTools/TestResultServer/model/datastorefile.py
new file mode 100755
index 0000000..dd4c366
--- /dev/null
+++ b/WebKitTools/TestResultServer/model/datastorefile.py
@@ -0,0 +1,129 @@
+# Copyright (C) 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from datetime import datetime
+import logging
+
+from google.appengine.ext import db
+
+MAX_DATA_ENTRY_PER_FILE = 10
+MAX_ENTRY_LEN = 1000 * 1000
+
+
+class DataEntry(db.Model):
+ """Datastore entry that stores one segmant of file data
+ (<1000*1000 bytes).
+ """
+
+ data = db.BlobProperty()
+
+ @classmethod
+ def get(cls, key):
+ return db.get(key)
+
+ def get_data(self, key):
+ return db.get(key)
+
+
+class DataStoreFile(db.Model):
+ """This class stores file in datastore.
+ If a file is oversize (>1000*1000 bytes), the file is split into
+ multiple segments and stored in multiple datastore entries.
+ """
+
+ name = db.StringProperty()
+ data_keys = db.ListProperty(db.Key)
+ date = db.DateTimeProperty(auto_now_add=True)
+
+ data = None
+
+ def delete_data(self, keys=None):
+ if not keys:
+ keys = self.data_keys
+
+ for key in keys:
+ data_entry = DataEntry.get(key)
+ if data_entry:
+ data_entry.delete()
+
+ def save_data(self, data):
+ if not data:
+ logging.warning("No data to save.")
+ return False
+
+ if len(data) > (MAX_DATA_ENTRY_PER_FILE * MAX_ENTRY_LEN):
+ logging.error("File too big, can't save to datastore: %dK",
+ len(data) / 1024)
+ return False
+
+ start = 0
+ keys = self.data_keys
+ self.data_keys = []
+ while start < len(data):
+ if keys:
+ key = keys.pop(0)
+ data_entry = DataEntry.get(key)
+ if not data_entry:
+ logging.warning("Found key, but no data entry: %s", key)
+ data_entry = DataEntry()
+ else:
+ data_entry = DataEntry()
+
+ data_entry.data = db.Blob(data[start: start + MAX_ENTRY_LEN])
+ data_entry.put()
+
+ logging.info("Data saved: %s.", data_entry.key())
+ self.data_keys.append(data_entry.key())
+
+ start = start + MAX_ENTRY_LEN
+
+ if keys:
+ self.delete_data(keys)
+
+ self.data = data
+
+ return True
+
+ def load_data(self):
+ if not self.data_keys:
+ logging.warning("No data to load.")
+ return None
+
+ data = []
+ for key in self.data_keys:
+ logging.info("Loading data for key: %s.", key)
+ data_entry = DataEntry.get(key)
+ if not data_entry:
+ logging.error("No data found for key: %s.", key)
+ return None
+
+ data.append(data_entry.data)
+
+ self.data = "".join(data)
+
+ return self.data
diff --git a/WebKitTools/TestResultServer/model/jsonresults.py b/WebKitTools/TestResultServer/model/jsonresults.py
new file mode 100755
index 0000000..d86fbcd
--- /dev/null
+++ b/WebKitTools/TestResultServer/model/jsonresults.py
@@ -0,0 +1,365 @@
+# Copyright (C) 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from datetime import datetime
+from django.utils import simplejson
+import logging
+
+from model.testfile import TestFile
+
+JSON_RESULTS_FILE = "results.json"
+JSON_RESULTS_PREFIX = "ADD_RESULTS("
+JSON_RESULTS_SUFFIX = ");"
+JSON_RESULTS_VERSION_KEY = "version"
+JSON_RESULTS_BUILD_NUMBERS = "buildNumbers"
+JSON_RESULTS_TESTS = "tests"
+JSON_RESULTS_RESULTS = "results"
+JSON_RESULTS_TIMES = "times"
+JSON_RESULTS_VERSION = 3
+JSON_RESULTS_MAX_BUILDS = 750
+
+
+class JsonResults(object):
+ @classmethod
+ def _strip_prefix_suffix(cls, data):
+ """Strip out prefix and suffix of json results string.
+
+ Args:
+ data: json file content.
+
+ Returns:
+ json string without prefix and suffix.
+ """
+
+ assert(data.startswith(JSON_RESULTS_PREFIX))
+ assert(data.endswith(JSON_RESULTS_SUFFIX))
+
+ return data[len(JSON_RESULTS_PREFIX):
+ len(data) - len(JSON_RESULTS_SUFFIX)]
+
+ @classmethod
+ def _generate_file_data(cls, json, sort_keys=False):
+ """Given json string, generate file content data by adding
+ prefix and suffix.
+
+ Args:
+ json: json string without prefix and suffix.
+
+ Returns:
+ json file data.
+ """
+
+ data = simplejson.dumps(json, separators=(',', ':'),
+ sort_keys=sort_keys)
+ return JSON_RESULTS_PREFIX + data + JSON_RESULTS_SUFFIX
+
+ @classmethod
+ def _load_json(cls, file_data):
+ """Load json file to a python object.
+
+ Args:
+ file_data: json file content.
+
+ Returns:
+ json object or
+ None on failure.
+ """
+
+ json_results_str = cls._strip_prefix_suffix(file_data)
+ if not json_results_str:
+ logging.warning("No json results data.")
+ return None
+
+ try:
+ return simplejson.loads(json_results_str)
+ except Exception, err:
+ logging.debug(json_results_str)
+ logging.error("Failed to load json results: %s", str(err))
+ return None
+
+ @classmethod
+ def _merge_json(cls, aggregated_json, incremental_json):
+ """Merge incremental json into aggregated json results.
+
+ Args:
+ aggregated_json: aggregated json object.
+ incremental_json: incremental json object.
+
+ Returns:
+ True if merge succeeds or
+ False on failure.
+ """
+
+ # Merge non tests property data.
+ # Tests properties are merged in _merge_tests.
+ if not cls._merge_non_test_data(aggregated_json, incremental_json):
+ return False
+
+ # Merge tests results and times
+ incremental_tests = incremental_json[JSON_RESULTS_TESTS]
+ if incremental_tests:
+ aggregated_tests = aggregated_json[JSON_RESULTS_TESTS]
+ cls._merge_tests(aggregated_tests, incremental_tests)
+
+ return True
+
+ @classmethod
+ def _merge_non_test_data(cls, aggregated_json, incremental_json):
+ """Merge incremental non tests property data into aggregated json results.
+
+ Args:
+ aggregated_json: aggregated json object.
+ incremental_json: incremental json object.
+
+ Returns:
+ True if merge succeeds or
+ False on failure.
+ """
+
+ incremental_builds = incremental_json[JSON_RESULTS_BUILD_NUMBERS]
+ aggregated_builds = aggregated_json[JSON_RESULTS_BUILD_NUMBERS]
+ aggregated_build_number = int(aggregated_builds[0])
+ # Loop through all incremental builds, start from the oldest run.
+ for index in reversed(range(len(incremental_builds))):
+ build_number = int(incremental_builds[index])
+ logging.debug("Merging build %s, incremental json index: %d.",
+ build_number, index)
+
+ # Return if not all build numbers in the incremental json results
+ # are newer than the most recent build in the aggregated results.
+ # FIXME: make this case work.
+ if build_number < aggregated_build_number:
+ logging.warning(("Build %d in incremental json is older than "
+ "the most recent build in aggregated results: %d"),
+ build_number, aggregated_build_number)
+ return False
+
+ # Return if the build number is duplicated.
+ # FIXME: skip the duplicated build and merge rest of the results.
+ # Need to be careful on skiping the corresponding value in
+ # _merge_tests because the property data for each test could
+ # be accumulated.
+ if build_number == aggregated_build_number:
+ logging.warning("Duplicate build %d in incremental json",
+ build_number)
+ return False
+
+ # Merge this build into aggreagated results.
+ cls._merge_one_build(aggregated_json, incremental_json, index)
+ logging.debug("Merged build %s, merged json: %s.",
+ build_number, aggregated_json)
+
+ return True
+
+ @classmethod
+ def _merge_one_build(cls, aggregated_json, incremental_json,
+ incremental_index):
+ """Merge one build of incremental json into aggregated json results.
+
+ Args:
+ aggregated_json: aggregated json object.
+ incremental_json: incremental json object.
+ incremental_index: index of the incremental json results to merge.
+ """
+
+ for key in incremental_json.keys():
+ # Merge json results except "tests" properties (results, times etc).
+ # "tests" properties will be handled separately.
+ if key == JSON_RESULTS_TESTS:
+ continue
+
+ if key in aggregated_json:
+ aggregated_json[key].insert(
+ 0, incremental_json[key][incremental_index])
+ aggregated_json[key] = \
+ aggregated_json[key][:JSON_RESULTS_MAX_BUILDS]
+ else:
+ aggregated_json[key] = incremental_json[key]
+
+ @classmethod
+ def _merge_tests(cls, aggregated_json, incremental_json):
+ """Merge "tests" properties:results, times.
+
+ Args:
+ aggregated_json: aggregated json object.
+ incremental_json: incremental json object.
+ """
+
+ for test_name in incremental_json:
+ incremental_test = incremental_json[test_name]
+ if test_name in aggregated_json:
+ aggregated_test = aggregated_json[test_name]
+ cls._insert_item_run_length_encoded(
+ incremental_test[JSON_RESULTS_RESULTS],
+ aggregated_test[JSON_RESULTS_RESULTS])
+ cls._insert_item_run_length_encoded(
+ incremental_test[JSON_RESULTS_TIMES],
+ aggregated_test[JSON_RESULTS_TIMES])
+ else:
+ aggregated_json[test_name] = incremental_test
+
+ @classmethod
+ def _insert_item_run_length_encoded(cls, incremental_item, aggregated_item):
+ """Inserts the incremental run-length encoded results into the aggregated
+ run-length encoded results.
+
+ Args:
+ incremental_item: incremental run-length encoded results.
+ aggregated_item: aggregated run-length encoded results.
+ """
+
+ for item in incremental_item:
+ if len(aggregated_item) and item[1] == aggregated_item[0][1]:
+ aggregated_item[0][0] = min(
+ aggregated_item[0][0] + item[0], JSON_RESULTS_MAX_BUILDS)
+ else:
+ # The test item values need to be summed from continuous runs.
+ # If there is an older item (not most recent one) whose value is
+ # same as the one to insert, then we should remove the old item
+ # from aggregated list.
+ for i in reversed(range(1, len(aggregated_item))):
+ if item[1] == aggregated_item[i][1]:
+ aggregated_item.pop(i)
+
+ aggregated_item.insert(0, item)
+
+ @classmethod
+ def _check_json(cls, builder, json):
+ """Check whether the given json is valid.
+
+ Args:
+ builder: builder name this json is for.
+ json: json object to check.
+
+ Returns:
+ True if the json is valid or
+ False otherwise.
+ """
+
+ version = json[JSON_RESULTS_VERSION_KEY]
+ if version > JSON_RESULTS_VERSION:
+ logging.error("Results JSON version '%s' is not supported.",
+ version)
+ return False
+
+ if not builder in json:
+ logging.error("Builder '%s' is not in json results.", builder)
+ return False
+
+ results_for_builder = json[builder]
+ if not JSON_RESULTS_BUILD_NUMBERS in results_for_builder:
+ logging.error("Missing build number in json results.")
+ return False
+
+ return True
+
+ @classmethod
+ def merge(cls, builder, aggregated, incremental, sort_keys=False):
+ """Merge incremental json file data with aggregated json file data.
+
+ Args:
+ builder: builder name.
+ aggregated: aggregated json file data.
+ incremental: incremental json file data.
+ sort_key: whether or not to sort key when dumping json results.
+
+ Returns:
+ Merged json file data if merge succeeds or
+ None on failure.
+ """
+
+ if not incremental:
+ logging.warning("Nothing to merge.")
+ return None
+
+ logging.info("Loading incremental json...")
+ incremental_json = cls._load_json(incremental)
+ if not incremental_json:
+ return None
+
+ logging.info("Checking incremental json...")
+ if not cls._check_json(builder, incremental_json):
+ return None
+
+ logging.info("Loading existing aggregated json...")
+ aggregated_json = cls._load_json(aggregated)
+ if not aggregated_json:
+ return incremental
+
+ logging.info("Checking existing aggregated json...")
+ if not cls._check_json(builder, aggregated_json):
+ return incremental
+
+ logging.info("Merging json results...")
+ try:
+ if not cls._merge_json(
+ aggregated_json[builder],
+ incremental_json[builder]):
+ return None
+ except Exception, err:
+ logging.error("Failed to merge json results: %s", str(err))
+ return None
+
+ aggregated_json[JSON_RESULTS_VERSION_KEY] = JSON_RESULTS_VERSION
+
+ return cls._generate_file_data(aggregated_json, sort_keys)
+
+ @classmethod
+ def update(cls, builder, test_type, incremental):
+ """Update datastore json file data by merging it with incremental json
+ file.
+
+ Args:
+ builder: builder name.
+ test_type: type of test results.
+ incremental: incremental json file data to merge.
+
+ Returns:
+ TestFile object if update succeeds or
+ None on failure.
+ """
+
+ files = TestFile.get_files(builder, test_type, JSON_RESULTS_FILE)
+ if files:
+ file = files[0]
+ new_results = cls.merge(builder, file.data, incremental)
+ else:
+ # Use the incremental data if there is no aggregated file to merge.
+ file = TestFile()
+ file.builder = builder
+ file.name = JSON_RESULTS_FILE
+ new_results = incremental
+ logging.info("No existing json results, incremental json is saved.")
+
+ if not new_results:
+ return None
+
+ if not file.save(new_results):
+ return None
+
+ return file
diff --git a/WebKitTools/TestResultServer/model/jsonresults_unittest.py b/WebKitTools/TestResultServer/model/jsonresults_unittest.py
new file mode 100755
index 0000000..fd646c8
--- /dev/null
+++ b/WebKitTools/TestResultServer/model/jsonresults_unittest.py
@@ -0,0 +1,256 @@
+# Copyright (C) 2010 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import unittest
+
+from jsonresults import JsonResults
+
+JSON_RESULTS_TEMPLATE = (
+ '{"Webkit":{'
+ '"allFixableCount":[[TESTDATA_COUNT]],'
+ '"buildNumbers":[[TESTDATA_BUILDNUMBERS]],'
+ '"chromeRevision":[[TESTDATA_CHROMEREVISION]],'
+ '"deferredCounts":[[TESTDATA_COUNTS]],'
+ '"fixableCount":[[TESTDATA_COUNT]],'
+ '"fixableCounts":[[TESTDATA_COUNTS]],'
+ '"secondsSinceEpoch":[[TESTDATA_TIMES]],'
+ '"tests":{[TESTDATA_TESTS]},'
+ '"webkitRevision":[[TESTDATA_WEBKITREVISION]],'
+ '"wontfixCounts":[[TESTDATA_COUNTS]]'
+ '},'
+ '"version":3'
+ '}')
+
+JSON_RESULTS_COUNTS_TEMPLATE = (
+ '{'
+ '"C":[TESTDATA],'
+ '"F":[TESTDATA],'
+ '"I":[TESTDATA],'
+ '"O":[TESTDATA],'
+ '"P":[TESTDATA],'
+ '"T":[TESTDATA],'
+ '"X":[TESTDATA],'
+ '"Z":[TESTDATA]}')
+
+JSON_RESULTS_TESTS_TEMPLATE = (
+ '"[TESTDATA_TEST_NAME]":{'
+ '"results":[[TESTDATA_TEST_RESULTS]],'
+ '"times":[[TESTDATA_TEST_TIMES]]}')
+
+JSON_RESULTS_PREFIX = "ADD_RESULTS("
+JSON_RESULTS_SUFFIX = ");"
+
+
+class JsonResultsTest(unittest.TestCase):
+ def setUp(self):
+ self._builder = "Webkit"
+
+ def _make_test_json(self, test_data):
+ if not test_data:
+ return JSON_RESULTS_PREFIX + JSON_RESULTS_SUFFIX
+
+ (builds, tests) = test_data
+ if not builds or not tests:
+ return JSON_RESULTS_PREFIX + JSON_RESULTS_SUFFIX
+
+ json = JSON_RESULTS_TEMPLATE
+
+ counts = []
+ build_numbers = []
+ webkit_revision = []
+ chrome_revision = []
+ times = []
+ for build in builds:
+ counts.append(JSON_RESULTS_COUNTS_TEMPLATE.replace("[TESTDATA]", build))
+ build_numbers.append("1000%s" % build)
+ webkit_revision.append("2000%s" % build)
+ chrome_revision.append("3000%s" % build)
+ times.append("100000%s000" % build)
+
+ json = json.replace("[TESTDATA_COUNTS]", ",".join(counts))
+ json = json.replace("[TESTDATA_COUNT]", ",".join(builds))
+ json = json.replace("[TESTDATA_BUILDNUMBERS]", ",".join(build_numbers))
+ json = json.replace("[TESTDATA_WEBKITREVISION]", ",".join(webkit_revision))
+ json = json.replace("[TESTDATA_CHROMEREVISION]", ",".join(chrome_revision))
+ json = json.replace("[TESTDATA_TIMES]", ",".join(times))
+
+ json_tests = []
+ for test in tests:
+ t = JSON_RESULTS_TESTS_TEMPLATE.replace("[TESTDATA_TEST_NAME]", test[0])
+ t = t.replace("[TESTDATA_TEST_RESULTS]", test[1])
+ t = t.replace("[TESTDATA_TEST_TIMES]", test[2])
+ json_tests.append(t)
+
+ json = json.replace("[TESTDATA_TESTS]", ",".join(json_tests))
+
+ return JSON_RESULTS_PREFIX + json + JSON_RESULTS_SUFFIX
+
+ def _test_merge(self, aggregated_data, incremental_data, expected_data):
+ aggregated_results = self._make_test_json(aggregated_data)
+ incremental_results = self._make_test_json(incremental_data)
+ merged_results = JsonResults.merge(self._builder,
+ aggregated_results, incremental_results, sort_keys=True)
+
+ if expected_data:
+ expected_results = self._make_test_json(expected_data)
+ self.assertEquals(merged_results, expected_results)
+ else:
+ self.assertFalse(merged_results)
+
+ def test(self):
+ # Empty incremental results json.
+ # Nothing to merge.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]),
+ # Incremental results
+ None,
+ # Expect no merge happens.
+ None)
+
+ # No actual incremental test results (only prefix and suffix) to merge.
+ # Nothing to merge.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]),
+ # Incremental results
+ ([], []),
+ # Expected no merge happens.
+ None)
+
+ # No existing aggregated results.
+ # Merged results == new incremental results.
+ self._test_merge(
+ # Aggregated results
+ None,
+ # Incremental results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]),
+ # Expected results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]))
+
+ # Single test for single run.
+ # Incremental results has the latest build and same test results for
+ # that run.
+ # Insert the incremental results at the first place and sum number
+ # of runs for "P" (200 + 1) to get merged results.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]),
+ # Incremental results
+ (["3"], [["001.html", "[1,\"P\"]", "[1,\"0\"]"]]),
+ # Expected results
+ (["3", "2", "1"], [["001.html", "[201,\"P\"]", "[201,\"0\"]"]]))
+
+ # Single test for single run.
+ # Incremental results has the latest build but different test results
+ # for that run.
+ # Insert the incremental results at the first place.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]),
+ # Incremental results
+ (["3"], [["001.html", "[1, \"I\"]", "[1,\"1\"]"]]),
+ # Expected results
+ (["3", "2", "1"], [["001.html", "[1,\"I\"],[200,\"P\"]", "[1,\"1\"],[200,\"0\"]"]]))
+
+ # Single test for single run.
+ # Incremental results has the latest build but different test results
+ # for that run.
+ # The test "results" and "times" need to be continuous, so the old
+ # [10,"I"] result should be dropped because a new result of same type [1,"I"]
+ # is inserted in front of [200,"P"].
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"],[10,\"I\"]", "[200,\"0\"],[10,\"1\"]"]]),
+ # Incremental results
+ (["3"], [["001.html", "[1,\"I\"]", "[1,\"1\"]"]]),
+ # Expected results
+ (["3", "2", "1"], [["001.html", "[1,\"I\"],[200,\"P\"]", "[1,\"1\"],[200,\"0\"]"]]))
+
+ # Multiple tests for single run.
+ # All tests have incremental updates.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"], ["002.html", "[100,\"I\"]", "[100,\"1\"]"]]),
+ # Incremental results
+ (["3"], [["001.html", "[1,\"P\"]", "[1,\"0\"]"], ["002.html", "[1,\"I\"]", "[1,\"1\"]"]]),
+ # Expected results
+ (["3", "2", "1"], [["001.html", "[201,\"P\"]", "[201,\"0\"]"], ["002.html", "[101,\"I\"]", "[101,\"1\"]"]]))
+
+ # Multiple tests for single run.
+ # Not all tests have update.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"], ["002.html", "[100,\"I\"]", "[100,\"1\"]"]]),
+ # Incremental results
+ (["3"], [["002.html", "[1,\"I\"]", "[1,\"1\"]"]]),
+ # Expected results
+ (["3", "2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"], ["002.html", "[101,\"I\"]", "[101,\"1\"]"]]))
+
+ # Single test for multiple runs.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]),
+ # Incremental results
+ (["4", "3"], [["001.html", "[2, \"I\"]", "[2,\"2\"]"]]),
+ # Expected results
+ (["4", "3", "2", "1"], [["001.html", "[2,\"I\"],[200,\"P\"]", "[2,\"2\"],[200,\"0\"]"]]))
+
+ # Multiple tests for multiple runs.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"], ["002.html", "[10,\"Z\"]", "[10,\"0\"]"]]),
+ # Incremental results
+ (["4", "3"], [["001.html", "[2, \"I\"]", "[2,\"2\"]"], ["002.html", "[1,\"C\"]", "[1,\"1\"]"]]),
+ # Expected results
+ (["4", "3", "2", "1"], [["001.html", "[2,\"I\"],[200,\"P\"]", "[2,\"2\"],[200,\"0\"]"], ["002.html", "[1,\"C\"],[10,\"Z\"]", "[1,\"1\"],[10,\"0\"]"]]))
+
+ # Test the build in incremental results is older than the most recent
+ # build in aggregated results.
+ # The incremental results should be dropped and no merge happens.
+ self._test_merge(
+ # Aggregated results
+ (["3", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]),
+ # Incremental results
+ (["2"], [["001.html", "[1, \"P\"]", "[1,\"0\"]"]]),
+ # Expected no merge happens.
+ None)
+
+ # Test the build in incremental results is same as the build in
+ # aggregated results.
+ # The incremental results should be dropped and no merge happens.
+ self._test_merge(
+ # Aggregated results
+ (["2", "1"], [["001.html", "[200,\"P\"]", "[200,\"0\"]"]]),
+ # Incremental results
+ (["3", "2"], [["001.html", "[2, \"P\"]", "[2,\"0\"]"]]),
+ # Expected no merge happens.
+ None)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/WebKitTools/TestResultServer/model/testfile.py b/WebKitTools/TestResultServer/model/testfile.py
index 35ab967..ce92b65 100644
--- a/WebKitTools/TestResultServer/model/testfile.py
+++ b/WebKitTools/TestResultServer/model/testfile.py
@@ -3,7 +3,7 @@
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
-#
+#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
@@ -13,7 +13,7 @@
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
-#
+#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -29,16 +29,14 @@
from datetime import datetime
import logging
-from google.appengine.ext import blobstore
from google.appengine.ext import db
+from model.datastorefile import DataStoreFile
-class TestFile(db.Model):
+
+class TestFile(DataStoreFile):
builder = db.StringProperty()
- name = db.StringProperty()
test_type = db.StringProperty()
- blob_key = db.StringProperty()
- date = db.DateTimeProperty(auto_now_add=True)
@classmethod
def delete_file(cls, key, builder, test_type, name, limit):
@@ -63,7 +61,7 @@ class TestFile(db.Model):
return True
@classmethod
- def get_files(cls, builder, test_type, name, limit):
+ def get_files(cls, builder, test_type, name, load_data=True, limit=1):
query = TestFile.all()
if builder:
query = query.filter("builder =", builder)
@@ -72,51 +70,54 @@ class TestFile(db.Model):
if name:
query = query.filter("name =", name)
- return query.order("-date").fetch(limit)
+ files = query.order("-date").fetch(limit)
+ if load_data:
+ for file in files:
+ file.load_data()
+
+ return files
@classmethod
- def add_file(cls, builder, test_type, blob_info):
+ def add_file(cls, builder, test_type, name, data):
file = TestFile()
file.builder = builder
file.test_type = test_type
- file.name = blob_info.filename
- file.blob_key = str(blob_info.key())
- file.put()
+ file.name = name
+
+ if not file.save(data):
+ return None
logging.info(
- "File saved, builder: %s, test_type: %s, name: %s, blob key: %s.",
- builder, test_type, file.name, file.blob_key)
+ "File saved, builder: %s, test_type: %s, name: %s, key: %s.",
+ builder, test_type, file.name, str(file.data_keys))
return file
@classmethod
- def update_file(cls, builder, test_type, blob_info):
- files = cls.get_files(builder, test_type, blob_info.filename, 1)
+ def update(cls, builder, test_type, name, data):
+ files = cls.get_files(builder, test_type, name)
if not files:
- return cls.add_file(builder, test_type, blob_info)
+ return cls.add_file(builder, test_type, name, data)
file = files[0]
- old_blob_info = blobstore.BlobInfo.get(file.blob_key)
- if old_blob_info:
- old_blob_info.delete()
-
- file.builder = builder
- file.test_type = test_type
- file.name = blob_info.filename
- file.blob_key = str(blob_info.key())
- file.date = datetime.now()
- file.put()
+ if not file.save(data):
+ return None
logging.info(
- "File replaced, builder: %s, test_type: %s, name: %s, blob key: %s.",
- builder, test_type, file.name, file.blob_key)
+ "File replaced, builder: %s, test_type: %s, name: %s, data key: %s.",
+ builder, test_type, file.name, str(file.data_keys))
return file
- def _delete_all(self):
- if self.blob_key:
- blob_info = blobstore.BlobInfo.get(self.blob_key)
- if blob_info:
- blob_info.delete()
+ def save(self, data):
+ if not self.save_data(data):
+ return False
+
+ self.date = datetime.now()
+ self.put()
+ return True
+
+ def _delete_all(self):
+ self.delete_data()
self.delete()
diff --git a/WebKitTools/TestResultServer/templates/uploadform.html b/WebKitTools/TestResultServer/templates/uploadform.html
index 933f9f5..3506c9c 100644
--- a/WebKitTools/TestResultServer/templates/uploadform.html
+++ b/WebKitTools/TestResultServer/templates/uploadform.html
@@ -18,6 +18,9 @@
<td><input class=inputtext type="text" name="testtype" value=""/></td>
</tr>
</table>
+ <br>
+ <div><input class=button type="checkbox" name="incremental">Incremental results, merge with server file.</div>
+ <br>
<div><input class=button type="file" name="file" multiple></div>
<br>
<div><input class=button type="submit" value="Upload"></div>
diff --git a/WebKitTools/WebKitTestRunner/DerivedSources.make b/WebKitTools/WebKitTestRunner/DerivedSources.make
index 6134380..c308a8a 100644
--- a/WebKitTools/WebKitTestRunner/DerivedSources.make
+++ b/WebKitTools/WebKitTestRunner/DerivedSources.make
@@ -26,6 +26,8 @@ VPATH = \
#
INTERFACES = \
+ EventSendingController \
+ GCController \
LayoutTestController \
#
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm
index fa47143..0de2fd0 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm
@@ -245,30 +245,31 @@ JSValueRef ${className}::@{[$function->signature->name]}(JSContextRef context, J
${implementationClassName}* impl = to${implementationClassName}(context, thisObject);
if (!impl)
return JSValueMakeUndefined(context);
+
EOF
- my @parameters = ();
- my @specifiedParameters = @{$function->parameters};
+ my $functionCall;
+ if ($function->signature->extendedAttributes->{"CustomArgumentHandling"}) {
+ $functionCall = "impl->" . $function->signature->name . "(context, argumentCount, arguments, exception)";
+ } else {
+ my @parameters = ();
+ my @specifiedParameters = @{$function->parameters};
- push(@contents, "\n") if scalar @specifiedParameters;
+ $self->_includeHeaders(\%contentsIncludes, $function->signature->type, $function->signature);
- $self->_includeHeaders(\%contentsIncludes, $function->signature->type, $function->signature);
+ foreach my $i (0..$#specifiedParameters) {
+ my $parameter = $specifiedParameters[$i];
- foreach my $i (0..$#specifiedParameters) {
- my $parameter = $specifiedParameters[$i];
+ $self->_includeHeaders(\%contentsIncludes, $idlType, $parameter);
- $self->_includeHeaders(\%contentsIncludes, $idlType, $parameter);
+ push(@contents, " " . $self->_platformTypeVariableDeclaration($parameter, $parameter->name, "arguments[$i]", "argumentCount > $i") . "\n");
+
+ push(@parameters, $self->_parameterExpression($parameter));
+ }
- push(@contents, " " . $self->_platformTypeVariableDeclaration($parameter, $parameter->name, "arguments[$i]", "argumentCount > $i") . "\n");
-
- push(@parameters, $self->_parameterExpression($parameter));
+ $functionCall = "impl->" . $function->signature->name . "(" . join(", ", @parameters) . ")";
}
-
- my $isVoidReturn = $function->signature->type eq "void";
- my $functionName = "impl->" . $function->signature->name;
- my $functionCall = $functionName . "(" . join(", ", @parameters) . ")";
-
- push(@contents, "\n") unless scalar @specifiedParameters == 1;
- push(@contents, " ${functionCall};\n\n") if $isVoidReturn;
+
+ push(@contents, " ${functionCall};\n\n") if $function->signature->type eq "void";
push(@contents, " return " . $self->_returnExpression($function->signature, $functionCall) . ";\n}\n");
}
}
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl
new file mode 100644
index 0000000..1e47772
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module WTR {
+
+ interface EventSendingController {
+ [CustomArgumentHandling] void mouseDown();
+ [CustomArgumentHandling] void mouseUp();
+ [CustomArgumentHandling] void mouseMoveTo();
+ [CustomArgumentHandling] void keyDown();
+ [CustomArgumentHandling] void contextClick(); // CustomArgumentHandling only to throw exception while not implemented.
+ [CustomArgumentHandling] void leapForward(/*in unsigned long delay*/); // CustomArgumentHandling only to throw exception while not implemented.
+
+ // Zoom functions.
+ void textZoomIn();
+ void textZoomOut();
+ void zoomPageIn();
+ void zoomPageOut();
+ };
+
+}
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/GCController.idl b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/GCController.idl
new file mode 100644
index 0000000..eb3ddee
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/GCController.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module WTR {
+
+ interface GCController {
+ void collect();
+ void collectOnAlternateThread(in boolean waitUntilDone);
+ unsigned long long getJSObjectCount();
+ };
+
+}
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/JSWrapper.h b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/JSWrapper.h
index 9839cb4..d885801 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/JSWrapper.h
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/JSWrapper.h
@@ -27,6 +27,7 @@
#define JSWrapper_h
#include "JSWrappable.h"
+#include <JavaScriptCore/JSRetainPtr.h>
namespace WTR {
@@ -45,6 +46,12 @@ inline JSValueRef toJS(JSContextRef context, JSWrappable* impl)
return JSWrapper::wrap(context, impl);
}
+inline void setProperty(JSContextRef context, JSObjectRef object, const char* propertyName, JSWrappable* value, JSPropertyAttributes attributes, JSValueRef* exception)
+{
+ JSRetainPtr<JSStringRef> propertyNameString(Adopt, JSStringCreateWithUTF8CString(propertyName));
+ JSObjectSetProperty(context, object, propertyNameString.get(), JSWrapper::wrap(context, value), attributes, exception);
+}
+
} // namespace WTR
#endif // JSWrapper_h
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl
index 2eca583..7993d78 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl
@@ -37,6 +37,7 @@ module WTR {
void dumpEditingCallbacks();
void dumpSelectionRect();
void dumpStatusCallbacks();
+ void dumpTitleChanges();
// Special options.
void keepWebHistory();
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp
new file mode 100644
index 0000000..472cf6c
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "EventSendingController.h"
+
+#include "InjectedBundle.h"
+#include "InjectedBundlePage.h"
+#include "JSEventSendingController.h"
+#include <WebKit2/WKBundlePage.h>
+#include <WebKit2/WKBundlePagePrivate.h>
+#include <WebKit2/WKBundlePrivate.h>
+
+namespace WTR {
+
+static const float ZoomMultiplierRatio = 1.2f;
+
+PassRefPtr<EventSendingController> EventSendingController::create()
+{
+ return adoptRef(new EventSendingController);
+}
+
+EventSendingController::EventSendingController()
+{
+}
+
+EventSendingController::~EventSendingController()
+{
+}
+
+JSClassRef EventSendingController::wrapperClass()
+{
+ return JSEventSendingController::eventSendingControllerClass();
+}
+
+static void setExceptionForString(JSContextRef context, JSValueRef* exception, const char* string)
+{
+ JSRetainPtr<JSStringRef> exceptionString(Adopt, JSStringCreateWithUTF8CString(string));
+ *exception = JSValueMakeString(context, exceptionString.get());
+}
+
+void EventSendingController::mouseDown(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ setExceptionForString(context, exception, "EventSender.mouseDown is not yet supported.");
+}
+
+void EventSendingController::mouseUp(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ setExceptionForString(context, exception, "EventSender.mouseUp is not yet supported.");
+}
+
+void EventSendingController::mouseMoveTo(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ setExceptionForString(context, exception, "EventSender.mouseMoveTo is not yet supported.");
+}
+
+void EventSendingController::keyDown(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ setExceptionForString(context, exception, "EventSender.keyDown is not yet supported.");
+}
+
+void EventSendingController::contextClick(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ setExceptionForString(context, exception, "EventSender.contextClick is not yet supported.");
+}
+
+void EventSendingController::leapForward(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ setExceptionForString(context, exception, "EventSender.leapForward is not yet supported.");
+}
+
+void EventSendingController::textZoomIn()
+{
+ WKBundlePageSetZoomMode(InjectedBundle::shared().page()->page(), kWKBundlePageZoomModeTextOnly);
+ float zoomFactor = WKBundlePageGetZoomFactor(InjectedBundle::shared().page()->page());
+ WKBundlePageSetZoomFactor(InjectedBundle::shared().page()->page(), zoomFactor * ZoomMultiplierRatio);
+}
+
+void EventSendingController::textZoomOut()
+{
+ WKBundlePageSetZoomMode(InjectedBundle::shared().page()->page(), kWKBundlePageZoomModeTextOnly);
+ float zoomFactor = WKBundlePageGetZoomFactor(InjectedBundle::shared().page()->page());
+ WKBundlePageSetZoomFactor(InjectedBundle::shared().page()->page(), zoomFactor / ZoomMultiplierRatio);
+}
+
+void EventSendingController::zoomPageIn()
+{
+ WKBundlePageSetZoomMode(InjectedBundle::shared().page()->page(), kWKBundlePageZoomModePage);
+ float zoomFactor = WKBundlePageGetZoomFactor(InjectedBundle::shared().page()->page());
+ WKBundlePageSetZoomFactor(InjectedBundle::shared().page()->page(), zoomFactor * ZoomMultiplierRatio);
+}
+
+void EventSendingController::zoomPageOut()
+{
+ WKBundlePageSetZoomMode(InjectedBundle::shared().page()->page(), kWKBundlePageZoomModePage);
+ float zoomFactor = WKBundlePageGetZoomFactor(InjectedBundle::shared().page()->page());
+ WKBundlePageSetZoomFactor(InjectedBundle::shared().page()->page(), zoomFactor / ZoomMultiplierRatio);
+}
+
+// Object Creation
+
+void EventSendingController::makeWindowObject(JSContextRef context, JSObjectRef windowObject, JSValueRef* exception)
+{
+ setProperty(context, windowObject, "eventSender", this, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete, exception);
+}
+
+} // namespace WTR
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/EventSendingController.h b/WebKitTools/WebKitTestRunner/InjectedBundle/EventSendingController.h
new file mode 100644
index 0000000..400f60d
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/EventSendingController.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef EventSendingController_h
+#define EventSendingController_h
+
+#include "JSWrappable.h"
+#include <wtf/PassRefPtr.h>
+
+namespace WTR {
+
+class EventSendingController : public JSWrappable {
+public:
+ static PassRefPtr<EventSendingController> create();
+ virtual ~EventSendingController();
+
+ void makeWindowObject(JSContextRef, JSObjectRef windowObject, JSValueRef* exception);
+
+ // JSWrappable
+ virtual JSClassRef wrapperClass();
+
+ void mouseDown(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
+ void mouseUp(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
+ void mouseMoveTo(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
+ void keyDown(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
+ void contextClick(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
+ void leapForward(JSContextRef context, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
+
+ // Zoom functions.
+ void textZoomIn();
+ void textZoomOut();
+ void zoomPageIn();
+ void zoomPageOut();
+
+private:
+ EventSendingController();
+};
+
+} // namespace WTR
+
+#endif // EventSendingController_h
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/GCController.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/GCController.cpp
new file mode 100644
index 0000000..0eba2df
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/GCController.cpp
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "GCController.h"
+
+#include "InjectedBundle.h"
+#include "JSGCController.h"
+#include <WebKit2/WKBundlePrivate.h>
+
+namespace WTR {
+
+PassRefPtr<GCController> GCController::create()
+{
+ return adoptRef(new GCController);
+}
+
+GCController::GCController()
+{
+}
+
+GCController::~GCController()
+{
+}
+
+JSClassRef GCController::wrapperClass()
+{
+ return JSGCController::gCControllerClass();
+}
+
+void GCController::collect()
+{
+ WKBundleGarbageCollectJavaScriptObjects(InjectedBundle::shared().bundle());
+}
+
+void GCController::collectOnAlternateThread(bool waitUntilDone)
+{
+ WKBundleGarbageCollectJavaScriptObjectsOnAlternateThreadForDebugging(InjectedBundle::shared().bundle(), waitUntilDone);
+}
+
+size_t GCController::getJSObjectCount()
+{
+ return WKBundleGetJavaScriptObjectsCount(InjectedBundle::shared().bundle());
+}
+
+// Object Creation
+
+void GCController::makeWindowObject(JSContextRef context, JSObjectRef windowObject, JSValueRef* exception)
+{
+ setProperty(context, windowObject, "GCController", this, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete, exception);
+}
+
+} // namespace WTR
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/GCController.h b/WebKitTools/WebKitTestRunner/InjectedBundle/GCController.h
new file mode 100644
index 0000000..760fbb1
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/GCController.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef GCController_h
+#define GCController_h
+
+#include "JSWrappable.h"
+#include <wtf/PassRefPtr.h>
+
+namespace WTR {
+
+class GCController : public JSWrappable {
+public:
+ static PassRefPtr<GCController> create();
+ virtual ~GCController();
+
+ void makeWindowObject(JSContextRef, JSObjectRef windowObject, JSValueRef* exception);
+
+ // JSWrappable
+ virtual JSClassRef wrapperClass();
+
+ void collect();
+ void collectOnAlternateThread(bool waitUntilDone);
+ size_t getJSObjectCount();
+
+private:
+ GCController();
+};
+
+} // namespace WTR
+
+#endif // GCController_h
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
index 095bd9c..02dfeb1 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
@@ -81,6 +81,7 @@ void InjectedBundle::initialize(WKBundleRef bundle)
WKBundleSetClient(m_bundle, &client);
activateFonts();
+ WKBundleActivateMacFontAscentHack(m_bundle);
}
void InjectedBundle::done()
@@ -132,15 +133,15 @@ void InjectedBundle::didReceiveMessage(WKStringRef messageName, WKTypeRef messag
void InjectedBundle::reset()
{
m_outputStream.str("");
+
m_layoutTestController = LayoutTestController::create();
+ m_gcController = GCController::create();
+ m_eventSendingController = EventSendingController::create();
+
WKBundleSetShouldTrackVisitedLinks(m_bundle, false);
WKBundleRemoveAllVisitedLinks(m_bundle);
- m_mainPage->reset();
-}
-void InjectedBundle::setShouldTrackVisitedLinks()
-{
- WKBundleSetShouldTrackVisitedLinks(m_bundle, true);
+ m_mainPage->reset();
}
void InjectedBundle::closeOtherPages()
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.h b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.h
index 42eb3a1..ba021b1 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.h
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.h
@@ -26,6 +26,8 @@
#ifndef InjectedBundle_h
#define InjectedBundle_h
+#include "EventSendingController.h"
+#include "GCController.h"
#include "LayoutTestController.h"
#include <WebKit2/WKBase.h>
#include <WebKit2/WKBundleBase.h>
@@ -46,17 +48,19 @@ public:
// Initialize the InjectedBundle.
void initialize(WKBundleRef);
- void done();
+ WKBundleRef bundle() const { return m_bundle; }
LayoutTestController* layoutTestController() { return m_layoutTestController.get(); }
+ GCController* gcController() { return m_gcController.get(); }
+ EventSendingController* eventSendingController() { return m_eventSendingController.get(); }
+
InjectedBundlePage* page() { return m_mainPage.get(); }
size_t pageCount() { return !!m_mainPage + m_otherPages.size(); }
void closeOtherPages();
+ void done();
std::ostringstream& os() { return m_outputStream; }
- void setShouldTrackVisitedLinks();
-
private:
InjectedBundle();
~InjectedBundle();
@@ -76,6 +80,8 @@ private:
OwnPtr<InjectedBundlePage> m_mainPage;
RefPtr<LayoutTestController> m_layoutTestController;
+ RefPtr<GCController> m_gcController;
+ RefPtr<EventSendingController> m_eventSendingController;
std::ostringstream m_outputStream;
};
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp
index 406787e..40a098e 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp
@@ -26,6 +26,7 @@
#include "InjectedBundlePage.h"
#include "InjectedBundle.h"
+#include "StringFunctions.h"
#include <JavaScriptCore/JSRetainPtr.h>
#include <WebKit2/WKArray.h>
#include <WebKit2/WKBundleFrame.h>
@@ -34,43 +35,27 @@
#include <WebKit2/WKBundlePagePrivate.h>
#include <WebKit2/WKRetainPtr.h>
#include <WebKit2/WKBundleRange.h>
-#include <WebKit2/WKString.h>
-#include <WebKit2/WKStringCF.h>
-#include <wtf/PassOwnPtr.h>
-#include <wtf/RetainPtr.h>
-#include <wtf/Vector.h>
using namespace std;
namespace WTR {
-static ostream& operator<<(ostream& out, CFStringRef stringRef)
-{
- if (!stringRef)
- return out;
- CFIndex bufferLength = CFStringGetMaximumSizeForEncoding(CFStringGetLength(stringRef), kCFStringEncodingUTF8) + 1;
- Vector<char> buffer(bufferLength);
- if (!CFStringGetCString(stringRef, buffer.data(), bufferLength, kCFStringEncodingUTF8))
- return out;
- return out << buffer.data();
-}
-
-static ostream& operator<<(ostream& out, const RetainPtr<CFStringRef>& stringRef)
-{
- return out << stringRef.get();
-}
-
-static ostream& operator<<(ostream& out, WKStringRef stringRef)
-{
- if (!stringRef)
- return out;
- RetainPtr<CFStringRef> cfString(AdoptCF, WKStringCopyCFString(0, stringRef));
- return out << cfString;
-}
+static ostream& operator<<(ostream& out, WKBundleFrameRef frame)
+{
+ WKRetainPtr<WKStringRef> name(AdoptWK, WKBundleFrameCopyName(frame));
+ if (WKBundleFrameIsMainFrame(frame)) {
+ if (!WKStringIsEmpty(name.get()))
+ out << "main frame \"" << name << "\"";
+ else
+ out << "main frame";
+ } else {
+ if (!WKStringIsEmpty(name.get()))
+ out << "frame \"" << name << "\"";
+ else
+ out << "frame (anonymous)";
+ }
-static ostream& operator<<(ostream& out, const WKRetainPtr<WKStringRef>& stringRef)
-{
- return out << stringRef.get();
+ return out;
}
static string dumpPath(WKBundleNodeRef node)
@@ -111,42 +96,49 @@ InjectedBundlePage::InjectedBundlePage(WKBundlePageRef page)
WKBundlePageLoaderClient loaderClient = {
0,
this,
- _didStartProvisionalLoadForFrame,
- _didReceiveServerRedirectForProvisionalLoadForFrame,
- _didFailProvisionalLoadWithErrorForFrame,
- _didCommitLoadForFrame,
- _didFinishLoadForFrame,
- _didFailLoadWithErrorForFrame,
- _didReceiveTitleForFrame,
- _didClearWindowForFrame
+ didStartProvisionalLoadForFrame,
+ didReceiveServerRedirectForProvisionalLoadForFrame,
+ didFailProvisionalLoadWithErrorForFrame,
+ didCommitLoadForFrame,
+ didFinishLoadForFrame,
+ didFailLoadWithErrorForFrame,
+ didReceiveTitleForFrame,
+ didClearWindowForFrame,
+ didCancelClientRedirectForFrame,
+ willPerformClientRedirectForFrame,
+ didChangeLocationWithinPageForFrame,
+ didFinishDocumentLoadForFrame,
+ didHandleOnloadEventsForFrame,
+ didDisplayInsecureContentForFrame,
+ didRunInsecureContentForFrame
};
WKBundlePageSetLoaderClient(m_page, &loaderClient);
WKBundlePageUIClient uiClient = {
0,
this,
- _willAddMessageToConsole,
- _willSetStatusbarText,
- _willRunJavaScriptAlert,
- _willRunJavaScriptConfirm,
- _willRunJavaScriptPrompt
+ willAddMessageToConsole,
+ willSetStatusbarText,
+ willRunJavaScriptAlert,
+ willRunJavaScriptConfirm,
+ willRunJavaScriptPrompt
};
WKBundlePageSetUIClient(m_page, &uiClient);
WKBundlePageEditorClient editorClient = {
0,
this,
- _shouldBeginEditing,
- _shouldEndEditing,
- _shouldInsertNode,
- _shouldInsertText,
- _shouldDeleteRange,
- _shouldChangeSelectedRange,
- _shouldApplyStyle,
- _didBeginEditing,
- _didEndEditing,
- _didChange,
- _didChangeSelection
+ shouldBeginEditing,
+ shouldEndEditing,
+ shouldInsertNode,
+ shouldInsertText,
+ shouldDeleteRange,
+ shouldChangeSelectedRange,
+ shouldApplyStyle,
+ didBeginEditing,
+ didEndEditing,
+ didChange,
+ didChangeSelection
};
WKBundlePageSetEditorClient(m_page, &editorClient);
}
@@ -158,50 +150,89 @@ InjectedBundlePage::~InjectedBundlePage()
void InjectedBundlePage::reset()
{
WKBundlePageClearMainFrameName(m_page);
+
+ WKBundlePageSetZoomFactor(m_page, 1.0f);
+ WKBundlePageSetZoomMode(m_page, kWKBundlePageZoomModePage);
}
// Loader Client Callbacks
-void InjectedBundlePage::_didStartProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::didStartProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didStartProvisionalLoadForFrame(frame);
}
-void InjectedBundlePage::_didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didReceiveServerRedirectForProvisionalLoadForFrame(frame);
}
-void InjectedBundlePage::_didFailProvisionalLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didFailProvisionalLoadWithErrorForFrame(frame);
}
-void InjectedBundlePage::_didCommitLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::didCommitLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didCommitLoadForFrame(frame);
}
-void InjectedBundlePage::_didFinishLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::didFinishLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didFinishLoadForFrame(frame);
}
-void InjectedBundlePage::_didFailLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::didFailLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didFailLoadWithErrorForFrame(frame);
}
-void InjectedBundlePage::_didReceiveTitleForFrame(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::didReceiveTitleForFrame(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didReceiveTitleForFrame(title, frame);
}
-void InjectedBundlePage::_didClearWindowForFrame(WKBundlePageRef page, WKBundleFrameRef frame, JSGlobalContextRef context, JSObjectRef window, const void *clientInfo)
+void InjectedBundlePage::didClearWindowForFrame(WKBundlePageRef page, WKBundleFrameRef frame, JSGlobalContextRef context, JSObjectRef window, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didClearWindowForFrame(frame, context, window);
}
+void InjectedBundlePage::didCancelClientRedirectForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void* clientInfo)
+{
+ static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didCancelClientRedirectForFrame(frame);
+}
+
+void InjectedBundlePage::willPerformClientRedirectForFrame(WKBundlePageRef page, WKBundleFrameRef frame, WKURLRef url, double delay, double date, const void* clientInfo)
+{
+ static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->willPerformClientRedirectForFrame(frame, url, delay, date);
+}
+
+void InjectedBundlePage::didChangeLocationWithinPageForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void* clientInfo)
+{
+ static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didChangeLocationWithinPageForFrame(frame);
+}
+
+void InjectedBundlePage::didFinishDocumentLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void* clientInfo)
+{
+ static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didFinishDocumentLoadForFrame(frame);
+}
+
+void InjectedBundlePage::didHandleOnloadEventsForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void* clientInfo)
+{
+ static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didHandleOnloadEventsForFrame(frame);
+}
+
+void InjectedBundlePage::didDisplayInsecureContentForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void* clientInfo)
+{
+ static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didDisplayInsecureContentForFrame(frame);
+}
+
+void InjectedBundlePage::didRunInsecureContentForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void* clientInfo)
+{
+ static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didRunInsecureContentForFrame(frame);
+}
+
+
void InjectedBundlePage::didStartProvisionalLoadForFrame(WKBundleFrameRef frame)
{
if (frame == WKBundlePageGetMainFrame(m_page))
@@ -355,37 +386,74 @@ void InjectedBundlePage::didFailLoadWithErrorForFrame(WKBundleFrameRef frame)
void InjectedBundlePage::didReceiveTitleForFrame(WKStringRef title, WKBundleFrameRef frame)
{
+ if (!InjectedBundle::shared().layoutTestController()->shouldDumpTitleChanges())
+ return;
+
+ InjectedBundle::shared().os() << "TITLE CHANGED: " << title << "\n";
}
void InjectedBundlePage::didClearWindowForFrame(WKBundleFrameRef frame, JSGlobalContextRef context, JSObjectRef window)
{
JSValueRef exception = 0;
InjectedBundle::shared().layoutTestController()->makeWindowObject(context, window, &exception);
+ InjectedBundle::shared().gcController()->makeWindowObject(context, window, &exception);
+ InjectedBundle::shared().eventSendingController()->makeWindowObject(context, window, &exception);
+}
+
+void InjectedBundlePage::didCancelClientRedirectForFrame(WKBundleFrameRef frame)
+{
+}
+
+void InjectedBundlePage::willPerformClientRedirectForFrame(WKBundleFrameRef frame, WKURLRef url, double delay, double date)
+{
+}
+
+void InjectedBundlePage::didChangeLocationWithinPageForFrame(WKBundleFrameRef frame)
+{
+}
+
+void InjectedBundlePage::didFinishDocumentLoadForFrame(WKBundleFrameRef frame)
+{
+ unsigned pendingFrameUnloadEvents = WKBundleFrameGetPendingUnloadCount(frame);
+ if (pendingFrameUnloadEvents)
+ InjectedBundle::shared().os() << frame << " - has " << pendingFrameUnloadEvents << " onunload handler(s)\n";
+}
+
+void InjectedBundlePage::didHandleOnloadEventsForFrame(WKBundleFrameRef frame)
+{
+}
+
+void InjectedBundlePage::didDisplayInsecureContentForFrame(WKBundleFrameRef frame)
+{
+}
+
+void InjectedBundlePage::didRunInsecureContentForFrame(WKBundleFrameRef frame)
+{
}
// UI Client Callbacks
-void InjectedBundlePage::_willAddMessageToConsole(WKBundlePageRef page, WKStringRef message, uint32_t lineNumber, const void *clientInfo)
+void InjectedBundlePage::willAddMessageToConsole(WKBundlePageRef page, WKStringRef message, uint32_t lineNumber, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->willAddMessageToConsole(message, lineNumber);
}
-void InjectedBundlePage::_willSetStatusbarText(WKBundlePageRef page, WKStringRef statusbarText, const void *clientInfo)
+void InjectedBundlePage::willSetStatusbarText(WKBundlePageRef page, WKStringRef statusbarText, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->willSetStatusbarText(statusbarText);
}
-void InjectedBundlePage::_willRunJavaScriptAlert(WKBundlePageRef page, WKStringRef message, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::willRunJavaScriptAlert(WKBundlePageRef page, WKStringRef message, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->willRunJavaScriptAlert(message, frame);
}
-void InjectedBundlePage::_willRunJavaScriptConfirm(WKBundlePageRef page, WKStringRef message, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::willRunJavaScriptConfirm(WKBundlePageRef page, WKStringRef message, WKBundleFrameRef frame, const void *clientInfo)
{
return static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->willRunJavaScriptConfirm(message, frame);
}
-void InjectedBundlePage::_willRunJavaScriptPrompt(WKBundlePageRef page, WKStringRef message, WKStringRef defaultValue, WKBundleFrameRef frame, const void *clientInfo)
+void InjectedBundlePage::willRunJavaScriptPrompt(WKBundlePageRef page, WKStringRef message, WKStringRef defaultValue, WKBundleFrameRef frame, const void *clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->willRunJavaScriptPrompt(message, defaultValue, frame);
}
@@ -421,57 +489,57 @@ void InjectedBundlePage::willRunJavaScriptPrompt(WKStringRef message, WKStringRe
// Editor Client Callbacks
-bool InjectedBundlePage::_shouldBeginEditing(WKBundlePageRef page, WKBundleRangeRef range, const void* clientInfo)
+bool InjectedBundlePage::shouldBeginEditing(WKBundlePageRef page, WKBundleRangeRef range, const void* clientInfo)
{
return static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->shouldBeginEditing(range);
}
-bool InjectedBundlePage::_shouldEndEditing(WKBundlePageRef page, WKBundleRangeRef range, const void* clientInfo)
+bool InjectedBundlePage::shouldEndEditing(WKBundlePageRef page, WKBundleRangeRef range, const void* clientInfo)
{
return static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->shouldEndEditing(range);
}
-bool InjectedBundlePage::_shouldInsertNode(WKBundlePageRef page, WKBundleNodeRef node, WKBundleRangeRef rangeToReplace, WKInsertActionType action, const void* clientInfo)
+bool InjectedBundlePage::shouldInsertNode(WKBundlePageRef page, WKBundleNodeRef node, WKBundleRangeRef rangeToReplace, WKInsertActionType action, const void* clientInfo)
{
return static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->shouldInsertNode(node, rangeToReplace, action);
}
-bool InjectedBundlePage::_shouldInsertText(WKBundlePageRef page, WKStringRef text, WKBundleRangeRef rangeToReplace, WKInsertActionType action, const void* clientInfo)
+bool InjectedBundlePage::shouldInsertText(WKBundlePageRef page, WKStringRef text, WKBundleRangeRef rangeToReplace, WKInsertActionType action, const void* clientInfo)
{
return static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->shouldInsertText(text, rangeToReplace, action);
}
-bool InjectedBundlePage::_shouldDeleteRange(WKBundlePageRef page, WKBundleRangeRef range, const void* clientInfo)
+bool InjectedBundlePage::shouldDeleteRange(WKBundlePageRef page, WKBundleRangeRef range, const void* clientInfo)
{
return static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->shouldDeleteRange(range);
}
-bool InjectedBundlePage::_shouldChangeSelectedRange(WKBundlePageRef page, WKBundleRangeRef fromRange, WKBundleRangeRef toRange, WKAffinityType affinity, bool stillSelecting, const void* clientInfo)
+bool InjectedBundlePage::shouldChangeSelectedRange(WKBundlePageRef page, WKBundleRangeRef fromRange, WKBundleRangeRef toRange, WKAffinityType affinity, bool stillSelecting, const void* clientInfo)
{
return static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->shouldChangeSelectedRange(fromRange, toRange, affinity, stillSelecting);
}
-bool InjectedBundlePage::_shouldApplyStyle(WKBundlePageRef page, WKBundleCSSStyleDeclarationRef style, WKBundleRangeRef range, const void* clientInfo)
+bool InjectedBundlePage::shouldApplyStyle(WKBundlePageRef page, WKBundleCSSStyleDeclarationRef style, WKBundleRangeRef range, const void* clientInfo)
{
return static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->shouldApplyStyle(style, range);
}
-void InjectedBundlePage::_didBeginEditing(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo)
+void InjectedBundlePage::didBeginEditing(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didBeginEditing(notificationName);
}
-void InjectedBundlePage::_didEndEditing(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo)
+void InjectedBundlePage::didEndEditing(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didEndEditing(notificationName);
}
-void InjectedBundlePage::_didChange(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo)
+void InjectedBundlePage::didChange(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didChange(notificationName);
}
-void InjectedBundlePage::_didChangeSelection(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo)
+void InjectedBundlePage::didChangeSelection(WKBundlePageRef page, WKStringRef notificationName, const void* clientInfo)
{
static_cast<InjectedBundlePage*>(const_cast<void*>(clientInfo))->didChangeSelection(notificationName);
}
@@ -492,7 +560,7 @@ bool InjectedBundlePage::shouldEndEditing(WKBundleRangeRef range)
bool InjectedBundlePage::shouldInsertNode(WKBundleNodeRef node, WKBundleRangeRef rangeToReplace, WKInsertActionType action)
{
- static const char *insertactionstring[] = {
+ static const char* insertactionstring[] = {
"WebViewInsertActionTyped",
"WebViewInsertActionPasted",
"WebViewInsertActionDropped",
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h
index f7d64f9..8909883 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h
@@ -44,14 +44,21 @@ public:
private:
// Loader Client
- static void _didStartProvisionalLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void* clientInfo);
- static void _didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void* clientInfo);
- static void _didFailProvisionalLoadWithErrorForFrame(WKBundlePageRef, WKBundleFrameRef, const void* clientInfo);
- static void _didCommitLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void* clientInfo);
- static void _didFinishLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void* clientInfo);
- static void _didFailLoadWithErrorForFrame(WKBundlePageRef, WKBundleFrameRef, const void* clientInfo);
- static void _didReceiveTitleForFrame(WKBundlePageRef, WKStringRef title, WKBundleFrameRef, const void* clientInfo);
- static void _didClearWindowForFrame(WKBundlePageRef, WKBundleFrameRef, JSGlobalContextRef, JSObjectRef window, const void* clientInfo);
+ static void didStartProvisionalLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didFailProvisionalLoadWithErrorForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didCommitLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didFinishLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didFailLoadWithErrorForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didReceiveTitleForFrame(WKBundlePageRef, WKStringRef title, WKBundleFrameRef, const void*);
+ static void didClearWindowForFrame(WKBundlePageRef, WKBundleFrameRef, JSGlobalContextRef, JSObjectRef window, const void*);
+ static void didCancelClientRedirectForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void willPerformClientRedirectForFrame(WKBundlePageRef, WKBundleFrameRef, WKURLRef url, double delay, double date, const void*);
+ static void didChangeLocationWithinPageForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didFinishDocumentLoadForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didHandleOnloadEventsForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didDisplayInsecureContentForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
+ static void didRunInsecureContentForFrame(WKBundlePageRef, WKBundleFrameRef, const void*);
void didStartProvisionalLoadForFrame(WKBundleFrameRef);
void didReceiveServerRedirectForProvisionalLoadForFrame(WKBundleFrameRef);
void didFailProvisionalLoadWithErrorForFrame(WKBundleFrameRef);
@@ -60,13 +67,20 @@ private:
void didFailLoadWithErrorForFrame(WKBundleFrameRef);
void didReceiveTitleForFrame(WKStringRef title, WKBundleFrameRef);
void didClearWindowForFrame(WKBundleFrameRef, JSGlobalContextRef, JSObjectRef window);
+ void didCancelClientRedirectForFrame(WKBundleFrameRef);
+ void willPerformClientRedirectForFrame(WKBundleFrameRef, WKURLRef url, double delay, double date);
+ void didChangeLocationWithinPageForFrame(WKBundleFrameRef);
+ void didFinishDocumentLoadForFrame(WKBundleFrameRef);
+ void didHandleOnloadEventsForFrame(WKBundleFrameRef);
+ void didDisplayInsecureContentForFrame(WKBundleFrameRef);
+ void didRunInsecureContentForFrame(WKBundleFrameRef);
// UI Client
- static void _willAddMessageToConsole(WKBundlePageRef, WKStringRef message, uint32_t lineNumber, const void* clientInfo);
- static void _willSetStatusbarText(WKBundlePageRef, WKStringRef statusbarText, const void* clientInfo);
- static void _willRunJavaScriptAlert(WKBundlePageRef, WKStringRef message, WKBundleFrameRef frame, const void* clientInfo);
- static void _willRunJavaScriptConfirm(WKBundlePageRef, WKStringRef message, WKBundleFrameRef frame, const void* clientInfo);
- static void _willRunJavaScriptPrompt(WKBundlePageRef, WKStringRef message, WKStringRef defaultValue, WKBundleFrameRef frame, const void* clientInfo);
+ static void willAddMessageToConsole(WKBundlePageRef, WKStringRef message, uint32_t lineNumber, const void* clientInfo);
+ static void willSetStatusbarText(WKBundlePageRef, WKStringRef statusbarText, const void* clientInfo);
+ static void willRunJavaScriptAlert(WKBundlePageRef, WKStringRef message, WKBundleFrameRef frame, const void* clientInfo);
+ static void willRunJavaScriptConfirm(WKBundlePageRef, WKStringRef message, WKBundleFrameRef frame, const void* clientInfo);
+ static void willRunJavaScriptPrompt(WKBundlePageRef, WKStringRef message, WKStringRef defaultValue, WKBundleFrameRef frame, const void* clientInfo);
void willAddMessageToConsole(WKStringRef message, uint32_t lineNumber);
void willSetStatusbarText(WKStringRef statusbarText);
void willRunJavaScriptAlert(WKStringRef message, WKBundleFrameRef);
@@ -74,17 +88,17 @@ private:
void willRunJavaScriptPrompt(WKStringRef message, WKStringRef defaultValue, WKBundleFrameRef);
// Editor client
- static bool _shouldBeginEditing(WKBundlePageRef, WKBundleRangeRef, const void* clientInfo);
- static bool _shouldEndEditing(WKBundlePageRef, WKBundleRangeRef, const void* clientInfo);
- static bool _shouldInsertNode(WKBundlePageRef, WKBundleNodeRef, WKBundleRangeRef rangeToReplace, WKInsertActionType, const void* clientInfo);
- static bool _shouldInsertText(WKBundlePageRef, WKStringRef, WKBundleRangeRef rangeToReplace, WKInsertActionType, const void* clientInfo);
- static bool _shouldDeleteRange(WKBundlePageRef, WKBundleRangeRef, const void* clientInfo);
- static bool _shouldChangeSelectedRange(WKBundlePageRef, WKBundleRangeRef fromRange, WKBundleRangeRef toRange, WKAffinityType, bool stillSelecting, const void* clientInfo);
- static bool _shouldApplyStyle(WKBundlePageRef, WKBundleCSSStyleDeclarationRef style, WKBundleRangeRef range, const void* clientInfo);
- static void _didBeginEditing(WKBundlePageRef, WKStringRef notificationName, const void* clientInfo);
- static void _didEndEditing(WKBundlePageRef, WKStringRef notificationName, const void* clientInfo);
- static void _didChange(WKBundlePageRef, WKStringRef notificationName, const void* clientInfo);
- static void _didChangeSelection(WKBundlePageRef, WKStringRef notificationName, const void* clientInfo);
+ static bool shouldBeginEditing(WKBundlePageRef, WKBundleRangeRef, const void* clientInfo);
+ static bool shouldEndEditing(WKBundlePageRef, WKBundleRangeRef, const void* clientInfo);
+ static bool shouldInsertNode(WKBundlePageRef, WKBundleNodeRef, WKBundleRangeRef rangeToReplace, WKInsertActionType, const void* clientInfo);
+ static bool shouldInsertText(WKBundlePageRef, WKStringRef, WKBundleRangeRef rangeToReplace, WKInsertActionType, const void* clientInfo);
+ static bool shouldDeleteRange(WKBundlePageRef, WKBundleRangeRef, const void* clientInfo);
+ static bool shouldChangeSelectedRange(WKBundlePageRef, WKBundleRangeRef fromRange, WKBundleRangeRef toRange, WKAffinityType, bool stillSelecting, const void* clientInfo);
+ static bool shouldApplyStyle(WKBundlePageRef, WKBundleCSSStyleDeclarationRef style, WKBundleRangeRef range, const void* clientInfo);
+ static void didBeginEditing(WKBundlePageRef, WKStringRef notificationName, const void* clientInfo);
+ static void didEndEditing(WKBundlePageRef, WKStringRef notificationName, const void* clientInfo);
+ static void didChange(WKBundlePageRef, WKStringRef notificationName, const void* clientInfo);
+ static void didChangeSelection(WKBundlePageRef, WKStringRef notificationName, const void* clientInfo);
bool shouldBeginEditing(WKBundleRangeRef);
bool shouldEndEditing(WKBundleRangeRef);
bool shouldInsertNode(WKBundleNodeRef, WKBundleRangeRef rangeToReplace, WKInsertActionType);
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp
index 8fda21e..f2393f1 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp
@@ -28,12 +28,12 @@
#include "InjectedBundle.h"
#include "InjectedBundlePage.h"
#include "JSLayoutTestController.h"
-#include <JavaScriptCore/JSRetainPtr.h>
+#include "StringFunctions.h"
#include <WebKit2/WKBundleFrame.h>
#include <WebKit2/WKBundleFramePrivate.h>
#include <WebKit2/WKBundlePagePrivate.h>
+#include <WebKit2/WKBundlePrivate.h>
#include <WebKit2/WKRetainPtr.h>
-#include <WebKit2/WKStringCF.h>
#include <WebKit2/WebKit2.h>
namespace WTR {
@@ -42,37 +42,6 @@ namespace WTR {
// Eventually it should be changed to match.
static const CFTimeInterval waitToDumpWatchdogInterval = 6.0;
-static RetainPtr<CFStringRef> toCF(JSStringRef string)
-{
- return RetainPtr<CFStringRef>(AdoptCF, JSStringCopyCFString(0, string));
-}
-
-static RetainPtr<CFStringRef> toCF(WKStringRef string)
-{
- return RetainPtr<CFStringRef>(AdoptCF, WKStringCopyCFString(0, string));
-}
-
-static WKRetainPtr<WKStringRef> toWK(JSStringRef string)
-{
- return WKRetainPtr<WKStringRef>(AdoptWK, WKStringCreateWithCFString(toCF(string).get()));
-}
-
-static JSRetainPtr<JSStringRef> toJS(WKStringRef string)
-{
- return JSRetainPtr<JSStringRef>(Adopt, JSStringCreateWithCFString(toCF(string).get()));
-}
-
-static JSRetainPtr<JSStringRef> toJS(const WKRetainPtr<WKStringRef>& string)
-{
- return toJS(string.get());
-}
-
-static void setProperty(JSContextRef context, JSObjectRef object, const char* propertyName, JSWrappable* value, JSPropertyAttributes attributes, JSValueRef* exception)
-{
- JSRetainPtr<JSStringRef> propertyNameString(Adopt, JSStringCreateWithUTF8CString(propertyName));
- JSObjectSetProperty(context, object, propertyNameString.get(), JSWrapper::wrap(context, value), attributes, exception);
-}
-
static JSValueRef propertyValue(JSContextRef context, JSObjectRef object, const char* propertyName)
{
if (!object)
@@ -119,6 +88,7 @@ LayoutTestController::LayoutTestController()
, m_shouldCloseExtraWindows(false)
, m_dumpEditingCallbacks(false)
, m_dumpStatusCallbacks(false)
+ , m_dumpTitleChanges(false)
, m_waitToDump(false)
, m_testRepaint(false)
, m_testRepaintSweepHorizontally(false)
@@ -195,7 +165,7 @@ bool LayoutTestController::pauseAnimationAtTimeOnElementWithId(JSStringRef anima
void LayoutTestController::keepWebHistory()
{
- InjectedBundle::shared().setShouldTrackVisitedLinks();
+ WKBundleSetShouldTrackVisitedLinks(InjectedBundle::shared().bundle(), true);
}
JSValueRef LayoutTestController::computedStyleIncludingVisitedInfo(JSValueRef element)
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h b/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h
index 75aeb9e..7c3125c 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h
@@ -27,7 +27,6 @@
#define LayoutTestController_h
#include "JSWrappable.h"
-#include <JavaScriptCore/JavaScriptCore.h>
#include <JavaScriptCore/JSRetainPtr.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RetainPtr.h>
@@ -56,6 +55,7 @@ public:
void dumpEditingCallbacks() { m_dumpEditingCallbacks = true; }
void dumpSelectionRect() { } // Will need to do something when we support pixel tests.
void dumpStatusCallbacks() { m_dumpStatusCallbacks = true; }
+ void dumpTitleChanges() { m_dumpTitleChanges = true; }
// Special options.
void keepWebHistory();
@@ -88,6 +88,7 @@ public:
bool shouldDumpMainFrameScrollPosition() const { return m_whatToDump == RenderTree; }
bool shouldDumpStatusCallbacks() const { return m_dumpStatusCallbacks; }
+ bool shouldDumpTitleChanges() const { return m_dumpTitleChanges; }
bool waitToDump() const { return m_waitToDump; }
void waitToDumpWatchdogTimerFired();
@@ -108,6 +109,7 @@ private:
bool m_dumpEditingCallbacks;
bool m_dumpStatusCallbacks;
+ bool m_dumpTitleChanges;
bool m_waitToDump; // True if waitUntilDone() has been called, but notifyDone() has not yet been called.
bool m_testRepaint;
bool m_testRepaintSweepHorizontally;
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/win/ActivateFonts.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/win/ActivateFonts.cpp
index c7532ce..d9f08c9 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/win/ActivateFonts.cpp
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/win/ActivateFonts.cpp
@@ -25,11 +25,83 @@
#include "ActivateFonts.h"
+#include <string>
+#include <wtf/Vector.h>
+
+static LPCWSTR fontsEnvironmentVariable = L"WEBKIT_TESTFONTS";
+
namespace WTR {
+using namespace std;
+
+static const wstring& fontsPath()
+{
+ static wstring path;
+ static bool initialized;
+
+ if (initialized)
+ return path;
+ initialized = true;
+
+ DWORD size = ::GetEnvironmentVariableW(fontsEnvironmentVariable, 0, 0);
+ Vector<WCHAR> buffer(size);
+ if (!::GetEnvironmentVariableW(fontsEnvironmentVariable, buffer.data(), buffer.size()))
+ return path;
+
+ path = buffer.data();
+ if (path[path.length() - 1] != '\\')
+ path.append(L"\\");
+
+ return path;
+}
+
+
void activateFonts()
{
- // FIXME: Not implemented.
+ static LPCWSTR fontsToInstall[] = {
+ TEXT("AHEM____.ttf"),
+ TEXT("Apple Chancery.ttf"),
+ TEXT("Courier Bold.ttf"),
+ TEXT("Courier.ttf"),
+ TEXT("Helvetica Bold Oblique.ttf"),
+ TEXT("Helvetica Bold.ttf"),
+ TEXT("Helvetica Oblique.ttf"),
+ TEXT("Helvetica.ttf"),
+ TEXT("Helvetica Neue Bold Italic.ttf"),
+ TEXT("Helvetica Neue Bold.ttf"),
+ TEXT("Helvetica Neue Condensed Black.ttf"),
+ TEXT("Helvetica Neue Condensed Bold.ttf"),
+ TEXT("Helvetica Neue Italic.ttf"),
+ TEXT("Helvetica Neue Light Italic.ttf"),
+ TEXT("Helvetica Neue Light.ttf"),
+ TEXT("Helvetica Neue UltraLight Italic.ttf"),
+ TEXT("Helvetica Neue UltraLight.ttf"),
+ TEXT("Helvetica Neue.ttf"),
+ TEXT("Lucida Grande.ttf"),
+ TEXT("Lucida Grande Bold.ttf"),
+ TEXT("Monaco.ttf"),
+ TEXT("Papyrus.ttf"),
+ TEXT("Times Bold Italic.ttf"),
+ TEXT("Times Bold.ttf"),
+ TEXT("Times Italic.ttf"),
+ TEXT("Times Roman.ttf"),
+ TEXT("WebKit Layout Tests 2.ttf"),
+ TEXT("WebKit Layout Tests.ttf"),
+ TEXT("WebKitWeightWatcher100.ttf"),
+ TEXT("WebKitWeightWatcher200.ttf"),
+ TEXT("WebKitWeightWatcher300.ttf"),
+ TEXT("WebKitWeightWatcher400.ttf"),
+ TEXT("WebKitWeightWatcher500.ttf"),
+ TEXT("WebKitWeightWatcher600.ttf"),
+ TEXT("WebKitWeightWatcher700.ttf"),
+ TEXT("WebKitWeightWatcher800.ttf"),
+ TEXT("WebKitWeightWatcher900.ttf")
+ };
+
+ wstring resourcesPath = fontsPath();
+
+ for (unsigned i = 0; i < ARRAYSIZE(fontsToInstall); ++i)
+ ::AddFontResourceExW(wstring(resourcesPath + fontsToInstall[i]).c_str(), FR_PRIVATE, 0);
}
}
diff --git a/WebKitTools/WebKitTestRunner/StringFunctions.h b/WebKitTools/WebKitTestRunner/StringFunctions.h
new file mode 100644
index 0000000..4f8fe93
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/StringFunctions.h
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef StringFunctions_h
+#define StringFunctions_h
+
+#include <JavaScriptCore/JSRetainPtr.h>
+#include <JavaScriptCore/JavaScriptCore.h>
+#include <WebKit2/WKRetainPtr.h>
+#include <WebKit2/WKString.h>
+#include <WebKit2/WKStringCF.h>
+#include <WebKit2/WKURL.h>
+#include <WebKit2/WKURLCF.h>
+#include <sstream>
+#include <wtf/Platform.h>
+#include <wtf/RetainPtr.h>
+#include <wtf/Vector.h>
+
+namespace WTR {
+
+// Conversion functions
+
+inline RetainPtr<CFStringRef> toCF(JSStringRef string)
+{
+ return RetainPtr<CFStringRef>(AdoptCF, JSStringCopyCFString(0, string));
+}
+
+inline RetainPtr<CFStringRef> toCF(WKStringRef string)
+{
+ return RetainPtr<CFStringRef>(AdoptCF, WKStringCopyCFString(0, string));
+}
+
+inline WKRetainPtr<WKStringRef> toWK(JSStringRef string)
+{
+ return WKRetainPtr<WKStringRef>(AdoptWK, WKStringCreateWithCFString(toCF(string).get()));
+}
+
+inline WKRetainPtr<WKStringRef> toWK(JSRetainPtr<JSStringRef> string)
+{
+ return WKRetainPtr<WKStringRef>(AdoptWK, WKStringCreateWithCFString(toCF(string.get()).get()));
+}
+
+inline JSRetainPtr<JSStringRef> toJS(WKStringRef string)
+{
+ return JSRetainPtr<JSStringRef>(Adopt, JSStringCreateWithCFString(toCF(string).get()));
+}
+
+inline JSRetainPtr<JSStringRef> toJS(const WKRetainPtr<WKStringRef>& string)
+{
+ return toJS(string.get());
+}
+
+// Streaming functions
+
+inline std::ostream& operator<<(std::ostream& out, CFStringRef stringRef)
+{
+ if (!stringRef)
+ return out;
+ CFIndex bufferLength = CFStringGetMaximumSizeForEncoding(CFStringGetLength(stringRef), kCFStringEncodingUTF8) + 1;
+ Vector<char> buffer(bufferLength);
+ if (!CFStringGetCString(stringRef, buffer.data(), bufferLength, kCFStringEncodingUTF8))
+ return out;
+ return out << buffer.data();
+}
+
+inline std::ostream& operator<<(std::ostream& out, const RetainPtr<CFStringRef>& stringRef)
+{
+ return out << stringRef.get();
+}
+
+inline std::ostream& operator<<(std::ostream& out, WKStringRef stringRef)
+{
+ if (!stringRef)
+ return out;
+ return out << toCF(stringRef);
+}
+
+inline std::ostream& operator<<(std::ostream& out, const WKRetainPtr<WKStringRef>& stringRef)
+{
+ return out << stringRef.get();
+}
+
+// URL creation
+
+inline WKURLRef createWKURL(const char* pathOrURL)
+{
+ RetainPtr<CFStringRef> pathOrURLCFString(AdoptCF, CFStringCreateWithCString(0, pathOrURL, kCFStringEncodingUTF8));
+ RetainPtr<CFURLRef> cfURL;
+ if (CFStringHasPrefix(pathOrURLCFString.get(), CFSTR("http://")) || CFStringHasPrefix(pathOrURLCFString.get(), CFSTR("https://")))
+ cfURL.adoptCF(CFURLCreateWithString(0, pathOrURLCFString.get(), 0));
+ else
+#if PLATFORM(WIN)
+ cfURL.adoptCF(CFURLCreateWithFileSystemPath(0, pathOrURLCFString.get(), kCFURLWindowsPathStyle, false));
+#else
+ cfURL.adoptCF(CFURLCreateWithFileSystemPath(0, pathOrURLCFString.get(), kCFURLPOSIXPathStyle, false));
+#endif
+ return WKURLCreateWithCFURL(cfURL.get());
+}
+
+
+} // namespace WTR
+
+#endif // StringFunctions_h
diff --git a/WebKitTools/WebKitTestRunner/TestInvocation.cpp b/WebKitTools/WebKitTestRunner/TestInvocation.cpp
index 658911b..9a0f0aa 100644
--- a/WebKitTools/WebKitTestRunner/TestInvocation.cpp
+++ b/WebKitTools/WebKitTestRunner/TestInvocation.cpp
@@ -26,47 +26,18 @@
#include "TestInvocation.h"
#include "PlatformWebView.h"
+#include "StringFunctions.h"
#include "TestController.h"
#include <WebKit2/WKContextPrivate.h>
+#include <WebKit2/WKPreferencesPrivate.h>
#include <WebKit2/WKRetainPtr.h>
-#include <WebKit2/WKStringCF.h>
-#include <WebKit2/WKURLCF.h>
-#include <wtf/PassOwnPtr.h>
#include <wtf/RetainPtr.h>
-#include <wtf/Vector.h>
using namespace WebKit;
+using namespace std;
namespace WTR {
-static WKURLRef createWKURL(const char* pathOrURL)
-{
- RetainPtr<CFStringRef> pathOrURLCFString(AdoptCF, CFStringCreateWithCString(0, pathOrURL, kCFStringEncodingUTF8));
- RetainPtr<CFURLRef> cfURL;
- if (CFStringHasPrefix(pathOrURLCFString.get(), CFSTR("http://")) || CFStringHasPrefix(pathOrURLCFString.get(), CFSTR("https://")))
- cfURL.adoptCF(CFURLCreateWithString(0, pathOrURLCFString.get(), 0));
- else
-#if defined(WIN32) || defined(_WIN32)
- cfURL.adoptCF(CFURLCreateWithFileSystemPath(0, pathOrURLCFString.get(), kCFURLWindowsPathStyle, false));
-#else
- cfURL.adoptCF(CFURLCreateWithFileSystemPath(0, pathOrURLCFString.get(), kCFURLPOSIXPathStyle, false));
-#endif
- return WKURLCreateWithCFURL(cfURL.get());
-}
-
-static PassOwnPtr<Vector<char> > WKStringToUTF8(WKStringRef wkStringRef)
-{
- RetainPtr<CFStringRef> cfString(AdoptCF, WKStringCopyCFString(0, wkStringRef));
- CFIndex bufferLength = CFStringGetMaximumSizeForEncoding(CFStringGetLength(cfString.get()), kCFStringEncodingUTF8) + 1;
- OwnPtr<Vector<char> > buffer(new Vector<char>(bufferLength));
- if (!CFStringGetCString(cfString.get(), buffer->data(), bufferLength, kCFStringEncodingUTF8)) {
- buffer->shrink(1);
- (*buffer)[0] = 0;
- } else
- buffer->shrink(strlen(buffer->data()) + 1);
- return buffer.release();
-}
-
TestInvocation::TestInvocation(const char* pathOrURL)
: m_url(AdoptWK, createWKURL(pathOrURL))
, m_pathOrURL(fastStrDup(pathOrURL))
@@ -99,8 +70,8 @@ static void sizeWebViewForCurrentTest(char* pathOrURL)
void TestInvocation::resetPreferencesToConsistentValues()
{
WKPreferencesRef preferences = WKContextGetPreferences(TestController::shared().context());
-
WKPreferencesSetOfflineWebApplicationCacheEnabled(preferences, true);
+ WKPreferencesSetFontSmoothingLevel(preferences, kWKFontSmoothingLevelNoSubpixelAntiAliasing);
}
void TestInvocation::invoke()
@@ -165,8 +136,11 @@ void TestInvocation::didReceiveMessageFromInjectedBundle(WKStringRef messageName
if (CFEqual(cfMessageName.get(), CFSTR("Done"))) {
ASSERT(WKGetTypeID(messageBody) == WKStringGetTypeID());
- OwnPtr<Vector<char> > utf8Message = WKStringToUTF8(static_cast<WKStringRef>(messageBody));
- dump(utf8Message->data());
+ ostringstream out;
+ out << static_cast<WKStringRef>(messageBody);
+
+ dump(out.str().c_str());
+
m_gotFinalMessage = true;
return;
}
diff --git a/WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj b/WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj
index eccf330..6f78289 100644
--- a/WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj
+++ b/WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj
@@ -33,6 +33,8 @@
6510A78B11EC643800410867 /* WebKitWeightWatcher800.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6510A78011EC643800410867 /* WebKitWeightWatcher800.ttf */; };
6510A78C11EC643800410867 /* WebKitWeightWatcher900.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6510A78111EC643800410867 /* WebKitWeightWatcher900.ttf */; };
65EB85A011EC67CC0034D300 /* ActivateFonts.mm in Sources */ = {isa = PBXBuildFile; fileRef = 65EB859F11EC67CC0034D300 /* ActivateFonts.mm */; };
+ BC14E4DB120E02D000826C0C /* GCController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC14E4D9120E02D000826C0C /* GCController.cpp */; };
+ BC14E4EA120E03D800826C0C /* JSGCController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC14E4E8120E03D800826C0C /* JSGCController.cpp */; };
BC25193E11D15D8B002EBC01 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC7934A411906584005EA8E2 /* Cocoa.framework */; };
BC25193F11D15D8B002EBC01 /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC7934AB1190658C005EA8E2 /* WebKit2.framework */; };
BC25194011D15D8B002EBC01 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCDA2B991191051F00C3BC47 /* JavaScriptCore.framework */; };
@@ -43,6 +45,8 @@
BC7934AC1190658C005EA8E2 /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC7934AB1190658C005EA8E2 /* WebKit2.framework */; };
BC7934E811906846005EA8E2 /* PlatformWebViewMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC7934E711906846005EA8E2 /* PlatformWebViewMac.mm */; };
BC8C795C11D2785D004535A1 /* TestControllerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8C795B11D2785D004535A1 /* TestControllerMac.mm */; };
+ BC8FD8CA120E527F00F3E71A /* EventSendingController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC8FD8C9120E527F00F3E71A /* EventSendingController.cpp */; };
+ BC8FD8D2120E545B00F3E71A /* JSEventSendingController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC8FD8D0120E545B00F3E71A /* JSEventSendingController.cpp */; };
BC952C0D11F3B965003398B4 /* JSWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC952C0C11F3B965003398B4 /* JSWrapper.cpp */; };
BC952F1F11F3C652003398B4 /* JSLayoutTestController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC952F1D11F3C652003398B4 /* JSLayoutTestController.cpp */; };
BCC997A411D3C8F60017BCA2 /* InjectedBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCC997A011D3C8F60017BCA2 /* InjectedBundle.cpp */; };
@@ -85,6 +89,11 @@
65EB859D11EC67CC0034D300 /* ActivateFonts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActivateFonts.h; sourceTree = "<group>"; };
65EB859F11EC67CC0034D300 /* ActivateFonts.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ActivateFonts.mm; sourceTree = "<group>"; };
8DD76FA10486AA7600D96B5E /* WebKitTestRunner */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = WebKitTestRunner; sourceTree = BUILT_PRODUCTS_DIR; };
+ BC14E4D8120E02D000826C0C /* GCController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCController.h; sourceTree = "<group>"; };
+ BC14E4D9120E02D000826C0C /* GCController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GCController.cpp; sourceTree = "<group>"; };
+ BC14E4E1120E032000826C0C /* GCController.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GCController.idl; sourceTree = "<group>"; };
+ BC14E4E8120E03D800826C0C /* JSGCController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSGCController.cpp; path = DerivedSources/WebKitTestRunner/JSGCController.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
+ BC14E4E9120E03D800826C0C /* JSGCController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSGCController.h; path = DerivedSources/WebKitTestRunner/JSGCController.h; sourceTree = BUILT_PRODUCTS_DIR; };
BC25184611D15767002EBC01 /* InjectedBundleMain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleMain.cpp; sourceTree = "<group>"; };
BC25186211D15D54002EBC01 /* InjectedBundle.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InjectedBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
BC25186311D15D54002EBC01 /* InjectedBundle-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "InjectedBundle-Info.plist"; sourceTree = "<group>"; };
@@ -101,6 +110,11 @@
BC7934DD119066EC005EA8E2 /* PlatformWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformWebView.h; sourceTree = "<group>"; };
BC7934E711906846005EA8E2 /* PlatformWebViewMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformWebViewMac.mm; sourceTree = "<group>"; };
BC8C795B11D2785D004535A1 /* TestControllerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TestControllerMac.mm; sourceTree = "<group>"; };
+ BC8FD8C8120E527F00F3E71A /* EventSendingController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventSendingController.h; sourceTree = "<group>"; };
+ BC8FD8C9120E527F00F3E71A /* EventSendingController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventSendingController.cpp; sourceTree = "<group>"; };
+ BC8FD8CB120E52B000F3E71A /* EventSendingController.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = EventSendingController.idl; sourceTree = "<group>"; };
+ BC8FD8D0120E545B00F3E71A /* JSEventSendingController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSEventSendingController.cpp; path = DerivedSources/WebKitTestRunner/JSEventSendingController.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
+ BC8FD8D1120E545B00F3E71A /* JSEventSendingController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSEventSendingController.h; path = DerivedSources/WebKitTestRunner/JSEventSendingController.h; sourceTree = BUILT_PRODUCTS_DIR; };
BC952C0B11F3B965003398B4 /* JSWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWrapper.h; sourceTree = "<group>"; };
BC952C0C11F3B965003398B4 /* JSWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWrapper.cpp; sourceTree = "<group>"; };
BC952C0E11F3B97B003398B4 /* JSWrappable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWrappable.h; sourceTree = "<group>"; };
@@ -109,6 +123,7 @@
BC952ED311F3C318003398B4 /* CodeGeneratorTestRunner.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = CodeGeneratorTestRunner.pm; sourceTree = "<group>"; };
BC952F1D11F3C652003398B4 /* JSLayoutTestController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSLayoutTestController.cpp; path = DerivedSources/WebKitTestRunner/JSLayoutTestController.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
BC952F1E11F3C652003398B4 /* JSLayoutTestController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSLayoutTestController.h; path = DerivedSources/WebKitTestRunner/JSLayoutTestController.h; sourceTree = BUILT_PRODUCTS_DIR; };
+ BC99A4841208901A007E9F08 /* StringFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringFunctions.h; sourceTree = "<group>"; };
BCC997A011D3C8F60017BCA2 /* InjectedBundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundle.cpp; sourceTree = "<group>"; };
BCC997A111D3C8F60017BCA2 /* InjectedBundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundle.h; sourceTree = "<group>"; };
BCC997A211D3C8F60017BCA2 /* InjectedBundlePage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundlePage.cpp; sourceTree = "<group>"; };
@@ -149,7 +164,8 @@
isa = PBXGroup;
children = (
BC952EC511F3C10F003398B4 /* DerivedSources.make */,
- 08FB7795FE84155DC02AAC07 /* Source */,
+ BC99CBF11207642D00FDEE76 /* Shared */,
+ 08FB7795FE84155DC02AAC07 /* TestRunner */,
BC25183511D1571D002EBC01 /* InjectedBundle */,
BC793401118F7C8A005EA8E2 /* Configurations */,
08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
@@ -159,7 +175,7 @@
name = WebKitTestRunner;
sourceTree = "<group>";
};
- 08FB7795FE84155DC02AAC07 /* Source */ = {
+ 08FB7795FE84155DC02AAC07 /* TestRunner */ = {
isa = PBXGroup;
children = (
BC7933FE118F7C74005EA8E2 /* mac */,
@@ -170,7 +186,7 @@
BCD7D2F611921278006DB7EE /* TestInvocation.h */,
BCD7D2F711921278006DB7EE /* TestInvocation.cpp */,
);
- name = Source;
+ name = TestRunner;
sourceTree = "<group>";
};
08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
@@ -200,11 +216,25 @@
path = mac;
sourceTree = "<group>";
};
+ BC14E4E0120E02F900826C0C /* Controllers */ = {
+ isa = PBXGroup;
+ children = (
+ BC8FD8C9120E527F00F3E71A /* EventSendingController.cpp */,
+ BC8FD8C8120E527F00F3E71A /* EventSendingController.h */,
+ BC14E4D9120E02D000826C0C /* GCController.cpp */,
+ BC14E4D8120E02D000826C0C /* GCController.h */,
+ BCC9981711D3F51E0017BCA2 /* LayoutTestController.cpp */,
+ BCC9981611D3F51E0017BCA2 /* LayoutTestController.h */,
+ );
+ name = Controllers;
+ sourceTree = "<group>";
+ };
BC25183511D1571D002EBC01 /* InjectedBundle */ = {
isa = PBXGroup;
children = (
BC952D3A11F3BF1F003398B4 /* Derived Sources */,
BC952C0A11F3B939003398B4 /* Bindings */,
+ BC14E4E0120E02F900826C0C /* Controllers */,
65EB859E11EC67CC0034D300 /* mac */,
65EB859D11EC67CC0034D300 /* ActivateFonts.h */,
BCC997A011D3C8F60017BCA2 /* InjectedBundle.cpp */,
@@ -212,8 +242,6 @@
BC25184611D15767002EBC01 /* InjectedBundleMain.cpp */,
BCC997A211D3C8F60017BCA2 /* InjectedBundlePage.cpp */,
BCC997A311D3C8F60017BCA2 /* InjectedBundlePage.h */,
- BCC9981711D3F51E0017BCA2 /* LayoutTestController.cpp */,
- BCC9981611D3F51E0017BCA2 /* LayoutTestController.h */,
);
path = InjectedBundle;
sourceTree = "<group>";
@@ -266,6 +294,8 @@
BC952C0E11F3B97B003398B4 /* JSWrappable.h */,
BC952C0C11F3B965003398B4 /* JSWrapper.cpp */,
BC952C0B11F3B965003398B4 /* JSWrapper.h */,
+ BC8FD8CB120E52B000F3E71A /* EventSendingController.idl */,
+ BC14E4E1120E032000826C0C /* GCController.idl */,
BC952ED211F3C29F003398B4 /* LayoutTestController.idl */,
);
path = Bindings;
@@ -274,12 +304,24 @@
BC952D3A11F3BF1F003398B4 /* Derived Sources */ = {
isa = PBXGroup;
children = (
+ BC8FD8D0120E545B00F3E71A /* JSEventSendingController.cpp */,
+ BC8FD8D1120E545B00F3E71A /* JSEventSendingController.h */,
+ BC14E4E8120E03D800826C0C /* JSGCController.cpp */,
+ BC14E4E9120E03D800826C0C /* JSGCController.h */,
BC952F1D11F3C652003398B4 /* JSLayoutTestController.cpp */,
BC952F1E11F3C652003398B4 /* JSLayoutTestController.h */,
);
name = "Derived Sources";
sourceTree = "<group>";
};
+ BC99CBF11207642D00FDEE76 /* Shared */ = {
+ isa = PBXGroup;
+ children = (
+ BC99A4841208901A007E9F08 /* StringFunctions.h */,
+ );
+ name = Shared;
+ sourceTree = "<group>";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -401,6 +443,10 @@
65EB85A011EC67CC0034D300 /* ActivateFonts.mm in Sources */,
BC952C0D11F3B965003398B4 /* JSWrapper.cpp in Sources */,
BC952F1F11F3C652003398B4 /* JSLayoutTestController.cpp in Sources */,
+ BC14E4DB120E02D000826C0C /* GCController.cpp in Sources */,
+ BC14E4EA120E03D800826C0C /* JSGCController.cpp in Sources */,
+ BC8FD8CA120E527F00F3E71A /* EventSendingController.cpp in Sources */,
+ BC8FD8D2120E545B00F3E71A /* JSEventSendingController.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj b/WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj
index d283083..71dcf95 100644
--- a/WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj
+++ b/WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj
@@ -288,6 +288,22 @@
Name="Derived Sources"
>
<File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSEventSendingController.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSEventSendingController.h"
+ >
+ </File>
+ <File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSGCController.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSGCController.h"
+ >
+ </File>
+ <File
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSLayoutTestController.cpp"
>
</File>
@@ -321,6 +337,22 @@
>
</File>
<File
+ RelativePath="..\InjectedBundle\EventSendingController.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\InjectedBundle\EventSendingController.h"
+ >
+ </File>
+ <File
+ RelativePath="..\InjectedBundle\GCController.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\InjectedBundle\GCController.h"
+ >
+ </File>
+ <File
RelativePath="..\InjectedBundle\LayoutTestController.cpp"
>
</File>
diff --git a/WebKitTools/WebKitTestRunner/win/TestControllerWin.cpp b/WebKitTools/WebKitTestRunner/win/TestControllerWin.cpp
index 9bec373..f650d7f 100644
--- a/WebKitTools/WebKitTestRunner/win/TestControllerWin.cpp
+++ b/WebKitTools/WebKitTestRunner/win/TestControllerWin.cpp
@@ -27,14 +27,67 @@
#include <fcntl.h>
#include <io.h>
+#include <shlwapi.h>
+#include <string>
#include <WebKit2/WKStringCF.h>
+#include <wtf/RetainPtr.h>
+#include <wtf/Vector.h>
+
+using namespace std;
namespace WTR {
+#if !defined(NDEBUG) && (!defined(DEBUG_INTERNAL) || defined(DEBUG_ALL))
+const LPWSTR testPluginDirectoryName = L"TestNetscapePlugin_Debug";
+#else
+const LPWSTR testPluginDirectoryName = L"TestNetscapePlugin";
+#endif
+
+static void addQTDirToPATH()
+{
+ static LPCWSTR pathEnvironmentVariable = L"PATH";
+ static LPCWSTR quickTimeKeyName = L"Software\\Apple Computer, Inc.\\QuickTime";
+ static LPCWSTR quickTimeSysDir = L"QTSysDir";
+ static bool initialized;
+
+ if (initialized)
+ return;
+ initialized = true;
+
+ // Get the QuickTime dll directory from the registry. The key can be in either HKLM or HKCU.
+ WCHAR qtPath[MAX_PATH];
+ DWORD qtPathBufferLen = sizeof(qtPath);
+ DWORD keyType;
+ HRESULT result = ::SHGetValueW(HKEY_LOCAL_MACHINE, quickTimeKeyName, quickTimeSysDir, &keyType, (LPVOID)qtPath, &qtPathBufferLen);
+ if (result != ERROR_SUCCESS || !qtPathBufferLen || keyType != REG_SZ) {
+ qtPathBufferLen = sizeof(qtPath);
+ result = ::SHGetValueW(HKEY_CURRENT_USER, quickTimeKeyName, quickTimeSysDir, &keyType, (LPVOID)qtPath, &qtPathBufferLen);
+ if (result != ERROR_SUCCESS || !qtPathBufferLen || keyType != REG_SZ)
+ return;
+ }
+
+ // Read the current PATH.
+ DWORD pathSize = ::GetEnvironmentVariableW(pathEnvironmentVariable, 0, 0);
+ Vector<WCHAR> oldPath(pathSize);
+ if (!::GetEnvironmentVariableW(pathEnvironmentVariable, oldPath.data(), oldPath.size()))
+ return;
+
+ // And add the QuickTime dll.
+ wstring newPath;
+ newPath.append(qtPath);
+ newPath.append(L";");
+ newPath.append(oldPath.data(), oldPath.size());
+ ::SetEnvironmentVariableW(pathEnvironmentVariable, newPath.data());
+}
+
void TestController::platformInitialize()
{
_setmode(1, _O_BINARY);
_setmode(2, _O_BINARY);
+
+ // Add the QuickTime dll directory to PATH or QT 7.6 will fail to initialize on systems
+ // linked with older versions of qtmlclientlib.dll.
+ addQTDirToPATH();
}
void TestController::initializeInjectedBundlePath()
@@ -52,9 +105,12 @@ void TestController::initializeInjectedBundlePath()
void TestController::initializeTestPluginDirectory()
{
- CFStringRef exeContainerPath = CFURLCopyFileSystemPath(CFURLCreateCopyDeletingLastPathComponent(0, CFBundleCopyExecutableURL(CFBundleGetMainBundle())), kCFURLWindowsPathStyle);
- CFMutableStringRef bundlePath = CFStringCreateMutableCopy(0, 0, exeContainerPath);
- m_testPluginDirectory.adopt(WKStringCreateWithCFString(bundlePath));
+ RetainPtr<CFURLRef> bundleURL(AdoptCF, CFBundleCopyExecutableURL(CFBundleGetMainBundle()));
+ RetainPtr<CFURLRef> bundleDirectoryURL(AdoptCF, CFURLCreateCopyDeletingLastPathComponent(0, bundleURL.get()));
+ RetainPtr<CFStringRef> testPluginDirectoryNameString(AdoptCF, CFStringCreateWithCharacters(0, reinterpret_cast<const UniChar*>(testPluginDirectoryName), wcslen(testPluginDirectoryName)));
+ RetainPtr<CFURLRef> testPluginDirectoryURL(AdoptCF, CFURLCreateCopyAppendingPathComponent(0, bundleDirectoryURL.get(), testPluginDirectoryNameString.get(), true));
+ RetainPtr<CFStringRef> testPluginDirectoryPath(AdoptCF, CFURLCopyFileSystemPath(testPluginDirectoryURL.get(), kCFURLWindowsPathStyle));
+ m_testPluginDirectory.adopt(WKStringCreateWithCFString(testPluginDirectoryPath.get()));
}
} // namespace WTR
diff --git a/WebKitTools/WebKitTestRunner/win/WebKitTestRunner.vcproj b/WebKitTools/WebKitTestRunner/win/WebKitTestRunner.vcproj
index 4802c3a..7375bd4 100644
--- a/WebKitTools/WebKitTestRunner/win/WebKitTestRunner.vcproj
+++ b/WebKitTools/WebKitTestRunner/win/WebKitTestRunner.vcproj
@@ -56,7 +56,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/NXCOMPAT"
- AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WebKit$(WebKitDLLConfigSuffix).lib CoreFoundation$(LibraryConfigSuffix).lib"
+ AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WebKit$(WebKitDLLConfigSuffix).lib CoreFoundation$(LibraryConfigSuffix).lib shlwapi.lib"
SubSystem="1"
TargetMachine="1"
/>
@@ -128,7 +128,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/NXCOMPAT"
- AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WebKit$(WebKitDLLConfigSuffix).lib CoreFoundation$(LibraryConfigSuffix).lib"
+ AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WebKit$(WebKitDLLConfigSuffix).lib CoreFoundation$(LibraryConfigSuffix).lib shlwapi.lib"
SubSystem="1"
TargetMachine="1"
/>
@@ -199,7 +199,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/NXCOMPAT"
- AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WebKit$(WebKitDLLConfigSuffix).lib CoreFoundation$(LibraryConfigSuffix).lib"
+ AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WebKit$(WebKitDLLConfigSuffix).lib CoreFoundation$(LibraryConfigSuffix).lib shlwapi.lib"
SubSystem="1"
/>
<Tool
@@ -269,7 +269,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/NXCOMPAT"
- AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WebKit$(WebKitDLLConfigSuffix).lib CoreFoundation$(LibraryConfigSuffix).lib"
+ AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WebKit$(WebKitDLLConfigSuffix).lib CoreFoundation$(LibraryConfigSuffix).lib shlwapi.lib"
SubSystem="1"
/>
<Tool
diff --git a/WebKitTools/wx/build/settings.py b/WebKitTools/wx/build/settings.py
index 2d144f6..be43873 100644
--- a/WebKitTools/wx/build/settings.py
+++ b/WebKitTools/wx/build/settings.py
@@ -303,8 +303,15 @@ def common_configure(conf):
conf.env['LIB_WX'] = wxlibs
conf.env['LIBPATH_WX'] = wxlibpaths
- conf.env['LIB_JSCORE'] = [libprefix + 'jscore']
- conf.env['LIB_WEBCORE'] = [libprefix + 'webcore']
+ if building_on_win32:
+ conf.env['LIB_JSCORE'] = [libprefix + 'jscore']
+ conf.env['LIB_WEBCORE'] = [libprefix + 'webcore']
+ elif sys.platform.startswith('darwin'):
+ conf.env['LINKFLAGS_JSCORE'] = ['-Wl,-force_load,%s' % os.path.join(output_dir, 'libjscore.a')]
+ conf.env['LINKFLAGS_WEBCORE'] = ['-Wl,-force_load,%s' % os.path.join(output_dir, 'libwebcore.a')]
+ else:
+ conf.env['LINKFLAGS_JSCORE'] = ['-Wl,-whole-archive', '-ljscore', '-Wl,-no-whole-archive']
+ conf.env['LINKFLAGS_WEBCORE'] = ['-Wl,-whole-archive', '-lwebcore', '-Wl,-no-whole-archive']
if sys.platform.startswith('darwin'):
conf.env['LIB_ICU'] = ['icucore']